C++ Reference
C++ Reference: Routing
DisjunctivePropagator
Detailed Description
This class acts like a CP propagator: it takes a set of tasks given by their start/duration/end features, and reduces the range of possible values.
Classes | |
struct | Tasks |
A structure to hold tasks described by their features. More... | |
Public Member Functions | |
bool | Propagate (Tasks *tasks) |
Computes new bounds for all tasks, returns false if infeasible. More... | |
bool | Precedences (Tasks *tasks) |
Propagates the deductions from the chain of precedences, if there is one. More... | |
bool | MirrorTasks (Tasks *tasks) |
Transforms the problem with a time symmetry centered in 0. More... | |
bool | EdgeFinding (Tasks *tasks) |
Does edge-finding deductions on all tasks. More... | |
bool | DetectablePrecedencesWithChain (Tasks *tasks) |
Does detectable precedences deductions on tasks in the chain precedence, taking the time windows of nonchain tasks into account. More... | |
bool | ForbiddenIntervals (Tasks *tasks) |
Tasks might have holes in their domain, this enforces such holes. More... | |
bool | DistanceDuration (Tasks *tasks) |
Member Function Documentation
◆ DetectablePrecedencesWithChain()
bool DetectablePrecedencesWithChain | ( | Tasks * | tasks | ) |
Does detectable precedences deductions on tasks in the chain precedence, taking the time windows of nonchain tasks into account.
◆ DistanceDuration()
bool DistanceDuration | ( | Tasks * | tasks | ) |
◆ EdgeFinding()
bool EdgeFinding | ( | Tasks * | tasks | ) |
Does edge-finding deductions on all tasks.
◆ ForbiddenIntervals()
bool ForbiddenIntervals | ( | Tasks * | tasks | ) |
Tasks might have holes in their domain, this enforces such holes.
◆ MirrorTasks()
bool MirrorTasks | ( | Tasks * | tasks | ) |
Transforms the problem with a time symmetry centered in 0.
Returns true for convenience.
◆ Precedences()
bool Precedences | ( | Tasks * | tasks | ) |
Propagates the deductions from the chain of precedences, if there is one.
◆ Propagate()
bool Propagate | ( | Tasks * | tasks | ) |
Computes new bounds for all tasks, returns false if infeasible.
This does not compute a fixed point, so recalling it may filter more.
The documentation for this class was generated from the following file: