![]() |
Google OR-Tools v9.12
a fast and portable software suite for combinatorial optimization
|
#include <disjunctive.h>
Public Member Functions | |
DisjunctiveWithTwoItems (SchedulingConstraintHelper *helper) | |
bool | Propagate () final |
int | RegisterWith (GenericLiteralWatcher *watcher) |
![]() | |
PropagatorInterface ()=default | |
virtual | ~PropagatorInterface ()=default |
virtual bool | IncrementalPropagate (const std::vector< int > &) |
This is an optimization for the case when we have a big number of such pairwise constraints. This should be roughtly equivalent to what the general disjunctive case is doing, but it dealt with variable size better and has a lot less overhead.
Definition at line 389 of file disjunctive.h.
|
inlineexplicit |
Definition at line 391 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 can't propagate anything if one of the interval is absent for sure.
Task 0 must be before task 1.
Task 1 must be before task 0.
Reason for precedences if both present.
Reason for the bound push.
Reason for precedences if both present.
Reason for the bound push.
Implements operations_research::sat::PropagatorInterface.
Definition at line 253 of file disjunctive.cc.
int operations_research::sat::DisjunctiveWithTwoItems::RegisterWith | ( | GenericLiteralWatcher * | watcher | ) |
Definition at line 328 of file disjunctive.cc.