40 #ifndef __GECODE_INT_UNARY_HH__ 41 #define __GECODE_INT_UNARY_HH__ 55 namespace Gecode {
namespace Int {
namespace Unary {
145 template<
class Char,
class Traits>
146 std::basic_ostream<Char,Traits>&
147 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFixPTask&
t);
188 int pmin(
void)
const;
190 int pmax(
void)
const;
219 template<
class Char,
class Traits>
220 std::basic_ostream<Char,Traits>&
221 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFixPSETask&
t);
243 template<
class Char,
class Traits>
244 std::basic_ostream<Char,Traits>&
245 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFixPTask&
t);
267 template<
class Char,
class Traits>
268 std::basic_ostream<Char,Traits>&
269 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFixPSETask&
t);
304 int pmin(
void)
const;
306 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>
762 template<
class ManTask>
765 template<
class OptTask>
769 template<
class ManTask>
772 template<
class OptTask>
786 template<
class ManTask>
809 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.
Unary optional task with flexible processing time
void post(Home home, Term *t, int n, FloatRelType frt, FloatVal c)
Post propagator for linear constraint over floats.
Unary::OptFixPTaskBwd TaskViewBwd
The backward task view type.
void init(IntVar s, int p)
Initialize with start time s and processing time p.
int lp
Processing times for subtree.
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
void cancel(Space &home, Propagator &p, PropCond pc=Int::PC_INT_BND)
Cancel subscription of propagator p for task.
Unary::OptFixPTask Task
The task type.
int ModEvent
Type for modification events.
Base-class for propagators.
Unary::ManFlexTask Task
The task type.
int pmax(void) const
Return maximum processing time.
ExecStatus notfirstnotlast(Space &home, TaskArray< ManTask > &t)
Propagate not-first and not-last.
Unary::OptFixPSETaskFwd TaskViewFwd
The forward task view type.
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.
int ect(void) const
Return earliest completion time.
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.
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.
int pmin(void) const
Return minimum processing time.
Unary::ManFixPSETaskFwd TaskViewFwd
The forward task view type.
const Gecode::PropCond PC_INT_BND
Propagate when minimum or maximum of a view changes.
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.
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.
FwdToBwd< OptFlexTaskFwd > OptFlexTaskBwd
Backward (dual) optional flexible task view.
int lst(void) const
Return latest start time.
Boolean integer variables.
bool optional(void) const
Whether task can still be optional.
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.
Integer view for integer variables.
bool mandatory(void) const
Whether task is mandatory.
ExecStatus subsumed(Space &home, Propagator &p, TaskArray< Task > &t)
Check tasks t for subsumption.
Unary::ManFixPSETask Task
The task type.
IntVar st(void) const
Return start 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.
Unary::ManFlexTask Task
The task type.
Unary optional task with fixed processing, start or end time.
bool assigned(void) const
Test whether task is assigned.
void subscribe(Space &home, Propagator &p, PropCond pc=Int::PC_INT_BND)
Subscribe propagator p to task.
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.
Gecode toplevel namespace
ManFixPSETask ManFixPSETaskFwd
Forward mandatory fixed task view.
int lct(void) const
Return latest completion time.
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.
bool excluded(void) const
Whether task is excluded.
Unary::ManFlexTask ManTask
The corresponding mandatory task.
int p
Processing time for subtree.
int est(void) const
Return earliest start time.