Gecode::Int::Cumulative Namespace Reference

Scheduling for cumulative resources More...

## Classes

class | ManFixPTask
| Cumulative (mandatory) task with fixed processing time. More...
class | ManFixPSETask
| Cumulative (mandatory) task with fixed processing, start or end time. More...
class | ManFlexTask
| Cumulative (mandatory) task with flexible processing time. More...
class | OptFixPTask
| Cumulative optional task with fixed processing time. More...
class | OptFixPSETask
| Cumulative optional task with fixed processing, start or end time. More...
class | OptFlexTask
| Cumulative optional task with flexible processing time More...
class | OmegaNode
| Node for an omega tree. More...
class | OmegaTree
| Omega trees for computing ect of task sets. More...
class | ExtOmegaNode
| Node for an extended omega tree. More...
class | ExtOmegaTree
| Omega trees for computing ect of task sets. More...
class | OmegaLambdaNode
| Node for an omega lambda tree. More...
class | OmegaLambdaTree
| Omega-lambda trees for computing ect of task sets. More...
class | ManProp
| Scheduling propagator for cumulative resource with mandatory tasks. More...
class | OptProp
| Scheduling propagator for cumulative resource with optional tasks. More...
class | StoCap
| Sort by capacity. More...
class | PrecOrder
| Sort by prec array. More...
class | TaskByDecCap
| Sort order for tasks by decreasing capacity. More...

## Typedefs

typedef ManFixPTask | ManFixPTaskFwd
| Forward mandatory fixed task view.
typedef FwdToBwd< ManFixPTaskFwd > | ManFixPTaskBwd
| Backward (dual) mandatory fixed task view.
typedef ManFixPSETask | ManFixPSETaskFwd
| Forward mandatory fixed task view.
typedef FwdToBwd< ManFixPSETaskFwd > | ManFixPSETaskBwd
| Backward (dual) mandatory fixed task view.
typedef OptFixPTask | OptFixPTaskFwd
| Forward optional fixed task view.
typedef FwdToBwd< OptFixPTaskFwd > | OptFixPTaskBwd
| Backward (dual) optional fixed task view.
typedef OptFixPSETask | OptFixPSETaskFwd
| Forward optional fixed task view.
typedef FwdToBwd< OptFixPSETaskFwd > | OptFixPSETaskBwd
| Backward (dual) optional fixed task view.
typedef ManFlexTask | ManFlexTaskFwd
| Forward mandatory flexible task view.
typedef FwdToBwd< ManFlexTaskFwd > | ManFlexTaskBwd
| Backward (dual) mandatory flexible task view.
typedef OptFlexTask | OptFlexTaskFwd
| Forward optional flexible task view.
typedef FwdToBwd< OptFlexTaskFwd > | OptFlexTaskBwd
| Backward (dual) optional flexible task view.

## Functions

