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.

Definition at line 1954 of file routing.h.

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: