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

#include <disjunctive.h>

Inheritance diagram for operations_research::sat::DisjunctiveSimplePrecedences:
operations_research::sat::PropagatorInterface

Public Member Functions

 DisjunctiveSimplePrecedences (SchedulingConstraintHelper *helper, Model *model=nullptr)
 
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 > &)
 

Detailed Description

This one is a simpler version of DisjunctiveDetectablePrecedences, it detect all implied precedences between TWO tasks and push bounds accordingly. If we created all pairwise precedence Booleans, this would already be propagated and in this case we don't create this propagator.

Otherwise, this generate short reason and is good to do early as it propagates a lot.

Definition at line 214 of file disjunctive.h.

Constructor & Destructor Documentation

◆ DisjunctiveSimplePrecedences()

operations_research::sat::DisjunctiveSimplePrecedences::DisjunctiveSimplePrecedences ( SchedulingConstraintHelper * helper,
Model * model = nullptr )
inlineexplicit

Definition at line 216 of file disjunctive.h.

Member Function Documentation

◆ Propagate()

bool operations_research::sat::DisjunctiveSimplePrecedences::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.

Implements operations_research::sat::PropagatorInterface.

Definition at line 716 of file disjunctive.cc.

◆ RegisterWith()

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

Definition at line 709 of file disjunctive.cc.


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