Go to the documentation of this file.
36 #ifndef __GECODE_INT_UNARY_HH__
37 #define __GECODE_INT_UNARY_HH__
51 namespace Gecode {
namespace Int {
namespace Unary {
143 template<
class Char,
class Traits>
144 std::basic_ostream<Char,Traits>&
186 int pmin(
void)
const;
188 int pmax(
void)
const;
217 template<
class Char,
class Traits>
218 std::basic_ostream<Char,Traits>&
241 template<
class Char,
class Traits>
242 std::basic_ostream<Char,Traits>&
265 template<
class Char,
class Traits>
266 std::basic_ostream<Char,Traits>&
302 int pmin(
void)
const;
304 int pmax(
void)
const;
365 template<
class Char,
class Traits>
366 std::basic_ostream<Char,Traits>&
389 template<
class Char,
class Traits>
390 std::basic_ostream<Char,Traits>&
397 namespace Gecode {
namespace Int {
namespace Unary {
440 template<
class Char,
class Traits>
441 std::basic_ostream<Char,Traits>&
448 template<
class Char,
class Traits>
449 std::basic_ostream<Char,Traits>&
456 template<
class Char,
class Traits>
457 std::basic_ostream<Char,Traits>&
464 template<
class Char,
class Traits>
465 std::basic_ostream<Char,Traits>&
472 template<
class Char,
class Traits>
473 std::basic_ostream<Char,Traits>&
482 template<
class Char,
class Traits>
483 std::basic_ostream<Char,Traits>&
490 namespace Gecode {
namespace Int {
657 namespace Gecode {
namespace Int {
namespace Unary {
673 template<
class TaskView>
691 int ect(
int i)
const;
714 template<
class TaskView>
741 int lect(
void)
const;
748 namespace Gecode {
namespace Int {
namespace Unary {
751 template<
class ManTask>
754 template<
class OptTask,
class PL>
766 template<
class ManTask>
769 template<
class OptTask,
class PL>
773 template<
class ManTask>
776 template<
class OptTask,
class PL>
790 template<
class ManTask,
class PL>
813 template<
class OptTask,
class PL>
831 template<
class ManTask>
836 template<
class OptTask>
Class to define an optional from a mandatory task.
void init(TaskType t, IntVar s, int p)
Initialize task.
OmegaTree(Region &r, const TaskViewArray< TaskView > &t)
Initialize tree for tasks t.
ModEvent norun(Space &home, int e, int l)
Update such that task cannot run from e to l.
void shift(int i)
Shift task with index i from omega to lambda.
static const int undef
Undefined task.
int lect(void) const
Return earliest completion time of all tasks excluding lambda tasks.
Unary::OptFlexTask Task
The task type.
OptFixPSETask OptFixPSETaskFwd
Forward optional fixed task view.
FwdToBwd< ManFixPTaskFwd > ManFixPTaskBwd
Backward (dual) mandatory fixed task view.
void cancel(Space &home, Propagator &p, PropCond pc)
Cancel subscription of propagator p for task.
int est(void) const
Return earliest start time.
Unary::OptFlexTask Task
The task type.
int pmax(void) const
Return maximum processing time.
void update(Space &home, ManFixPTask &t)
Update this task to be a clone of task t.
ManFlexTask(void)
Default constructor.
IntVar p(void) const
Return processing time.
Omega-lambda trees for computing ect of task sets.
int pmax(void) const
Return maximum processing time.
ExecStatus edgefinding(Space &home, TaskViewArray< TaskView > &t)
ExecStatus timetabling(Space &home, Propagator &p, TaskArray< Task > &t)
Perform time-tabling propagation.
Scheduling propagator for unary resource with optional tasks
Unary (mandatory) task with fixed processing, start or end time
int lst(void) const
Return latest start time.
OptFixPTask(void)
Default constructor.
Unary (mandatory) task with flexible processing time
void init(IntVar s, IntVar p, IntVar e)
Initialize with start time s, processing time p, end time e.
Unary::ManFixPTask Task
The task type.
bool assigned(void) const
Test whether task is assigned.
int lct(void) const
Return latest completion time.
void init(IntVar s, int p)
Initialize with start time s and processing time p.
OptFixPSETask(void)
Default constructor.
ManFixPTask ManFixPTaskFwd
Forward mandatory fixed task view.
void subscribe(Space &home, Propagator &p, PropCond pc)
Subscribe propagator p to task.
int p
Processing time for subtree.
ManFixPTask(void)
Default constructor.
Int::IntView _s
Start time.
IntPropLevel
Propagation levels for integer propagators.
OptFlexTask(void)
Default constructor.
Base-class for both propagators and branchers.
void insert(int i)
Insert task with index i.
int lect
Earliest completion times for subtree.
void init(IntVar s, IntVar p, IntVar e, BoolVar m)
Initialize with start time s, processing time p, end time e, and mandatory flag m.
OmegaLambdaTree(Region &r, const TaskViewArray< TaskView > &t, bool inc=true)
Initialize tree for tasks t with all tasks included, if inc is true.
int lp
Processing times for subtree.
Task mapper: turns a task view into its dual.
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.
Unary::OptFixPTaskFwd TaskViewFwd
The forward task view type.
virtual Actor * copy(Space &home)
Perform copying during cloning.
Unary (mandatory) task with fixed processing time
int ect
Earliest completion time for subtree.
void update(Space &home, ManFixPSETask &t)
Update this task to be a clone of task t.
Traits class for mapping tasks to task views.
Gecode toplevel namespace
Unary::OptFixPTask Task
The task type.
Unary::OptFixPSETaskFwd TaskViewFwd
The forward task view type.
Base-class for propagators.
Unary optional task with flexible processing time
Unary::ManFixPTaskBwd TaskViewBwd
The backward task view type.
Unary::ManFlexTask Task
The task type.
Unary::ManFlexTaskBwd TaskViewBwd
The backward task view type.
ModEvent norun(Space &home, int e, int l)
Update such that task cannot run from e to l.
int ect(void) const
Return earliest completion time.
Unary::OptFixPSETask Task
The task type.
Unary::ManFixPSETask Task
The task type.
OptFixPTask OptFixPTaskFwd
Forward optional fixed task view.
Unary::OptFixPTask Task
The task type.
bool optional(void) const
Whether task can still be optional.
Home class for posting propagators
ExecStatus overload(TaskArray< ManTask > &t)
Check mandatory tasks t for overload.
int responsible(void) const
Return responsible task.
bool excluded(void) const
Whether task is excluded.
Task trees for task views with node type Node.
ManProp(Home home, TaskArray< ManTask > &t)
Constructor for creation.
int lst(void) const
Return latest start time.
static ExecStatus post(Home home, TaskArray< ManTask > &t)
Post propagator that schedules tasks on unary resource.
int pmin(void) const
Return minimum processing time.
bool mandatory(void) const
Whether task is mandatory.
Traits class for mapping task views to tasks.
Post propagator for SetVar SetOpType SetVar SetRelType r
FwdToBwd< ManFlexTaskFwd > ManFlexTaskBwd
Backward (dual) mandatory flexible task view.
Boolean integer variables.
bool assigned(void) const
Test whether task is assigned.
Unary::OptFlexTaskFwd TaskViewFwd
The forward task view type.
Unary::ManFlexTask Task
The task type.
ModEventDelta med
A set of modification events (used during propagation)
Unary optional task with fixed processing time
Unary::ManFixPSETaskBwd TaskViewBwd
The backward task view type.
int lct(void) const
Return latest completion time.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
ManFixPSETask ManFixPSETaskFwd
Forward mandatory fixed task view.
int resLp
Node which is responsible for lp.
int lct(void) const
Return latest completion time.
int ect(void) const
Return earliest completion time.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
void remove(int i)
Remove task with index i.
void oinsert(int i)
Insert task with index i to omega.
Unary::ManFixPSETaskFwd TaskViewFwd
The forward task view type.
bool optional(void) const
Whether task can still be optional.
FwdToBwd< OptFlexTaskFwd > OptFlexTaskBwd
Backward (dual) optional flexible task view.
Unary::ManFixPTask ManTask
The corresponding mandatory task.
FwdToBwd< OptFixPTaskFwd > OptFixPTaskBwd
Backward (dual) optional fixed task view.
Scheduling propagator for unary resource with mandatory tasks
void linsert(int i)
Insert task with index i to lambda.
void init(const OmegaNode &l, const OmegaNode &r)
Initialize node from left child l and right child r.
Unary::ManFlexTaskFwd TaskViewFwd
The forward task view type.
FwdToBwd< OptFixPSETaskFwd > OptFixPSETaskBwd
Backward (dual) optional fixed task view.
ExecStatus subsumed(Space &home, Propagator &p, TaskArray< Task > &t)
Check tasks t for subsumption.
void subscribe(Space &home, Propagator &p, PropCond pc)
Subscribe propagator p to task.
Unary::OptFixPSETaskBwd TaskViewBwd
The backward task view type.
IntVar st(void) const
Return start time.
int ModEvent
Type for modification events.
Int::IntView _s
Start time.
IntVar st(void) const
Return start time.
void init(TaskType t, IntVar s, int p, BoolVar m)
Initialize with start time s, processing time p, and mandatory flag m.
bool mandatory(void) const
Whether task is mandatory.
Omega trees for computing ect of task sets.
ModEvent norun(Space &home, int e, int l)
Update such that task cannot run from e to l.
void init(IntVar s, int p, BoolVar m)
Initialize with start time s, processing time p, and mandatory flag m.
int pmin(void) const
Return minimum processing time.
int PropCond
Type for propagation conditions.
TaskType
Type of task for scheduling constraints.
FwdToBwd< ManFixPSETaskFwd > ManFixPSETaskBwd
Backward (dual) mandatory fixed task view.
Unary::ManFlexTask ManTask
The corresponding mandatory task.
Unary::ManFixPTask ManTask
The corresponding mandatory task.
ExecStatus optpost(Home home, TaskArray< OptTask > &t, IntPropLevel ipl)
Post optional task propagator according to propagation level.
Unary::OptFlexTaskBwd TaskViewBwd
The backward task view type.
int ect(void) const
Return earliest completion time of all tasks.
bool lempty(void) const
Whether has responsible task.
TaskArray< ManTask > t
Tasks.
Integer view for integer variables.
ManFixPSETask(void)
Default constructor.
Node for an omega lambda tree.
Unary::ManFixPTaskFwd TaskViewFwd
The forward task view type.
int pmax(void) const
Return maximum processing time.
int lst(void) const
Return latest start time.
static ExecStatus post(Home home, TaskArray< OptTask > &t)
Post propagator that schedules tasks on unary resource.
OptProp(Home home, TaskArray< OptTask > &t)
Constructor for creation.
int ect(void) const
Return earliest completion time of all tasks.
int resEct
Node which is responsible for lect.
OptFlexTask OptFlexTaskFwd
Forward optional flexible task view.
ExecStatus notfirstnotlast(Space &home, TaskArray< ManTask > &t)
Propagate not-first and not-last.
ExecStatus manpost(Home home, TaskArray< ManTask > &t, IntPropLevel ipl)
Post mandatory task propagator according to propagation level.
std::basic_ostream< Char, Traits > & operator<<(std::basic_ostream< Char, Traits > &os, const ManFixPTaskBwd &t)
Unary::OptFixPTaskBwd TaskViewBwd
The backward task view type.
bool excluded(void) const
Whether task is excluded.
ManFlexTask ManFlexTaskFwd
Forward mandatory flexible task view.
Unary::ManFixPTask Task
The task type.
void reschedule(Space &home, Propagator &p, PropCond pc)
Schedule propagator p.
ExecStatus detectable(Space &home, TaskViewArray< ManTaskView > &t)
Unary::OptFixPSETask Task
The task type.
int n
Number of negative literals for node type.
void cancel(Space &home, Propagator &p, PropCond pc)
Cancel subscription of propagator p for task.
int est(void) const
Return earliest start time.
void lremove(int i)
Remove task with index i from lambda.
int ModEventDelta
Modification event deltas.
void update(const OmegaNode &l, const OmegaNode &r)
Update node from left child l and right child r.
Gecode::IntArgs i({1, 2, 3, 4})
Unary optional task with fixed processing, start or end time.
int ect(void) const
Return earliest completion time.
int est(void) const
Return earliest start time.
virtual Actor * copy(Space &home)
Perform copying during cloning.
int p
Number of positive literals for node type.
Int::IntView _p
Processing time.
IntVar e(void) const
Return end time.
Unary::ManFixPSETask Task
The task type.
void reschedule(Space &home, Propagator &p, PropCond pc)
Schedule propagator p.
int pmin(void) const
Return minimum processing time.
void update(Space &home, ManFlexTask &t)
Update this task to be a clone of task t.