C++ Reference
C++ Reference: Routing
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) |
Propagates distance_duration constraints, if any. More... | |
bool | ChainSpanMin (Tasks *tasks) |
Propagates a lower bound of the chain span, end[num_chain_tasks] - start[0], to span_min. More... | |
bool | ChainSpanMinDynamic (Tasks *tasks) |
Computes a lower bound of the span of the chain, taking into account only the first nonchain task. More... | |
Member Function Documentation
◆ ChainSpanMin()
bool ChainSpanMin | ( | Tasks * | tasks | ) |
Propagates a lower bound of the chain span, end[num_chain_tasks] - start[0], to span_min.
◆ ChainSpanMinDynamic()
bool ChainSpanMinDynamic | ( | Tasks * | tasks | ) |
Computes a lower bound of the span of the chain, taking into account only the first nonchain task.
For more accurate results, this should be called after Precedences(), otherwise the lower bound might be lower than feasible.
◆ 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 | ) |
Propagates distance_duration constraints, if any.
◆ 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: