OR-Tools  8.2
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.

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.

Definition at line 429 of file routing_breaks.cc.

◆ 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.

Definition at line 469 of file routing_breaks.cc.

◆ DetectablePrecedencesWithChain()

bool DetectablePrecedencesWithChain ( Tasks tasks)

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

Definition at line 197 of file routing_breaks.cc.

◆ DistanceDuration()

bool DistanceDuration ( Tasks tasks)

Propagates distance_duration constraints, if any.

Definition at line 286 of file routing_breaks.cc.

◆ EdgeFinding()

bool EdgeFinding ( Tasks tasks)

Does edge-finding deductions on all tasks.

Definition at line 136 of file routing_breaks.cc.

◆ ForbiddenIntervals()

bool ForbiddenIntervals ( Tasks tasks)

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

Definition at line 250 of file routing_breaks.cc.

◆ MirrorTasks()

bool MirrorTasks ( Tasks tasks)

Transforms the problem with a time symmetry centered in 0.

Returns true for convenience.

Definition at line 106 of file routing_breaks.cc.

◆ Precedences()

bool Precedences ( Tasks tasks)

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

Definition at line 51 of file routing_breaks.cc.

◆ 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.

Definition at line 20 of file routing_breaks.cc.


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