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>&
145 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFixPTask&
t);
186 int pmin(
void)
const;
188 int pmax(
void)
const;
217 template<
class Char,
class Traits>
218 std::basic_ostream<Char,Traits>&
219 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFixPSETask&
t);
241 template<
class Char,
class Traits>
242 std::basic_ostream<Char,Traits>&
243 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFixPTask&
t);
265 template<
class Char,
class Traits>
266 std::basic_ostream<Char,Traits>&
267 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFixPSETask&
t);
302 int pmin(
void)
const;
304 int pmax(
void)
const;
365 template<
class Char,
class Traits>
366 std::basic_ostream<Char,Traits>&
367 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFlexTask&
t);
389 template<
class Char,
class Traits>
390 std::basic_ostream<Char,Traits>&
391 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFlexTask&
t);
397 namespace Gecode {
namespace Int {
namespace Unary {
440 template<
class Char,
class Traits>
441 std::basic_ostream<Char,Traits>&
442 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFixPTaskBwd&
t);
448 template<
class Char,
class Traits>
449 std::basic_ostream<Char,Traits>&
450 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFixPSETaskBwd&
t);
456 template<
class Char,
class Traits>
457 std::basic_ostream<Char,Traits>&
458 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFixPTaskBwd&
t);
464 template<
class Char,
class Traits>
465 std::basic_ostream<Char,Traits>&
466 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFixPSETaskBwd&
t);
472 template<
class Char,
class Traits>
473 std::basic_ostream<Char,Traits>&
474 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFlexTaskBwd&
t);
482 template<
class Char,
class Traits>
483 std::basic_ostream<Char,Traits>&
484 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFlexTaskBwd&
t);
490 namespace Gecode {
namespace Int {
657 namespace Gecode {
namespace Int {
namespace Unary {
673 template<
class TaskView>
691 int ect(
int i)
const;
698 static const int undef = -1;
714 template<
class TaskView>
735 bool lempty(
void)
const;
737 int responsible(
void)
const;
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>
Omega-lambda trees for computing ect of task sets.
OptFixPTask OptFixPTaskFwd
Forward optional fixed task view.
Unary (mandatory) task with fixed processing, start or end time
int resEct
Node which is responsible for lect.
FwdToBwd< ManFixPSETaskFwd > ManFixPSETaskBwd
Backward (dual) mandatory fixed task view.
TaskType
Type of task for scheduling constraints.
int pmin(void) const
Return minimum processing time.
void update(Space &home, ManFixPTask &t)
Update this task to be a clone of task t.
Unary optional task with flexible processing time
Unary::OptFixPTaskBwd TaskViewBwd
The backward task view type.
void init(IntVar s, int p)
Initialize with start time s and processing time p.
ExecStatus manpost(Home home, TaskArray< ManTask > &t, IntPropLevel ipl)
Post mandatory task propagator according to propagation level.
int lp
Processing times for subtree.
bool optional(void) const
Whether task can still be optional.
ExecStatus timetabling(Space &home, Propagator &p, TaskArray< Task > &t)
Perform time-tabling propagation.
FwdToBwd< OptFixPTaskFwd > OptFixPTaskBwd
Backward (dual) optional fixed task view.
Unary::ManFixPTask Task
The task type.
ExecStatus overload(TaskArray< ManTask > &t)
Check mandatory tasks t for overload.
Unary::ManFixPTask ManTask
The corresponding mandatory task.
Scheduling propagator for unary resource with mandatory tasks
Unary::ManFixPTaskFwd TaskViewFwd
The forward task view type.
Unary (mandatory) task with fixed processing time
int lct(void) const
Return latest completion time.
Unary::OptFixPTask Task
The task type.
bool mandatory(void) const
Whether task is mandatory.
int ModEvent
Type for modification events.
Base-class for propagators.
Unary::ManFlexTask Task
The task type.
ExecStatus notfirstnotlast(Space &home, TaskArray< ManTask > &t)
Propagate not-first and not-last.
Unary::OptFixPSETaskFwd TaskViewFwd
The forward task view type.
int est(void) const
Return earliest start time.
Unary::OptFixPSETaskBwd TaskViewBwd
The backward task view type.
int ect
Earliest completion time for subtree.
int lect
Earliest completion times for subtree.
Traits class for mapping tasks to task views.
Base-class for both propagators and branchers.
Unary::OptFlexTask Task
The task type.
Unary::OptFlexTaskFwd TaskViewFwd
The forward task view type.
Unary::OptFixPTaskFwd TaskViewFwd
The forward task view type.
Unary optional task with fixed processing time
Int::IntView _s
Start time.
int p
Number of positive literals for node type.
Omega trees for computing ect of task sets.
Gecode::IntArgs i(4, 1, 2, 3, 4)
int n
Number of negative literals for node type.
Unary::ManFixPTaskBwd TaskViewBwd
The backward task view type.
void cancel(Space &home, Propagator &p, PropCond pc)
Cancel subscription of propagator p for task.
Unary::ManFixPTask ManTask
The corresponding mandatory task.
ManFixPTask(void)
Default constructor.
Unary::ManFixPSETaskBwd TaskViewBwd
The backward task view type.
FwdToBwd< OptFixPSETaskFwd > OptFixPSETaskBwd
Backward (dual) optional fixed task view.
Unary::ManFixPSETaskFwd TaskViewFwd
The forward task view type.
int PropCond
Type for propagation conditions.
Unary::OptFixPSETask Task
The task type.
Unary::ManFixPTask Task
The task type.
Node for an omega lambda tree.
ModEvent norun(Space &home, int e, int l)
Update such that task cannot run from e to l.
int lst(void) const
Return latest start time.
Class to define an optional from a mandatory task.
ExecStatus detectable(Space &home, TaskViewArray< ManTaskView > &t)
FwdToBwd< ManFixPTaskFwd > ManFixPTaskBwd
Backward (dual) mandatory fixed task view.
void subscribe(Space &home, Propagator &p, PropCond pc)
Subscribe propagator p to task.
FwdToBwd< OptFlexTaskFwd > OptFlexTaskBwd
Backward (dual) optional flexible task view.
ExecStatus optpost(Home home, TaskArray< OptTask > &t, IntPropLevel ipl)
Post optional task propagator according to propagation level.
Boolean integer variables.
Unary::OptFixPTask Task
The task type.
Task mapper: turns a task view into its dual.
Post propagator for SetVar SetOpType SetVar SetRelType r
int resLp
Node which is responsible for lp.
Unary::ManFlexTaskFwd TaskViewFwd
The forward task view type.
Int::IntView _p
Processing time.
IntPropLevel
Propagation levels for integer propagators.
Integer view for integer variables.
ExecStatus subsumed(Space &home, Propagator &p, TaskArray< Task > &t)
Check tasks t for subsumption.
Unary::ManFixPSETask Task
The task type.
int ect(void) const
Return earliest completion time.
Unary::OptFlexTaskBwd TaskViewBwd
The backward task view type.
Scheduling propagator for unary resource with optional tasks
ManFlexTask ManFlexTaskFwd
Forward mandatory flexible task view.
OptFixPSETask OptFixPSETaskFwd
Forward optional fixed task view.
bool excluded(void) const
Whether task is excluded.
Unary::ManFlexTask Task
The task type.
Unary optional task with fixed processing, start or end time.
IntVar st(void) const
Return start time.
int pmax(void) const
Return maximum processing time.
ExecStatus edgefinding(Space &home, TaskViewArray< TaskView > &t)
Traits class for mapping task views to tasks.
Unary::OptFlexTask Task
The task type.
OptFlexTask OptFlexTaskFwd
Forward optional flexible task view.
bool assigned(void) const
Test whether task is assigned.
Gecode toplevel namespace
ManFixPSETask ManFixPSETaskFwd
Forward mandatory fixed task view.
Unary::ManFlexTaskBwd TaskViewBwd
The backward task view type.
Unary (mandatory) task with flexible processing time
Unary::ManFixPSETask Task
The task type.
int ModEventDelta
Modification event deltas.
Home class for posting propagators
Task trees for task views with node type Node.
Int::IntView _s
Start time.
ManFixPTask ManFixPTaskFwd
Forward mandatory fixed task view.
FwdToBwd< ManFlexTaskFwd > ManFlexTaskBwd
Backward (dual) mandatory flexible task view.
Unary::OptFixPSETask Task
The task type.
void reschedule(Space &home, Propagator &p, PropCond pc)
Schedule propagator p.
Unary::ManFlexTask ManTask
The corresponding mandatory task.
int p
Processing time for subtree.
TFE post(PropagatorGroup g)
Only post functions (but not propagators) from g are considered.