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>&
149 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFixPTask&
t);
190 int pmin(
void)
const;
192 int pmax(
void)
const;
221 template<
class Char,
class Traits>
222 std::basic_ostream<Char,Traits>&
223 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFixPSETask&
t);
245 template<
class Char,
class Traits>
246 std::basic_ostream<Char,Traits>&
247 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFixPTask&
t);
269 template<
class Char,
class Traits>
270 std::basic_ostream<Char,Traits>&
271 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFixPSETask&
t);
306 int pmin(
void)
const;
308 int pmax(
void)
const;
369 template<
class Char,
class Traits>
370 std::basic_ostream<Char,Traits>&
371 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFlexTask&
t);
393 template<
class Char,
class Traits>
394 std::basic_ostream<Char,Traits>&
395 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFlexTask&
t);
401 namespace Gecode {
namespace Int {
namespace Unary {
444 template<
class Char,
class Traits>
445 std::basic_ostream<Char,Traits>&
446 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFixPTaskBwd&
t);
452 template<
class Char,
class Traits>
453 std::basic_ostream<Char,Traits>&
454 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFixPSETaskBwd&
t);
460 template<
class Char,
class Traits>
461 std::basic_ostream<Char,Traits>&
462 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFixPTaskBwd&
t);
468 template<
class Char,
class Traits>
469 std::basic_ostream<Char,Traits>&
470 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFixPSETaskBwd&
t);
476 template<
class Char,
class Traits>
477 std::basic_ostream<Char,Traits>&
478 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFlexTaskBwd&
t);
486 template<
class Char,
class Traits>
487 std::basic_ostream<Char,Traits>&
488 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFlexTaskBwd&
t);
494 namespace Gecode {
namespace Int {
661 namespace Gecode {
namespace Int {
namespace Unary {
677 template<
class TaskView>
695 int ect(
int i)
const;
702 static const int undef = -1;
718 template<
class TaskView>
739 bool lempty(
void)
const;
741 int responsible(
void)
const;
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>
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.
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.
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.
void update(Space &home, bool share, ManFixPTask &t)
Update this task to be a clone of task t.
Unary::ManFixPSETaskFwd TaskViewFwd
The forward task view type.
int PropCond
Type for propagation conditions.
Unary::OptFixPSETask Task
The task type.
ExecStatus overload(Space &home, TaskArray< ManTask > &t)
Check mandatory tasks t for overload.
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.
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.
bool shared(const ConstView< ViewA > &, const ConstView< ViewB > &)
Test whether views share same variable.
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.