template<class Cap>
void | cumulative (Home home, Cap c, const TaskTypeArgs &t, const IntVarArgs &s, const IntArgs &p, const IntArgs &u, IntPropLevel ipl)
template<class Cap>
void | cumulative (Home home, Cap c, const TaskTypeArgs &t, const IntVarArgs &s, const IntArgs &p, const IntArgs &u, const BoolVarArgs &m, IntPropLevel ipl)
template<class Cap>
void | cumulative (Home home, Cap c, const IntVarArgs &s, const IntArgs &p, const IntArgs &u, IntPropLevel ipl)
template<class Cap>
void | cumulative (Home home, Cap c, const IntVarArgs &s, const IntArgs &p, const IntArgs &u, const BoolVarArgs &m, IntPropLevel ipl)
template<class Cap>
void | cumulative (Home home, Cap c, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const IntArgs &u, IntPropLevel ipl)
template<class Cap>
void | cumulative (Home home, Cap c, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const IntArgs &u, const BoolVarArgs &m, IntPropLevel ipl)
void | mul_check (long long int x, long long int y)
| Throw exception if multiplication of x and y overflows.
void | mul_check (long long int x, long long int y, long long int z)
| Throw exception if multiplication of x, y, and z overflows.
template<class Task>
ExecStatus | subsumed (Space &home, Propagator &p, int c, TaskArray< Task > &t)
| Check for subsumption (all tasks must be assigned).
template<class ManTask>
ExecStatus | overload (Space &home, int c, TaskArray< ManTask > &t)
| Check mandatory tasks t for overload.
template<class Task, class Cap>
ExecStatus | timetabling (Space &home, Propagator &p, Cap c, TaskArray< Task > &t)
| Perform time-tabling propagation.
template<class Task>
ExecStatus | edgefinding (Space &home, int c, TaskArray< Task > &t)
| Propagate by edge-finding.
template<class ManTask, class Cap>
ExecStatus | cmanpost (Home home, Cap c, TaskArray< ManTask > &t, IntPropLevel ipl)
| Post mandatory task propagator according to propagation level.
template<class OptTask, class Cap>
ExecStatus | coptpost (Home home, Cap c, TaskArray< OptTask > &t, IntPropLevel ipl)
| Post optional task propagator according to propagation level.
template<class TaskView>
ExecStatus | edgefinding (Space &home, int c, TaskViewArray< TaskView > &t)
template<class ManTask, class Cap>
ExecStatus | manpost (Home home, Cap c, TaskArray< ManTask > &t, IntPropLevel ipl)
template<class OptTask, class Cap>
ExecStatus | optpost (Home home, Cap c, TaskArray< OptTask > &t, IntPropLevel ipl)
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & | operator<< (std::basic_ostream< Char, Traits > &os, const ManFixPTaskBwd &t)
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & | operator<< (std::basic_ostream< Char, Traits > &os, const ManFixPSETaskBwd &t)
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & | operator<< (std::basic_ostream< Char, Traits > &os, const OptFixPTaskBwd &t)
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & | operator<< (std::basic_ostream< Char, Traits > &os, const OptFixPSETaskBwd &t)
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & | operator<< (std::basic_ostream< Char, Traits > &os, const ManFixPTask &t)
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & | operator<< (std::basic_ostream< Char, Traits > &os, const ManFixPSETask &t)
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & | operator<< (std::basic_ostream< Char, Traits > &os, const ManFlexTask &t)
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & | operator<< (std::basic_ostream< Char, Traits > &os, const OptFixPTask &t)
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & | operator<< (std::basic_ostream< Char, Traits > &os, const OptFixPSETask &t)
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & | operator<< (std::basic_ostream< Char, Traits > &os, const OptFlexTask &t)
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & | operator<< (std::basic_ostream< Char, Traits > &os, const OptFixPTask &t)
| Print optional task in format est:[p,c]:lct:m.
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & | operator<< (std::basic_ostream< Char, Traits > &os, const OptFixPSETask &t)
| Print optional task in format est:[p,c]:lct:m.
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & | operator<< (std::basic_ostream< Char, Traits > &os, const OptFlexTask &t)
| Print optional task in format est:lst:pmin:pmax:c:ect:lct:m.

## Detailed Description

Scheduling for cumulative resources

The edge-finding and overload-checking algorithms and data structures follow (mostly): Petr Vilím, Max Energy Filtering Algorithm for Discrete Cumulative Resources, CP-AI-OR, 2009. Petr Vilím, Edge Finding Filtering Algorithm for Discrete Cumulative Resources in O(kn log n), CP, 2009.

## Typedef Documentation

## ManFixPTaskFwd

typedef ManFixPTask Gecode::Int::Cumulative::ManFixPTaskFwd

Forward mandatory fixed task view.

Definition at line 293 of file cumulative.hh.

## ManFixPTaskBwd

typedef FwdToBwd<ManFixPTaskFwd> Gecode::Int::Cumulative::ManFixPTaskBwd

Backward (dual) mandatory fixed task view.

Definition at line 296 of file cumulative.hh.

## ManFixPSETaskFwd

typedef ManFixPSETask Gecode::Int::Cumulative::ManFixPSETaskFwd

Forward mandatory fixed task view.

Definition at line 299 of file cumulative.hh.

## ManFixPSETaskBwd

typedef FwdToBwd<ManFixPSETaskFwd> Gecode::Int::Cumulative::ManFixPSETaskBwd

Backward (dual) mandatory fixed task view.

Definition at line 302 of file cumulative.hh.

## OptFixPTaskFwd

typedef OptFixPTask Gecode::Int::Cumulative::OptFixPTaskFwd

Forward optional fixed task view.

Definition at line 305 of file cumulative.hh.

## OptFixPTaskBwd

typedef FwdToBwd<OptFixPTaskFwd> Gecode::Int::Cumulative::OptFixPTaskBwd

Backward (dual) optional fixed task view.

Definition at line 308 of file cumulative.hh.

## OptFixPSETaskFwd

typedef OptFixPSETask Gecode::Int::Cumulative::OptFixPSETaskFwd

Forward optional fixed task view.

Definition at line 311 of file cumulative.hh.

## OptFixPSETaskBwd

typedef FwdToBwd<OptFixPSETaskFwd> Gecode::Int::Cumulative::OptFixPSETaskBwd

Backward (dual) optional fixed task view.

Definition at line 314 of file cumulative.hh.

## ManFlexTaskFwd

typedef ManFlexTask Gecode::Int::Cumulative::ManFlexTaskFwd

