Go to the documentation of this file.
40 #ifndef __GECODE_INT_CUMULATIVE_HH__
41 #define __GECODE_INT_CUMULATIVE_HH__
59 namespace Gecode {
namespace Int {
namespace Cumulative {
65 void mul_check(
long long int x,
long long int y,
long long int z);
71 namespace Gecode {
namespace Int {
namespace Cumulative {
96 long long int e(
void)
const;
111 template<
class Char,
class Traits>
112 std::basic_ostream<Char,Traits>&
150 long long int e(
void)
const;
165 template<
class Char,
class Traits>
166 std::basic_ostream<Char,Traits>&
192 long long int e(
void)
const;
207 template<
class Char,
class Traits>
208 std::basic_ostream<Char,Traits>&
234 template<
class Char,
class Traits>
235 std::basic_ostream<Char,Traits>&
260 template<
class Char,
class Traits>
261 std::basic_ostream<Char,Traits>&
286 template<
class Char,
class Traits>
287 std::basic_ostream<Char,Traits>&
294 namespace Gecode {
namespace Int {
namespace Cumulative {
337 template<
class Char,
class Traits>
338 std::basic_ostream<Char,Traits>&
345 template<
class Char,
class Traits>
346 std::basic_ostream<Char,Traits>&
353 template<
class Char,
class Traits>
354 std::basic_ostream<Char,Traits>&
361 template<
class Char,
class Traits>
362 std::basic_ostream<Char,Traits>&
369 namespace Gecode {
namespace Int {
548 namespace Gecode {
namespace Int {
namespace Cumulative {
564 template<
class TaskView>
582 long long int env(
void)
const;
597 template<
class TaskView>
624 long long int env(
int i);
648 template<
class TaskView>
670 long long int env(
void)
const;
672 long long int lenv(
void)
const;
679 namespace Gecode {
namespace Int {
namespace Cumulative {
684 subsumed(Space& home, Propagator&
p,
int c, TaskArray<Task>&
t);
687 template<
class ManTask>
691 template<
class Task,
class Cap>
705 template<
class ManTask,
class Cap,
class PL>
732 template<
class OptTask,
class Cap,
class PL>
754 template<
class ManTask,
class Cap>
759 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
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
Gecode::IntArgs i(4, 1, 2, 3, 4)
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.
virtual Actor * copy(Space &home, bool share)
Perform copying during cloning.
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.
virtual Actor * copy(Space &home, bool share)
Perform copying during cloning.
Unary::ManFlexTask UnaryTask
The corresponding unary task type.
int c(void) const
Return required capacity.
FwdToBwd< ManFixPTaskFwd > ManFixPTaskBwd
Backward (dual) mandatory fixed task view.
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
void update(Space &home, bool share, ManFixPTask &t)
Update this task to be a clone of task t.
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.
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.
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.
void update(Space &home, bool share, ManFlexTask &t)
Update this task to be a clone of task t.
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.
bool shared(const IntSet &, VX)
TaskArray< ManTask > t
Tasks.
Cumulative::OptFixPTask Task
The task type.
void update(Space &home, bool share, ManFixPSETask &t)
Update this task to be a clone of task t.
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)
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.
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.