Go to the documentation of this file.
40 #ifndef __GECODE_INT_UNARY_HH__
41 #define __GECODE_INT_UNARY_HH__
55 namespace Gecode {
namespace Int {
namespace Unary {
147 template<
class Char,
class Traits>
148 std::basic_ostream<Char,Traits>&
190 int pmin(
void)
const;
192 int pmax(
void)
const;
221 template<
class Char,
class Traits>
222 std::basic_ostream<Char,Traits>&
245 template<
class Char,
class Traits>
246 std::basic_ostream<Char,Traits>&
269 template<
class Char,
class Traits>
270 std::basic_ostream<Char,Traits>&
306 int pmin(
void)
const;
308 int pmax(
void)
const;
369 template<
class Char,
class Traits>
370 std::basic_ostream<Char,Traits>&
393 template<
class Char,
class Traits>
394 std::basic_ostream<Char,Traits>&
401 namespace Gecode {
namespace Int {
namespace Unary {
444 template<
class Char,
class Traits>
445 std::basic_ostream<Char,Traits>&
452 template<
class Char,
class Traits>
453 std::basic_ostream<Char,Traits>&
460 template<
class Char,
class Traits>
461 std::basic_ostream<Char,Traits>&
468 template<
class Char,
class Traits>
469 std::basic_ostream<Char,Traits>&
476 template<
class Char,
class Traits>
477 std::basic_ostream<Char,Traits>&
486 template<
class Char,
class Traits>
487 std::basic_ostream<Char,Traits>&
494 namespace Gecode {
namespace Int {
661 namespace Gecode {
namespace Int {
namespace Unary {
677 template<
class TaskView>
695 int ect(
int i)
const;
718 template<
class TaskView>
745 int lect(
void)
const;
752 namespace Gecode {
namespace Int {
namespace Unary {
755 template<
class ManTask>
758 template<
class OptTask,
class PL>
770 template<
class ManTask>
773 template<
class OptTask,
class PL>
777 template<
class ManTask>
780 template<
class OptTask,
class PL>
794 template<
class ManTask,
class PL>
817 template<
class OptTask,
class PL>
835 template<
class ManTask>
840 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.
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.
Gecode::IntArgs i(4, 1, 2, 3, 4)
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.
void update(Space &home, bool share, ManFixPTask &t)
Update this task to be a clone of task t.
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.
void update(Space &home, bool share, ManFixPSETask &t)
Update this task to be a clone of task t.
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.
Unary (mandatory) task with fixed processing time
int ect
Earliest completion time for subtree.
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
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.
void update(Space &home, bool share, ManFlexTask &t)
Update this task to be a clone of task t.
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.
bool shared(const IntSet &, VX)
TaskArray< ManTask > t
Tasks.
ExecStatus overload(Space &home, TaskArray< ManTask > &t)
Check mandatory tasks t for overload.
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.
virtual Actor * copy(Space &home, bool share)
Perform copying during cloning.
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.
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.
int p
Number of positive literals for node type.
Int::IntView _p
Processing time.
virtual Actor * copy(Space &home, bool share)
Perform copying during cloning.
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.