Forward mandatory flexible task view.

Definition at line 317 of file cumulative.hh.

## ManFlexTaskBwd

typedef FwdToBwd<ManFlexTaskFwd> Gecode::Int::Cumulative::ManFlexTaskBwd

Backward (dual) mandatory flexible task view.

Definition at line 320 of file cumulative.hh.

## OptFlexTaskFwd

typedef OptFlexTask Gecode::Int::Cumulative::OptFlexTaskFwd

Forward optional flexible task view.

Definition at line 323 of file cumulative.hh.

## OptFlexTaskBwd

typedef FwdToBwd<OptFlexTaskFwd> Gecode::Int::Cumulative::OptFlexTaskBwd

Backward (dual) optional flexible task view.

Definition at line 326 of file cumulative.hh.

## Function Documentation

## cumulative() [1/6]

template<class Cap>

void Gecode::Int::Cumulative::cumulative | ( | Home | home,
|  | Cap | c,
|  | const TaskTypeArgs & | t,
|  | const IntVarArgs & | s,
|  | const IntArgs & | p,
|  | const IntArgs & | u,
|  | IntPropLevel | ipl )

Definition at line 44 of file cumulative.cpp.

## cumulative() [2/6]

template<class Cap>

void Gecode::Int::Cumulative::cumulative | ( | Home | home,
|  | Cap | c,
|  | const TaskTypeArgs & | t,
|  | const IntVarArgs & | s,
|  | const IntArgs & | p,
|  | const IntArgs & | u,
|  | const BoolVarArgs & | m,
|  | IntPropLevel | ipl )

Definition at line 106 of file cumulative.cpp.

## cumulative() [3/6]

template<class Cap>

void Gecode::Int::Cumulative::cumulative | ( | Home | home,
|  | Cap | c,
|  | const IntVarArgs & | s,
|  | const IntArgs & | p,
|  | const IntArgs & | u,
|  | IntPropLevel | ipl )

Definition at line 164 of file cumulative.cpp.

## cumulative() [4/6]

template<class Cap>

void Gecode::Int::Cumulative::cumulative | ( | Home | home,
|  | Cap | c,
|  | const IntVarArgs & | s,
|  | const IntArgs & | p,
|  | const IntArgs & | u,
|  | const BoolVarArgs & | m,
|  | IntPropLevel | ipl )

Definition at line 212 of file cumulative.cpp.

## cumulative() [5/6]

template<class Cap>

void Gecode::Int::Cumulative::cumulative | ( | Home | home,
|  | Cap | c,
|  | const IntVarArgs & | s,
|  | const IntVarArgs & | p,
|  | const IntVarArgs & | e,
|  | const IntArgs & | u,
|  | IntPropLevel | ipl )

Definition at line 255 of file cumulative.cpp.

## cumulative() [6/6]

template<class Cap>

void Gecode::Int::Cumulative::cumulative | ( | Home | home,
|  | Cap | c,
|  | const IntVarArgs & | s,
|  | const IntVarArgs & | p,
|  | const IntVarArgs & | e,
|  | const IntArgs & | u,
|  | const BoolVarArgs & | m,
|  | IntPropLevel | ipl )

Definition at line 304 of file cumulative.cpp.

## mul_check() [1/2]

void Gecode::Int::Cumulative::mul_check | ( | long long int | x,
|  | long long int | y )

inline

Throw exception if multiplication of x and y overflows.

Definition at line 37 of file limits.hpp.

## mul_check() [2/2]

void Gecode::Int::Cumulative::mul_check | ( | long long int | x,
|  | long long int | y,
|  | long long int | z )

inline

Throw exception if multiplication of x, y, and z overflows.

Definition at line 43 of file limits.hpp.

## subsumed()

template<class Task>

ExecStatus Gecode::Int::Cumulative::subsumed | ( | Space & | home,
|  | Propagator & | p,
|  | int | c,
|  | TaskArray< Task > & | t )

inline

Check for subsumption (all tasks must be assigned).

Definition at line 38 of file subsumption.hpp.

## overload()

template<class ManTask>

ExecStatus Gecode::Int::Cumulative::overload | ( | Space & | home,
|  | int | c,
|  | TaskArray< ManTask > & | t )

Check mandatory tasks t for overload.

Definition at line 41 of file overload.hpp.

## timetabling()

template<class Task, class Cap>

ExecStatus Gecode::Int::Cumulative::timetabling | ( | Space & | home,
|  | Propagator & | p,
|  | Cap | c,
|  | TaskArray< Task > & | t )

inline

Perform time-tabling propagation.

Definition at line 55 of file time-tabling.hpp.

## edgefinding() [1/2]

template<class Task>

