C++ Reference: class DisjunctivePropagator

Note: This documentation is automatically generated.

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.
Method
ChainSpanMin

Return type: bool

Arguments: Tasks* tasks

Propagates a lower bound of the chain span, end[num_chain_tasks] - start[0], to span_min.

ChainSpanMinDynamic

Return type: bool

Arguments: 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.

Clear

Return type: void

DetectablePrecedencesWithChain

Return type: bool

Arguments: Tasks* tasks

Does detectable precedences deductions on tasks in the chain precedence, taking the time windows of nonchain tasks into account.

DistanceDuration

Return type: bool

Arguments: Tasks* tasks

Propagates distance_duration constraints, if any.

EdgeFinding

Return type: bool

Arguments: Tasks* tasks

Does edge-finding deductions on all tasks.

ForbiddenIntervals

Return type: bool

Arguments: Tasks* tasks

Tasks might have holes in their domain, this enforces such holes.

MirrorTasks

Return type: bool

Arguments: Tasks* tasks

Transforms the problem with a time symmetry centered in 0. Returns true for convenience.

Precedences

Return type: bool

Arguments: Tasks* tasks

Propagates the deductions from the chain of precedences, if there is one.

Propagate

Return type: bool

Arguments: 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.