Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
|
#include <diffn.h>
Public Member Functions | |
NonOverlappingRectanglesDisjunctivePropagator (SchedulingConstraintHelper *x, SchedulingConstraintHelper *y, Model *model) | |
The slow_propagators select which disjunctive algorithms to propagate. | |
~NonOverlappingRectanglesDisjunctivePropagator () override | |
bool | Propagate () final |
void | Register (int fast_priority, int slow_priority) |
Public Member Functions inherited from operations_research::sat::PropagatorInterface | |
PropagatorInterface ()=default | |
virtual | ~PropagatorInterface ()=default |
virtual bool | IncrementalPropagate (const std::vector< int > &) |
Non overlapping rectangles. This includes box with zero-areas. The following is forbidden:
operations_research::sat::NonOverlappingRectanglesDisjunctivePropagator::NonOverlappingRectanglesDisjunctivePropagator | ( | SchedulingConstraintHelper * | x, |
SchedulingConstraintHelper * | y, | ||
Model * | model ) |
|
overridedefault |
|
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.
We can actually swap dimensions to propagate vertically.
Implements operations_research::sat::PropagatorInterface.
void operations_research::sat::NonOverlappingRectanglesDisjunctivePropagator::Register | ( | int | fast_priority, |
int | slow_priority ) |