Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
|
#include <disjunctive.h>
Public Member Functions | |
DisjunctivePrecedences (bool time_direction, SchedulingConstraintHelper *helper, Model *model) | |
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 > &) |
Exploits the precedences relations of the form "this set of disjoint IntervalVariables must be performed before a given IntegerVariable". The relations are computed with PrecedencesPropagator::ComputePrecedences().
Definition at line 354 of file disjunctive.h.
|
inline |
Definition at line 356 of file disjunctive.h.
|
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 only need to consider "critical" set of tasks given how we compute the min-offset in PropagateSubwindow().
Start of the next window.
Implements operations_research::sat::PropagatorInterface.
Definition at line 1119 of file disjunctive.cc.
int operations_research::sat::DisjunctivePrecedences::RegisterWith | ( | GenericLiteralWatcher * | watcher | ) |
This propagator reach the fixed point in one go.
Definition at line 1314 of file disjunctive.cc.