operations_research::IntervalVar Class Referenceabstract

Detailed Description

Interval variables are often used in scheduling.

The main characteristics of an IntervalVar are the start position, duration, and end date. All these characteristics can be queried and set, and demons can be posted on their modifications.

An important aspect is optionality: an IntervalVar can be performed or not. If unperformed, then it simply does not exist, and its characteristics cannot be accessed any more. An interval var is automatically marked as unperformed when it is not consistent anymore (start greater than end, duration < 0...)

Definition at line 4290 of file constraint_solver.h.

Public Member Functions

 IntervalVar (Solver *const solver, const std::string &name)
 
 ~IntervalVar () override
 
virtual int64 StartMin () const =0
 These methods query, set, and watch the start position of the interval var. More...
 
virtual int64 StartMax () const =0
 
virtual void SetStartMin (int64 m)=0
 
virtual void SetStartMax (int64 m)=0
 
virtual void SetStartRange (int64 mi, int64 ma)=0
 
virtual int64 OldStartMin () const =0
 
virtual int64 OldStartMax () const =0
 
virtual void WhenStartRange (Demon *const d)=0
 
void WhenStartRange (Solver::Closure closure)
 
void WhenStartRange (Solver::Action action)
 
virtual void WhenStartBound (Demon *const d)=0
 
void WhenStartBound (Solver::Closure closure)
 
void WhenStartBound (Solver::Action action)
 
virtual int64 DurationMin () const =0
 These methods query, set, and watch the duration of the interval var. More...
 
virtual int64 DurationMax () const =0
 
virtual void SetDurationMin (int64 m)=0
 
virtual void SetDurationMax (int64 m)=0
 
virtual void SetDurationRange (int64 mi, int64 ma)=0
 
virtual int64 OldDurationMin () const =0
 
virtual int64 OldDurationMax () const =0
 
virtual void WhenDurationRange (Demon *const d)=0
 
void WhenDurationRange (Solver::Closure closure)
 
void WhenDurationRange (Solver::Action action)
 
virtual void WhenDurationBound (Demon *const d)=0
 
void WhenDurationBound (Solver::Closure closure)
 
void WhenDurationBound (Solver::Action action)
 
virtual int64 EndMin () const =0
 These methods query, set, and watch the end position of the interval var. More...
 
virtual int64 EndMax () const =0
 
virtual void SetEndMin (int64 m)=0
 
virtual void SetEndMax (int64 m)=0
 
virtual void SetEndRange (int64 mi, int64 ma)=0
 
virtual int64 OldEndMin () const =0
 
virtual int64 OldEndMax () const =0
 
virtual void WhenEndRange (Demon *const d)=0
 
void WhenEndRange (Solver::Closure closure)
 
void WhenEndRange (Solver::Action action)
 
virtual void WhenEndBound (Demon *const d)=0
 
void WhenEndBound (Solver::Closure closure)
 
void WhenEndBound (Solver::Action action)
 
virtual bool MustBePerformed () const =0
 These methods query, set, and watch the performed status of the interval var. More...
 
virtual bool MayBePerformed () const =0
 
bool CannotBePerformed () const
 
bool IsPerformedBound () const
 
virtual void SetPerformed (bool val)=0
 
virtual bool WasPerformedBound () const =0
 
virtual void WhenPerformedBound (Demon *const d)=0
 
void WhenPerformedBound (Solver::Closure closure)
 
void WhenPerformedBound (Solver::Action action)
 
void WhenAnything (Demon *const d)
 Attaches a demon awakened when anything about this interval changes. More...
 
void WhenAnything (Solver::Closure closure)
 Attaches a closure awakened when anything about this interval changes. More...
 
void WhenAnything (Solver::Action action)
 Attaches an action awakened when anything about this interval changes. More...
 
virtual IntExprStartExpr ()=0
 These methods create expressions encapsulating the start, end and duration of the interval var. More...
 
virtual IntExprDurationExpr ()=0
 
virtual IntExprEndExpr ()=0
 
virtual IntExprPerformedExpr ()=0
 
virtual IntExprSafeStartExpr (int64 unperformed_value)=0
 These methods create expressions encapsulating the start, end and duration of the interval var. More...
 
virtual IntExprSafeDurationExpr (int64 unperformed_value)=0
 
virtual IntExprSafeEndExpr (int64 unperformed_value)=0
 
virtual void Accept (ModelVisitor *const visitor) const =0
 Accepts the given visitor. More...
 
std::string DebugString () const override
 
Solversolver () const
 
void FreezeQueue ()
 This method freezes the propagation queue. More...
 
void UnfreezeQueue ()
 This method unfreezes the propagation queue. More...
 