ExecStatus Gecode::Int::Cumulative::edgefinding | ( | Space & | home,
|  | int | c,
|  | TaskArray< Task > & | t )

Propagate by edge-finding.

Definition at line 178 of file edge-finding.hpp.

## cmanpost()

template<class ManTask, class Cap>

ExecStatus Gecode::Int::Cumulative::cmanpost | ( | Home | home,
|  | Cap | c,
|  | TaskArray< ManTask > & | t,
|  | IntPropLevel | ipl )

Post mandatory task propagator according to propagation level.

## coptpost()

template<class OptTask, class Cap>

ExecStatus Gecode::Int::Cumulative::coptpost | ( | Home | home,
|  | Cap | c,
|  | TaskArray< OptTask > & | t,
|  | IntPropLevel | ipl )

Post optional task propagator according to propagation level.

## edgefinding() [2/2]

template<class TaskView>

ExecStatus Gecode::Int::Cumulative::edgefinding | ( | Space & | home,
|  | int | c,
|  | TaskViewArray< TaskView > & | t )

inline

Definition at line 68 of file edge-finding.hpp.

## manpost()

template<class ManTask, class Cap>

ExecStatus Gecode::Int::Cumulative::manpost | ( | Home | home,
|  | Cap | c,
|  | TaskArray< ManTask > & | t,
|  | IntPropLevel | ipl )

inline

Definition at line 38 of file post.hpp.

## optpost()

template<class OptTask, class Cap>

ExecStatus Gecode::Int::Cumulative::optpost | ( | Home | home,
|  | Cap | c,
|  | TaskArray< OptTask > & | t,
|  | IntPropLevel | ipl )

inline

Definition at line 53 of file post.hpp.

## operator<<() [1/13]

template<class Char, class Traits>

std::basic_ostream< Char, Traits > & Gecode::Int::Cumulative::operator<< | ( | std::basic_ostream< Char, Traits > & | os,
|  | const ManFixPTaskBwd & | t )

Definition at line 1 of file task-view.hpp.

## operator<<() [2/13]

template<class Char, class Traits>

std::basic_ostream< Char, Traits > & Gecode::Int::Cumulative::operator<< | ( | std::basic_ostream< Char, Traits > & | os,
|  | const ManFixPSETaskBwd & | t )

Definition at line 1 of file task-view.hpp.

## operator<<() [3/13]

template<class Char, class Traits>

std::basic_ostream< Char, Traits > & Gecode::Int::Cumulative::operator<< | ( | std::basic_ostream< Char, Traits > & | os,
|  | const OptFixPTaskBwd & | t )

Definition at line 1 of file task-view.hpp.

## operator<<() [4/13]

template<class Char, class Traits>

std::basic_ostream< Char, Traits > & Gecode::Int::Cumulative::operator<< | ( | std::basic_ostream< Char, Traits > & | os,
|  | const OptFixPSETaskBwd & | t )

Definition at line 1 of file task-view.hpp.

## operator<<() [5/13]

template<class Char, class Traits>

std::basic_ostream< Char, Traits > & Gecode::Int::Cumulative::operator<< | ( | std::basic_ostream< Char, Traits > & | os,
|  | const ManFixPTask & | t )

Definition at line 66 of file task.hpp.

## operator<<() [6/13]

template<class Char, class Traits>

std::basic_ostream< Char, Traits > & Gecode::Int::Cumulative::operator<< | ( | std::basic_ostream< Char, Traits > & | os,
|  | const ManFixPSETask & | t )

Definition at line 107 of file task.hpp.

## operator<<() [7/13]

template<class Char, class Traits>

std::basic_ostream< Char, Traits > & Gecode::Int::Cumulative::operator<< | ( | std::basic_ostream< Char, Traits > & | os,
|  | const ManFlexTask & | t )

Definition at line 148 of file task.hpp.

## operator<<() [8/13]

template<class Char, class Traits>

std::basic_ostream< Char, Traits > & Gecode::Int::Cumulative::operator<< | ( | std::basic_ostream< Char, Traits > & | os,
|  | const OptFixPTask & | t )

related

Definition at line 177 of file task.hpp.

## operator<<() [9/13]

template<class Char, class Traits>

std::basic_ostream< Char, Traits > & Gecode::Int::Cumulative::operator<< | ( | std::basic_ostream< Char, Traits > & | os,
|  | const OptFixPSETask & | t )

related

Definition at line 206 of file task.hpp.

## operator<<() [10/13]

template<class Char, class Traits>

std::basic_ostream< Char, Traits > & Gecode::Int::Cumulative::operator<< | ( | std::basic_ostream< Char, Traits > & | os,
|  | const OptFlexTask & | t )

related

Definition at line 235 of file task.hpp.