Go to the documentation of this file.
36 #ifndef __GECODE_INT_CUMULATIVE_HH__
37 #define __GECODE_INT_CUMULATIVE_HH__
55 namespace Gecode {
namespace Int {
namespace Cumulative {
61 void mul_check(
long long int x,
long long int y,
long long int z);
67 namespace Gecode {
namespace Int {
namespace Cumulative {
92 long long int e(
void)
const;
107 template<
class Char,
class Traits>
108 std::basic_ostream<Char,Traits>&
146 long long int e(
void)
const;
161 template<
class Char,
class Traits>
162 std::basic_ostream<Char,Traits>&
188 long long int e(
void)
const;
203 template<
class Char,
class Traits>
204 std::basic_ostream<Char,Traits>&
230 template<
class Char,
class Traits>
231 std::basic_ostream<Char,Traits>&
256 template<
class Char,
class Traits>
257 std::basic_ostream<Char,Traits>&
282 template<
class Char,
class Traits>
283 std::basic_ostream<Char,Traits>&
290 namespace Gecode {
namespace Int {
namespace Cumulative {
333 template<
class Char,
class Traits>
334 std::basic_ostream<Char,Traits>&
341 template<
class Char,
class Traits>
342 std::basic_ostream<Char,Traits>&
349 template<
class Char,
class Traits>
350 std::basic_ostream<Char,Traits>&
357 template<
class Char,
class Traits>
358 std::basic_ostream<Char,Traits>&
365 namespace Gecode {
namespace Int {
544 namespace Gecode {
namespace Int {
namespace Cumulative {
560 template<
class TaskView>
578 long long int env(
void)
const;
593 template<
class TaskView>
620 long long int env(
int i);
644 template<
class TaskView>
666 long long int env(
void)
const;
668 long long int lenv(
void)
const;
675 namespace Gecode {
namespace Int {
namespace Cumulative {
680 subsumed(Space& home, Propagator&
p,
int c, TaskArray<Task>&
t);
683 template<
class ManTask>
687 template<
class Task,
class Cap>
701 template<
class ManTask,
class Cap,
class PL>
728 template<
class OptTask,
class Cap,
class PL>
750 template<
class ManTask,
class Cap>
755 template<
class OptTask,
class Cap>
Class to define an optional from a mandatory task.
Cumulative::OptFixPTask Task
The task type.
FwdToBwd< OptFlexTaskFwd > OptFlexTaskBwd
Backward (dual) optional flexible task view.
Unary::OptFixPSETask UnaryTask
The corresponding unary task type.
Post propagator for SetVar x
OptFlexTask(void)
Default constructor.
void init(const OmegaNode &l, const OmegaNode &r)
Initialize node from left child l and right child r.
Post propagator for SetVar SetOpType SetVar y
void init(IntVar s, IntVar p, IntVar e, int c)
Initialize with start time s, processing time p, end time e.
long long int e(void) const
Return required energy.
int c(void) const
Return required capacity.
long long int lenv(void) const
Return energy envelope of all tasks excluding lambda tasks.
OptFixPTask(void)
Default constructor.
Cumulative optional task with fixed processing, start or end time.
Cumulative (mandatory) task with fixed processing time.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
Cumulative::ManFlexTask ManTask
The corresponding mandatory task.
Cumulative::ManFlexTask Task
The task type.
Cumulative optional task with flexible processing time
long long int le
Energy for subtree.
Cumulative::ManFixPTask ManTask
The corresponding mandatory task.
IntVar p(void) const
Return processing time.
Omega trees for computing ect of task sets.
void init(const ExtOmegaNode &l, const ExtOmegaNode &r)
Initialize node from left child l and right child r.
OptFlexTask OptFlexTaskFwd
Forward optional flexible task view.
void init(TaskType t, IntVar s, int p, int c)
Initialize task.
Scheduling propagator for cumulative resource with mandatory tasks.
Unary (mandatory) task with fixed processing, start or end time
void update(Space &home, ManFixPTask &t)
Update this task to be a clone of task t.
static const int undef
Undefined task.
void remove(int i)
Remove task with index i.
Unary (mandatory) task with flexible processing time
int responsible(void) const
Return responsible task.
long long int e
Energy for subtree.
Post propagator for SetVar SetOpType SetVar SetRelType SetVar z
long long int e(void) const
Return required energy.
Cumulative (mandatory) task with fixed processing, start or end time.
void init(IntVar s, IntVar p, IntVar e, int c, BoolVar m)
Initialize with start time s, processing time p, end time e, and mandatory flag m.
IntPropLevel
Propagation levels for integer propagators.
ExecStatus subsumed(Space &home, Propagator &p, int c, TaskArray< Task > &t)
Check for subsumption (all tasks must be assigned)
Base-class for both propagators and branchers.
void update(const OmegaNode &l, const OmegaNode &r)
Update node from left child l and right child r.
ExecStatus timetabling(Space &home, Propagator &p, Cap c, TaskArray< Task > &t)
Perform time-tabling propagation.
Cumulative optional task with fixed processing time.
ManProp(Home home, Cap c, TaskArray< ManTask > &t)
Constructor for creation.
OmegaTree(Region &r, int c, const TaskViewArray< TaskView > &t)
Initialize tree for tasks t and capacity c.
long long int env(void) const
Return energy envelope of all tasks.
Unary::ManFlexTask UnaryTask
The corresponding unary task type.
int c(void) const
Return required capacity.
FwdToBwd< ManFixPTaskFwd > ManFixPTaskBwd
Backward (dual) mandatory fixed task view.
virtual Actor * copy(Space &home)
Perform copying during cloning.
Omega-lambda trees for computing ect of task sets.
Task mapper: turns a task view into its dual.
OptProp(Home home, Cap c, TaskArray< OptTask > &t)
Constructor for creation.
Cumulative::ManFixPTask Task
The task type.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
ManFlexTask(void)
Default constructor.
Unary (mandatory) task with fixed processing time
OmegaLambdaTree(Region &r, int c, const TaskViewArray< TaskView > &t)
Initialize tree for tasks t and capcity c with all tasks included in omega.
Cumulative::OptFlexTask Task
The task type.
Traits class for mapping tasks to task views.
Gecode toplevel namespace
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Cumulative::OptFlexTask Task
The task type.
Unary optional task with flexible processing time
void update(const ExtOmegaNode &l, const ExtOmegaNode &r)
Update node from left child l and right child r.
Cumulative::OptFlexTaskFwd TaskViewFwd
The forward task view type.
Cumulative::OptFixPSETask Task
The task type.
long long int lenv
Energy envelope for subtree.
void mul_check(long long int x, long long int y)
Throw exception if multiplication of x and y overflows.
void insert(int i)
Insert task with index i.
ManFixPTask ManFixPTaskFwd
Forward mandatory fixed task view.
Home class for posting propagators
ExecStatus edgefinding(Space &home, int c, TaskViewArray< TaskView > &t)
OptFixPSETask OptFixPSETaskFwd
Forward optional fixed task view.
FwdToBwd< OptFixPSETaskFwd > OptFixPSETaskBwd
Backward (dual) optional fixed task view.
Task trees for task views with node type Node.
OptFixPSETask(void)
Default constructor.
Cumulative::ManFlexTaskBwd TaskViewBwd
The backward task view type.
Traits class for mapping task views to tasks.
Cumulative::ManFixPSETaskBwd TaskViewBwd
The backward task view type.
Post propagator for SetVar SetOpType SetVar SetRelType r
Boolean integer variables.
void init(const OmegaLambdaNode &l, const OmegaLambdaNode &r)
Initialize node from left child l and right child r.
void update(const OmegaLambdaNode &l, const OmegaLambdaNode &r)
Update node from left child l and right child r.
void update(Space &home, ManFlexTask &t)
Update this task to be a clone of task t.
static ExecStatus post(Home home, Cap c, TaskArray< OptTask > &t)
Post propagator that schedules tasks on cumulative resource.
int c(void) const
Return required capacity.
ExecStatus cmanpost(Home home, Cap c, TaskArray< ManTask > &t, IntPropLevel ipl)
Post mandatory task propagator according to propagation level.
Cumulative::OptFixPTaskBwd TaskViewBwd
The backward task view type.
void init(IntVar s, int p, int c, BoolVar m)
Initialize with start time s, processing time p, required capacity c, and mandatory flag m.
ModEventDelta med
A set of modification events (used during propagation)
Cumulative::ManFixPSETask Task
The task type.
void lremove(int i)
Remove task with index i from lambda.
Unary optional task with fixed processing time
ExecStatus overload(Space &home, int c, TaskArray< ManTask > &t)
Check mandatory tasks t for overload.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
bool lempty(void) const
Whether has responsible task.
Cumulative::OptFlexTaskBwd TaskViewBwd
The backward task view type.
void init(void)
Initialize tree after leaves have been initialized.
void shift(int i)
Shift task with index i from omega to lambda.
Node for an omega lambda tree.
FwdToBwd< ManFixPSETaskFwd > ManFixPSETaskBwd
Backward (dual) mandatory fixed task view.
void update(Space &home, ManFixPSETask &t)
Update this task to be a clone of task t.
ExtOmegaTree(Region &r, int c, const TaskTree< TaskView, Node > &t)
Initialize tree for tasks t and capacity c.
ExecStatus coptpost(Home home, Cap c, TaskArray< OptTask > &t, IntPropLevel ipl)
Post optional task propagator according to propagation level.
Cumulative::OptFixPSETaskBwd TaskViewBwd
The backward task view type.
Cumulative::OptFixPSETaskFwd TaskViewFwd
The forward task view type.
Scheduling propagator for cumulative resource with optional tasks.
long long int env
Energy envelope for subtree.
Cumulative::ManFixPSETask Task
The task type.
static ExecStatus post(Home home, Cap c, TaskArray< ManTask > &t)
Post propagator that schedules tasks on cumulative resource.
Node for an extended omega tree.
Cumulative::ManFixPTask Task
The task type.
Unary::OptFlexTask UnaryTask
The corresponding unary task type.
TaskType
Type of task for scheduling constraints.
long long int env(void) const
Return energy envelope of all tasks.
ManFixPSETask(void)
Default constructor.
void init(TaskType t, IntVar s, int p, int c, BoolVar m)
Initialize with start time s, processing time p, required capacity c, and mandatory flag m.
long long int cenv
Energy envelope for subtree.
TaskArray< ManTask > t
Tasks.
Cumulative::OptFixPTask Task
The task type.
Cumulative::ManFixPSETask ManTask
The corresponding mandatory task.
Cumulative::ManFlexTaskFwd TaskViewFwd
The forward task view type.
void init(IntVar s, int p, int c)
Initialize task with start time s, processing time p, and required resource c.
Cumulative::ManFlexTask Task
The task type.
std::basic_ostream< Char, Traits > & operator<<(std::basic_ostream< Char, Traits > &os, const ManFixPTaskBwd &t)
virtual Actor * copy(Space &home)
Perform copying during cloning.
OptFixPTask OptFixPTaskFwd
Forward optional fixed task view.
Gecode::FloatVal c(-8, 8)
Cumulative::ManFixPTaskBwd TaskViewBwd
The backward task view type.
Unary::ManFixPTask UnaryTask
The corresponding unary task type.
Unary::ManFixPSETask UnaryTask
The corresponding unary task type.
FwdToBwd< ManFlexTaskFwd > ManFlexTaskBwd
Backward (dual) mandatory flexible task view.
int resLe
Node which is responsible for le.
Cumulative::OptFixPSETask Task
The task type.
Cumulative (mandatory) task with flexible processing time.
Unary::OptFixPTask UnaryTask
The corresponding unary task type.
ManFlexTask ManFlexTaskFwd
Forward mandatory flexible task view.
int ModEventDelta
Modification event deltas.
Cumulative::ManFixPTaskFwd TaskViewFwd
The forward task view type.
Gecode::IntArgs i({1, 2, 3, 4})
Unary optional task with fixed processing, start or end time.
int resLenv
Node which is responsible for lenv.
int p
Number of positive literals for node type.
FwdToBwd< OptFixPTaskFwd > OptFixPTaskBwd
Backward (dual) optional fixed task view.
Cumulative::OptFixPTaskFwd TaskViewFwd
The forward task view type.
ManFixPSETask ManFixPSETaskFwd
Forward mandatory fixed task view.
Omega trees for computing ect of task sets.
long long int env(int i)
Compute update for task with index i.
long long int e(void) const
Return required energy.
ManFixPTask(void)
Default constructor.
Cumulative::ManFixPSETaskFwd TaskViewFwd
The forward task view type.