void EnqueueDelayedDemon (Demon *const d)
 This method pushes the demon onto the propagation queue. More...
 
void EnqueueVar (Demon *const d)
 
void ExecuteAll (const SimpleRevFIFO< Demon * > &demons)
 
void EnqueueAll (const SimpleRevFIFO< Demon * > &demons)
 
void set_action_on_fail (Solver::Action a)
 
void reset_action_on_fail ()
 This method clears the failure callback. More...
 
void set_variable_to_clean_on_fail (IntVar *v)
 Shortcut for variable cleaner. More...
 
virtual std::string name () const
 Object naming. More...
 
void set_name (const std::string &name)
 
bool HasName () const
 Returns whether the object has been named or not. More...
 
virtual std::string BaseName () const
 Returns a base name for automatic naming. More...
 

Static Public Attributes

static const int64 kMinValidValue
 The smallest acceptable value to be returned by StartMin() More...
 
static const int64 kMaxValidValue
 The largest acceptable value to be returned by EndMax() More...
 

Constructor & Destructor Documentation

◆ IntervalVar()

operations_research::IntervalVar::IntervalVar ( Solver *const  solver,
const std::string &  name 
)
inline

Definition at line 4296 of file constraint_solver.h.

◆ ~IntervalVar()

operations_research::IntervalVar::~IntervalVar ( )
inlineoverride

Definition at line 4300 of file constraint_solver.h.

Member Function Documentation

◆ Accept()

virtual void operations_research::IntervalVar::Accept ( ModelVisitor *const  visitor) const
pure virtual

Accepts the given visitor.

◆ BaseName()

virtual std::string operations_research::PropagationBaseObject::BaseName ( ) const
virtualinherited

Returns a base name for automatic naming.

Reimplemented in operations_research::BooleanVar.

◆ CannotBePerformed()

bool operations_research::IntervalVar::CannotBePerformed ( ) const
inline

Definition at line 4388 of file constraint_solver.h.

◆ DebugString()

std::string operations_research::PropagationBaseObject::DebugString ( ) const
inlineoverridevirtualinherited

◆ DurationExpr()

virtual IntExpr* operations_research::IntervalVar::DurationExpr ( )
pure virtual

◆ DurationMax()

virtual int64 operations_research::IntervalVar::DurationMax ( ) const
pure virtual

◆ DurationMin()

virtual int64 operations_research::IntervalVar::DurationMin ( ) const
pure virtual

These methods query, set, and watch the duration of the interval var.

◆ EndExpr()

virtual IntExpr* operations_research::IntervalVar::EndExpr ( )
pure virtual

◆ EndMax()

virtual int64 operations_research::IntervalVar::EndMax ( ) const
pure virtual

◆ EndMin()

virtual int64 operations_research::IntervalVar::EndMin ( ) const
pure virtual

These methods query, set, and watch the end position of the interval var.

◆ EnqueueAll()

void operations_research::PropagationBaseObject::EnqueueAll ( const SimpleRevFIFO< Demon * > &  demons)
inherited

◆ EnqueueDelayedDemon()

void operations_research::PropagationBaseObject::EnqueueDelayedDemon ( Demon *const  d)
inlineinherited

This method pushes the demon onto the propagation queue.

It will be processed directly if the queue is empty. It will be enqueued according to its priority otherwise.

Definition at line 3129 of file constraint_solver.h.

◆ EnqueueVar()

void operations_research::PropagationBaseObject::EnqueueVar ( Demon *const  d)
inlineinherited

Definition at line 3130 of file constraint_solver.h.

◆ ExecuteAll()

void operations_research::PropagationBaseObject::ExecuteAll ( const SimpleRevFIFO< Demon * > &  demons)
inherited

◆ FreezeQueue()

void operations_research::PropagationBaseObject::FreezeQueue ( )
inlineinherited

This method freezes the propagation queue.

It is useful when you need to apply multiple modifications at once.

Definition at line 3120 of file constraint_solver.h.

◆ HasName()

bool operations_research::PropagationBaseObject::HasName ( ) const
inherited

Returns whether the object has been named or not.

◆ IsPerformedBound()

bool operations_research::IntervalVar::IsPerformedBound ( ) const
inline

Definition at line 4389 of file constraint_solver.h.

◆ MayBePerformed()

virtual bool operations_research::IntervalVar::MayBePerformed ( ) const
pure virtual

◆ MustBePerformed()

virtual bool operations_research::IntervalVar::MustBePerformed ( ) const
pure virtual

These methods query, set, and watch the performed status of the interval var.

◆ name()

virtual std::string operations_research::PropagationBaseObject::name ( ) const
virtualinherited

