Google OR-Tools v9.14
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
operations_research::sat::RectanglePairwisePropagator Class Reference

Propagator that compares the boxes pairwise. More...

Detailed Description

Propagator that compares the boxes pairwise.

Definition at line 152 of file diffn.h.

#include <diffn.h>

Inheritance diagram for operations_research::sat::RectanglePairwisePropagator:
operations_research::sat::PropagatorInterface

Public Member Functions

 RectanglePairwisePropagator (NoOverlap2DConstraintHelper *helper, Model *model)
 ~RectanglePairwisePropagator () override
bool Propagate () final
int RegisterWith (GenericLiteralWatcher *watcher)
Public Member Functions inherited from operations_research::sat::PropagatorInterface
 PropagatorInterface ()=default
virtual ~PropagatorInterface ()=default
virtual bool IncrementalPropagate (const std::vector< int > &)

Constructor & Destructor Documentation

◆ RectanglePairwisePropagator()

operations_research::sat::RectanglePairwisePropagator::RectanglePairwisePropagator ( NoOverlap2DConstraintHelper * helper,
Model * model )
inline

Definition at line 154 of file diffn.h.

◆ ~RectanglePairwisePropagator()

operations_research::sat::RectanglePairwisePropagator::~RectanglePairwisePropagator ( )
override

Definition at line 968 of file diffn.cc.

Member Function Documentation

◆ Propagate()

bool operations_research::sat::RectanglePairwisePropagator::Propagate ( )
finalvirtual

This will be called after one or more literals that are watched by this propagator changed. It will also always be called on the first propagation cycle after registration.

Todo
(user): if the number of fixed boxes is large, we keep reconstructing them each time this is called for no reason.

We ignore pairs of two fixed boxes. The only thing to propagate between two fixed boxes is a conflict and it should already have been taken care of by the MandatoryOverlapPropagator propagator.

Check zero area boxes against non-zero area boxes.

Check vertical zero area boxes against horizontal zero area boxes.

Implements operations_research::sat::PropagatorInterface.

Definition at line 980 of file diffn.cc.

◆ RegisterWith()

int operations_research::sat::RectanglePairwisePropagator::RegisterWith ( GenericLiteralWatcher * watcher)

Definition at line 961 of file diffn.cc.


The documentation for this class was generated from the following files: