Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
|
Base class for CP like propagators. More...
#include <integer.h>
Public Member Functions | |
PropagatorInterface ()=default | |
virtual | ~PropagatorInterface ()=default |
virtual bool | Propagate ()=0 |
virtual bool | IncrementalPropagate (const std::vector< int > &) |
|
default |
|
virtualdefault |
|
inlinevirtual |
This will only be called on a non-empty vector, otherwise Propagate() will be called. The passed vector will contain the "watch index" of all the literals that were given one at registration and that changed since the last call to Propagate(). This is only true when going down in the search tree, on backjump this list will be cleared.
Notes:
Reimplemented in operations_research::sat::CircuitCoveringPropagator, operations_research::sat::CircuitPropagator, operations_research::sat::LinearProgrammingConstraint, operations_research::sat::NoCyclePropagator, and operations_research::sat::SchedulingConstraintHelper.
|
pure virtual |
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.
Implemented in operations_research::sat::AllDifferentBoundsPropagator, operations_research::sat::AllDifferentConstraint, operations_research::sat::BooleanXorPropagator, operations_research::sat::CircuitCoveringPropagator, operations_research::sat::CircuitPropagator, operations_research::sat::CombinedDisjunctive< time_direction >, operations_research::sat::CumulativeDualFeasibleEnergyConstraint, operations_research::sat::CumulativeEnergyConstraint, operations_research::sat::CumulativeIsAfterSubsetConstraint, operations_research::sat::DisjunctiveDetectablePrecedences, operations_research::sat::DisjunctiveEdgeFinding, operations_research::sat::DisjunctiveNotLast, operations_research::sat::DisjunctiveOverloadChecker, operations_research::sat::DisjunctivePrecedences, operations_research::sat::DisjunctiveSimplePrecedences, operations_research::sat::DisjunctiveWithTwoItems, operations_research::sat::DivisionPropagator, operations_research::sat::FixedDivisionPropagator, operations_research::sat::FixedModuloPropagator, operations_research::sat::GreaterThanAtLeastOneOfPropagator, operations_research::sat::LevelZeroEquality, operations_research::sat::LinearConstraintPropagator< use_int128 >, operations_research::sat::LinearProgrammingConstraint, operations_research::sat::LinearPropagator, operations_research::sat::LinMinPropagator, operations_research::sat::MinPropagator, operations_research::sat::NoCyclePropagator, operations_research::sat::NonOverlappingRectanglesDisjunctivePropagator, operations_research::sat::NonOverlappingRectanglesEnergyPropagator, operations_research::sat::PrecedencesPropagator, operations_research::sat::ProductPropagator, operations_research::sat::RectanglePairwisePropagator, operations_research::sat::ReservoirTimeTabling, operations_research::sat::SchedulingConstraintHelper, operations_research::sat::SquarePropagator, operations_research::sat::TimeTableEdgeFinding, and operations_research::sat::TimeTablingPerTask.