Object naming.

◆ OldDurationMax()

virtual int64 operations_research::IntervalVar::OldDurationMax ( ) const
pure virtual

◆ OldDurationMin()

virtual int64 operations_research::IntervalVar::OldDurationMin ( ) const
pure virtual

◆ OldEndMax()

virtual int64 operations_research::IntervalVar::OldEndMax ( ) const
pure virtual

◆ OldEndMin()

virtual int64 operations_research::IntervalVar::OldEndMin ( ) const
pure virtual

◆ OldStartMax()

virtual int64 operations_research::IntervalVar::OldStartMax ( ) const
pure virtual

◆ OldStartMin()

virtual int64 operations_research::IntervalVar::OldStartMin ( ) const
pure virtual

◆ PerformedExpr()

virtual IntExpr* operations_research::IntervalVar::PerformedExpr ( )
pure virtual

◆ reset_action_on_fail()

void operations_research::PropagationBaseObject::reset_action_on_fail ( )
inlineinherited

This method clears the failure callback.

Definition at line 3143 of file constraint_solver.h.

◆ SafeDurationExpr()

virtual IntExpr* operations_research::IntervalVar::SafeDurationExpr ( int64  unperformed_value)
pure virtual

◆ SafeEndExpr()

virtual IntExpr* operations_research::IntervalVar::SafeEndExpr ( int64  unperformed_value)
pure virtual

◆ SafeStartExpr()

virtual IntExpr* operations_research::IntervalVar::SafeStartExpr ( int64  unperformed_value)
pure virtual

These methods create expressions encapsulating the start, end and duration of the interval var.

If the interval var is unperformed, they will return the unperformed_value.

◆ set_action_on_fail()

void operations_research::PropagationBaseObject::set_action_on_fail ( Solver::Action  a)
inlineinherited

Definition at line 3137 of file constraint_solver.h.

◆ set_name()

void operations_research::PropagationBaseObject::set_name ( const std::string &  name)
inherited

◆ set_variable_to_clean_on_fail()

void operations_research::PropagationBaseObject::set_variable_to_clean_on_fail ( IntVar v)
inlineinherited

Shortcut for variable cleaner.

Definition at line 3146 of file constraint_solver.h.

◆ SetDurationMax()

virtual void operations_research::IntervalVar::SetDurationMax ( int64  m)
pure virtual

◆ SetDurationMin()

virtual void operations_research::IntervalVar::SetDurationMin ( int64  m)
pure virtual

◆ SetDurationRange()

virtual void operations_research::IntervalVar::SetDurationRange ( int64  mi,
int64  ma 
)
pure virtual

◆ SetEndMax()

virtual void operations_research::IntervalVar::SetEndMax ( int64  m)
pure virtual

◆ SetEndMin()

virtual void operations_research::IntervalVar::SetEndMin ( int64  m)
pure virtual

◆ SetEndRange()

virtual void operations_research::IntervalVar::SetEndRange ( int64  mi,
int64  ma 
)
pure virtual

◆ SetPerformed()

virtual void operations_research::IntervalVar::SetPerformed ( bool  val)
pure virtual

◆ SetStartMax()

virtual void operations_research::IntervalVar::SetStartMax ( int64  m)
pure virtual

◆ SetStartMin()

virtual void operations_research::IntervalVar::SetStartMin ( int64  m)
pure virtual

◆ SetStartRange()

virtual void operations_research::IntervalVar::SetStartRange ( int64  mi,
int64  ma 
)
pure virtual

◆ solver()

Solver* operations_research::PropagationBaseObject::solver ( ) const
inlineinherited

Definition at line 3116 of file constraint_solver.h.

◆ StartExpr()

virtual IntExpr* operations_research::IntervalVar::StartExpr ( )
pure virtual

These methods create expressions encapsulating the start, end and duration of the interval var.

Please note that these must not be used if the interval var is unperformed.

◆ StartMax()

virtual int64 operations_research::IntervalVar::StartMax ( ) const
pure virtual

◆ StartMin()

virtual int64 operations_research::IntervalVar::StartMin ( ) const
pure virtual

These methods query, set, and watch the start position of the interval var.

◆ UnfreezeQueue()

void operations_research::PropagationBaseObject::UnfreezeQueue ( )
inlineinherited

This method unfreezes the propagation queue.

All modifications that happened when the queue was frozen will be processed.

Definition at line 3124 of file constraint_solver.h.

◆ WasPerformedBound()

virtual bool operations_research::IntervalVar::WasPerformedBound ( ) const
pure virtual

◆ WhenAnything() [1/3]

void operations_research::IntervalVar::WhenAnything ( Demon *const  d)

Attaches a demon awakened when anything about this interval changes.

◆ WhenAnything() [2/3]

void operations_research::IntervalVar::WhenAnything ( Solver::Closure  closure)
inline

Attaches a closure awakened when anything about this interval changes.

Definition at line 4407 of file constraint_solver.h.

◆ WhenAnything() [3/3]

void operations_research::IntervalVar::WhenAnything ( Solver::Action  action)
inline

Attaches an action awakened when anything about this interval changes.

Definition at line 4412 of file constraint_solver.h.

◆ WhenDurationBound() [1/3]

virtual void operations_research::IntervalVar::WhenDurationBound ( Demon *const  d)
pure virtual

◆ WhenDurationBound() [2/3]

void operations_research::IntervalVar::WhenDurationBound ( Solver::Closure  closure)
inline

Definition at line 4348 of file constraint_solver.h.

◆ WhenDurationBound() [3/3]

void operations_research::IntervalVar::WhenDurationBound ( Solver::Action  action)
inline

Definition at line 4352 of file constraint_solver.h.

◆ WhenDurationRange() [1/3]

virtual void operations_research::IntervalVar::WhenDurationRange ( Demon *const  d)
pure virtual

◆ WhenDurationRange() [2/3]

void operations_research::IntervalVar::WhenDurationRange ( Solver::Closure  closure)
inline

Definition at line 4339 of file constraint_solver.h.

◆ WhenDurationRange() [3/3]

void operations_research::IntervalVar::WhenDurationRange ( Solver::Action  action)
inline

Definition at line 4343 of file constraint_solver.h.

◆ WhenEndBound() [1/3]

virtual void operations_research::IntervalVar::WhenEndBound ( Demon *const  d)
pure virtual

◆ WhenEndBound() [2/3]

void operations_research::IntervalVar::WhenEndBound ( Solver::Closure  closure)
inline

Definition at line 4375 of file constraint_solver.h.

◆ WhenEndBound() [3/3]

void operations_research::IntervalVar::WhenEndBound ( Solver::Action  action)
inline

Definition at line 4379 of file constraint_solver.h.

◆ WhenEndRange() [1/3]

virtual void operations_research::IntervalVar::WhenEndRange ( Demon *const  d)
pure virtual

◆ WhenEndRange() [2/3]

void operations_research::IntervalVar::WhenEndRange ( Solver::Closure  closure)
inline

Definition at line 4366 of file constraint_solver.h.

◆ WhenEndRange() [3/3]

void operations_research::IntervalVar::WhenEndRange ( Solver::Action  action)
inline

Definition at line 4370 of file constraint_solver.h.

◆ WhenPerformedBound() [1/3]

virtual void operations_research::IntervalVar::WhenPerformedBound ( Demon *const  d)
pure virtual

◆ WhenPerformedBound() [2/3]

void operations_research::IntervalVar::WhenPerformedBound ( Solver::Closure  closure)
inline

Definition at line 4395 of file constraint_solver.h.

◆ WhenPerformedBound() [3/3]

void operations_research::IntervalVar::WhenPerformedBound ( Solver::Action  action)
inline

Definition at line 4399 of file constraint_solver.h.

◆ WhenStartBound() [1/3]

virtual void operations_research::IntervalVar::WhenStartBound ( Demon *const  d)
pure virtual

◆ WhenStartBound() [2/3]

void operations_research::IntervalVar::WhenStartBound ( Solver::Closure  closure)
inline

Definition at line 4321 of file constraint_solver.h.

◆ WhenStartBound() [3/3]

void operations_research::IntervalVar::WhenStartBound ( Solver::Action  action)
inline

Definition at line 4325 of file constraint_solver.h.

◆ WhenStartRange() [1/3]

virtual void operations_research::IntervalVar::WhenStartRange ( Demon *const  d)
pure virtual

◆ WhenStartRange() [2/3]

void operations_research::IntervalVar::WhenStartRange ( Solver::Closure  closure)
inline

Definition at line 4312 of file constraint_solver.h.

◆ WhenStartRange() [3/3]

void operations_research::IntervalVar::WhenStartRange ( Solver::Action  action)
inline

Definition at line 4316 of file constraint_solver.h.

Member Data Documentation

◆ kMaxValidValue

const int64 operations_research::IntervalVar::kMaxValidValue
static

The largest acceptable value to be returned by EndMax()

Definition at line 4295 of file constraint_solver.h.

◆ kMinValidValue

const int64 operations_research::IntervalVar::kMinValidValue
static

The smallest acceptable value to be returned by StartMin()

Definition at line 4293 of file constraint_solver.h.


The documentation for this class was generated from the following file: