operations_research::Assignment Class Reference

Detailed Description

An Assignment is a variable -> domains mapping, used to report solutions to the user.

Definition at line 4934 of file constraint_solver.h.

Public Types

typedef AssignmentContainer< IntVar, IntVarElementIntContainer
 
typedef AssignmentContainer< IntervalVar, IntervalVarElementIntervalContainer
 
typedef AssignmentContainer< SequenceVar, SequenceVarElementSequenceContainer
 

Public Member Functions

 Assignment (Solver *const s)
 
 Assignment (const Assignment *const copy)
 
 ~Assignment () override
 
void Clear ()
 
bool Empty () const
 
int Size () const
 
int NumIntVars () const
 
int NumIntervalVars () const
 
int NumSequenceVars () const
 
void Store ()
 
void Restore ()
 
bool Load (const std::string &filename)
 Loads an assignment from a file; does not add variables to the assignment (only the variables contained in the assignment are modified). More...
 
bool Load (File *file)
 
void Load (const AssignmentProto &assignment_proto)
 #if !defined(SWIG) More...
 
bool Save (const std::string &filename) const
 Saves the assignment to a file. More...
 
bool Save (File *file) const
 
void Save (AssignmentProto *const assignment_proto) const
 
void AddObjective (IntVar *const v)
 
void ClearObjective ()
 
IntVarObjective () const
 
bool HasObjective () const
 
int64 ObjectiveMin () const
 
int64 ObjectiveMax () const
 
int64 ObjectiveValue () const
 
bool ObjectiveBound () const
 
void SetObjectiveMin (int64 m)
 
void SetObjectiveMax (int64 m)
 
void SetObjectiveValue (int64 value)
 
void SetObjectiveRange (int64 l, int64 u)
 
IntVarElementAdd (IntVar *const var)
 
void Add (const std::vector< IntVar * > &vars)
 
IntVarElementFastAdd (IntVar *const var)
 Adds without checking if variable has been previously added. More...
 
int64 Min (const IntVar *const var) const
 
int64 Max (const IntVar *const var) const
 
int64 Value (const IntVar *const var) const
 
bool Bound (const IntVar *const var) const
 
void SetMin (const IntVar *const var, int64 m)
 
void SetMax (const IntVar *const var, int64 m)
 
void SetRange (const IntVar *const var, int64 l, int64 u)
 
void SetValue (const IntVar *const var, int64 value)
 
IntervalVarElementAdd (IntervalVar *const var)
 
void Add (const std::vector< IntervalVar * > &vars)
 
IntervalVarElementFastAdd (IntervalVar *const var)
 Adds without checking if variable has been previously added. More...
 
int64 StartMin (const IntervalVar *const var) const
 
int64 StartMax (const IntervalVar *const var) const
 
int64 StartValue (const IntervalVar *const var) const
 
int64 DurationMin (const IntervalVar *const var) const
 
int64 DurationMax (const IntervalVar *const var) const
 
int64 DurationValue (const IntervalVar *const var) const
 
int64 EndMin (const IntervalVar *const var) const
 
int64 EndMax (const IntervalVar *const var) const
 
int64 EndValue (const IntervalVar *const var) const
 
int64 PerformedMin (const IntervalVar *const var) const
 
int64 PerformedMax (const IntervalVar *const var) const
 
int64 PerformedValue (const IntervalVar *const var) const
 
void SetStartMin (const IntervalVar *const var, int64 m)
 
void SetStartMax (const IntervalVar *const var, int64 m)
 
void SetStartRange (const IntervalVar *const var, int64 mi, int64 ma)
 
void SetStartValue (const IntervalVar *const var, int64 value)
 
void SetDurationMin (const IntervalVar *const var, int64 m)
 
void SetDurationMax (const IntervalVar *const var, int64 m)
 
void SetDurationRange (const IntervalVar *const var, int64 mi, int64 ma)
 
void SetDurationValue (const IntervalVar *const var, int64 value)
 
void SetEndMin (const IntervalVar *const var, int64 m)
 
void SetEndMax (const IntervalVar *const var, int64 m)
 
void SetEndRange (const IntervalVar *const var, int64 mi, int64 ma)
 
void SetEndValue (const IntervalVar *const var, int64 value)
 
void SetPerformedMin (const IntervalVar *const var, int64 m)
 
void SetPerformedMax (const IntervalVar *const var, int64 m)
 
void SetPerformedRange (const IntervalVar *const var, int64 mi, int64 ma)
 
void SetPerformedValue (const IntervalVar *const var, int64 value)
 
SequenceVarElementAdd (SequenceVar *const var)
 
void Add (const std::vector< SequenceVar * > &vars)
 
SequenceVarElementFastAdd (SequenceVar *const var)
 Adds without checking if the variable had been previously added. More...
 
const std::vector< int > & ForwardSequence (const SequenceVar *const var) const
 
const std::vector< int > & BackwardSequence (const SequenceVar *const var) const
 
const std::vector< int > & Unperformed (const SequenceVar *const var) const
 
void SetSequence (const SequenceVar *const var, const std::vector< int > &forward_sequence, const std::vector< int > &backward_sequence, const std::vector< int > &unperformed)
 
void SetForwardSequence (const SequenceVar *const var, const std::vector< int > &forward_sequence)
 
void SetBackwardSequence (const SequenceVar *const var, const std::vector< int > &backward_sequence)
 
void SetUnperformed (const SequenceVar *const var, const std::vector< int > &unperformed)
 
void Activate (const IntVar *const var)
 
void Deactivate (const IntVar *const var)
 
bool Activated (const IntVar *const var) const
 
void Activate (const IntervalVar *const var)
 
void Deactivate (const IntervalVar *const var)
 
bool Activated (const IntervalVar *const var) const
 
void Activate (const SequenceVar *const var)
 
void Deactivate (const SequenceVar *const var)
 
bool Activated (const SequenceVar *const var) const
 
void ActivateObjective ()
 
void DeactivateObjective ()
 
bool ActivatedObjective () const
 
std::string DebugString () const override
 
bool AreAllElementsBound () const
 
bool Contains (const IntVar *const var) const
 
bool Contains (const IntervalVar *const var) const
 
bool Contains (const SequenceVar *const var) const
 
void CopyIntersection (const Assignment *assignment)
 Copies the intersection of the two assignments to the current assignment. More...
 
void Copy (const Assignment *assignment)
 Copies 'assignment' to the current assignment, clearing its previous content. More...
 
const IntContainerIntVarContainer () const
 
IntContainerMutableIntVarContainer ()
 
const IntervalContainerIntervalVarContainer () const
 
IntervalContainerMutableIntervalVarContainer ()
 
const SequenceContainerSequenceVarContainer () const
 
SequenceContainerMutableSequenceVarContainer ()
 
bool operator== (const Assignment &assignment) const
 
bool operator!= (const Assignment &assignment) const
 
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...
 

Member Typedef Documentation

◆ IntContainer

◆ IntervalContainer

◆ SequenceContainer

Constructor & Destructor Documentation

◆ Assignment() [1/2]

operations_research::Assignment::Assignment ( Solver *const  s)
explicit

◆ Assignment() [2/2]

operations_research::Assignment::Assignment ( const Assignment *const  copy)
explicit

◆ ~Assignment()

operations_research::Assignment::~Assignment ( )
override

Member Function Documentation

◆ Activate() [1/3]

void operations_research::Assignment::Activate ( const IntVar *const  var)

◆ Activate() [2/3]

void operations_research::Assignment::Activate ( const IntervalVar *const  var)

◆ Activate() [3/3]

void operations_research::Assignment::Activate ( const SequenceVar *const  var)

◆ Activated() [1/3]

bool operations_research::Assignment::Activated ( const IntVar *const  var) const

◆ Activated() [2/3]

bool operations_research::Assignment::Activated ( const IntervalVar *const  var) const

◆ Activated() [3/3]

bool operations_research::Assignment::Activated ( const SequenceVar *const  var) const

◆ ActivatedObjective()

bool operations_research::Assignment::ActivatedObjective ( ) const

◆ ActivateObjective()

void operations_research::Assignment::ActivateObjective ( )

◆ Add() [1/6]

IntVarElement* operations_research::Assignment::Add ( IntVar *const  var)

◆ Add() [2/6]

void operations_research::Assignment::Add ( const std::vector< IntVar * > &  vars)

◆ Add() [3/6]

IntervalVarElement* operations_research::Assignment::Add ( IntervalVar *const  var)

◆ Add() [4/6]

void operations_research::Assignment::Add ( const std::vector< IntervalVar * > &  vars)

◆ Add() [5/6]

SequenceVarElement* operations_research::Assignment::Add ( SequenceVar *const  var)

◆ Add() [6/6]

void operations_research::Assignment::Add ( const std::vector< SequenceVar * > &  vars)

◆ AddObjective()

void operations_research::Assignment::AddObjective ( IntVar *const  v)

◆ AreAllElementsBound()

bool operations_research::Assignment::AreAllElementsBound ( ) const
inline

Definition at line 5069 of file constraint_solver.h.

◆ BackwardSequence()

const std::vector<int>& operations_research::Assignment::BackwardSequence ( const SequenceVar *const  var) const

◆ BaseName()

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

Returns a base name for automatic naming.

Reimplemented in operations_research::BooleanVar.

◆ Bound()

bool operations_research::Assignment::Bound ( const IntVar *const  var) const

◆ Clear()

void operations_research::Assignment::Clear ( )

◆ ClearObjective()

void operations_research::Assignment::ClearObjective ( )
inline

Definition at line 4975 of file constraint_solver.h.

◆ Contains() [1/3]

bool operations_research::Assignment::Contains ( const IntVar *const  var) const

◆ Contains() [2/3]

bool operations_research::Assignment::Contains ( const IntervalVar *const  var) const

◆ Contains() [3/3]

bool operations_research::Assignment::Contains ( const SequenceVar *const  var) const

◆ Copy()

void operations_research::Assignment::Copy ( const Assignment assignment)

Copies 'assignment' to the current assignment, clearing its previous content.

◆ CopyIntersection()

void operations_research::Assignment::CopyIntersection ( const Assignment assignment)

Copies the intersection of the two assignments to the current assignment.

◆ Deactivate() [1/3]

void operations_research::Assignment::Deactivate ( const IntVar *const  var)

◆ Deactivate() [2/3]

void operations_research::Assignment::Deactivate ( const IntervalVar *const  var)

◆ Deactivate() [3/3]

void operations_research::Assignment::Deactivate ( const SequenceVar *const  var)

◆ DeactivateObjective()

void operations_research::Assignment::DeactivateObjective ( )

◆ DebugString()

std::string operations_research::Assignment::DebugString ( ) const
overridevirtual

◆ DurationMax()

int64 operations_research::Assignment::DurationMax ( const IntervalVar *const  var) const

◆ DurationMin()

int64 operations_research::Assignment::DurationMin ( const IntervalVar *const  var) const

◆ DurationValue()

int64 operations_research::Assignment::DurationValue ( const IntervalVar *const  var) const

◆ Empty()

bool operations_research::Assignment::Empty ( ) const
inline

Definition at line 4947 of file constraint_solver.h.

◆ EndMax()

int64 operations_research::Assignment::EndMax ( const IntervalVar *const  var) const

◆ EndMin()

int64 operations_research::Assignment::EndMin ( const IntervalVar *const  var) const

◆ EndValue()

int64 operations_research::Assignment::EndValue ( const IntervalVar *const  var) const

◆ 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

◆ FastAdd() [1/3]

IntVarElement* operations_research::Assignment::FastAdd ( IntVar *const  var)

Adds without checking if variable has been previously added.

◆ FastAdd() [2/3]

IntervalVarElement* operations_research::Assignment::FastAdd ( IntervalVar *const  var)

Adds without checking if variable has been previously added.

◆ FastAdd() [3/3]

SequenceVarElement* operations_research::Assignment::FastAdd ( SequenceVar *const  var)

Adds without checking if the variable had been previously added.

◆ ForwardSequence()

const std::vector<int>& operations_research::Assignment::ForwardSequence ( const SequenceVar *const  var) const

◆ 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.

◆ HasObjective()

bool operations_research::Assignment::HasObjective ( ) const
inline

Definition at line 4977 of file constraint_solver.h.

◆ IntervalVarContainer()

const IntervalContainer& operations_research::Assignment::IntervalVarContainer ( ) const
inline

Definition at line 5087 of file constraint_solver.h.

◆ IntVarContainer()

const IntContainer& operations_research::Assignment::IntVarContainer ( ) const
inline

Definition at line 5085 of file constraint_solver.h.

◆ Load() [1/3]

bool operations_research::Assignment::Load ( const std::string &  filename)

Loads an assignment from a file; does not add variables to the assignment (only the variables contained in the assignment are modified).

◆ Load() [2/3]

bool operations_research::Assignment::Load ( File *  file)

◆ Load() [3/3]

void operations_research::Assignment::Load ( const AssignmentProto &  assignment_proto)

#if !defined(SWIG)

◆ Max()

int64 operations_research::Assignment::Max ( const IntVar *const  var) const

◆ Min()

int64 operations_research::Assignment::Min ( const IntVar *const  var) const

◆ MutableIntervalVarContainer()

IntervalContainer* operations_research::Assignment::MutableIntervalVarContainer ( )
inline

Definition at line 5090 of file constraint_solver.h.

◆ MutableIntVarContainer()

IntContainer* operations_research::Assignment::MutableIntVarContainer ( )
inline

Definition at line 5086 of file constraint_solver.h.

◆ MutableSequenceVarContainer()

SequenceContainer* operations_research::Assignment::MutableSequenceVarContainer ( )
inline

Definition at line 5096 of file constraint_solver.h.

◆ name()

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

Object naming.

◆ NumIntervalVars()

int operations_research::Assignment::NumIntervalVars ( ) const
inline

Definition at line 4955 of file constraint_solver.h.

◆ NumIntVars()

int operations_research::Assignment::NumIntVars ( ) const
inline

Definition at line 4954 of file constraint_solver.h.

◆ NumSequenceVars()

int operations_research::Assignment::NumSequenceVars ( ) const
inline

Definition at line 4956 of file constraint_solver.h.

◆ Objective()

IntVar* operations_research::Assignment::Objective ( ) const

◆ ObjectiveBound()

bool operations_research::Assignment::ObjectiveBound ( ) const

◆ ObjectiveMax()

int64 operations_research::Assignment::ObjectiveMax ( ) const

◆ ObjectiveMin()

int64 operations_research::Assignment::ObjectiveMin ( ) const

◆ ObjectiveValue()

int64 operations_research::Assignment::ObjectiveValue ( ) const

◆ operator!=()

bool operations_research::Assignment::operator!= ( const Assignment assignment) const
inline

Definition at line 5105 of file constraint_solver.h.

◆ operator==()

bool operations_research::Assignment::operator== ( const Assignment assignment) const
inline

Definition at line 5099 of file constraint_solver.h.

◆ PerformedMax()

int64 operations_research::Assignment::PerformedMax ( const IntervalVar *const  var) const

◆ PerformedMin()

int64 operations_research::Assignment::PerformedMin ( const IntervalVar *const  var) const

◆ PerformedValue()

int64 operations_research::Assignment::PerformedValue ( const IntervalVar *const  var) const

◆ 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.

◆ Restore()

void operations_research::Assignment::Restore ( )

◆ Save() [1/3]

bool operations_research::Assignment::Save ( const std::string &  filename) const

Saves the assignment to a file.

◆ Save() [2/3]

bool operations_research::Assignment::Save ( File *  file) const

◆ Save() [3/3]

void operations_research::Assignment::Save ( AssignmentProto *const  assignment_proto) const

◆ SequenceVarContainer()

const SequenceContainer& operations_research::Assignment::SequenceVarContainer ( ) const
inline

Definition at line 5093 of file constraint_solver.h.

◆ 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.

◆ SetBackwardSequence()

void operations_research::Assignment::SetBackwardSequence ( const SequenceVar *const  var,
const std::vector< int > &  backward_sequence 
)

◆ SetDurationMax()

void operations_research::Assignment::SetDurationMax ( const IntervalVar *const  var,
int64  m 
)

◆ SetDurationMin()

void operations_research::Assignment::SetDurationMin ( const IntervalVar *const  var,
int64  m 
)

◆ SetDurationRange()

void operations_research::Assignment::SetDurationRange ( const IntervalVar *const  var,
int64  mi,
int64  ma 
)

◆ SetDurationValue()

void operations_research::Assignment::SetDurationValue ( const IntervalVar *const  var,
int64  value 
)

◆ SetEndMax()

void operations_research::Assignment::SetEndMax ( const IntervalVar *const  var,
int64  m 
)

◆ SetEndMin()

void operations_research::Assignment::SetEndMin ( const IntervalVar *const  var,
int64  m 
)

◆ SetEndRange()

void operations_research::Assignment::SetEndRange ( const IntervalVar *const  var,
int64  mi,
int64  ma 
)

◆ SetEndValue()

void operations_research::Assignment::SetEndValue ( const IntervalVar *const  var,
int64  value 
)

◆ SetForwardSequence()

void operations_research::Assignment::SetForwardSequence ( const SequenceVar *const  var,
const std::vector< int > &  forward_sequence 
)

◆ SetMax()

void operations_research::Assignment::SetMax ( const IntVar *const  var,
int64  m 
)

◆ SetMin()

void operations_research::Assignment::SetMin ( const IntVar *const  var,
int64  m 
)

◆ SetObjectiveMax()

void operations_research::Assignment::SetObjectiveMax ( int64  m)

◆ SetObjectiveMin()

void operations_research::Assignment::SetObjectiveMin ( int64  m)

◆ SetObjectiveRange()

void operations_research::Assignment::SetObjectiveRange ( int64  l,
int64  u 
)

◆ SetObjectiveValue()

void operations_research::Assignment::SetObjectiveValue ( int64  value)

◆ SetPerformedMax()

void operations_research::Assignment::SetPerformedMax ( const IntervalVar *const  var,
int64  m 
)

◆ SetPerformedMin()

void operations_research::Assignment::SetPerformedMin ( const IntervalVar *const  var,
int64  m 
)

◆ SetPerformedRange()

void operations_research::Assignment::SetPerformedRange ( const IntervalVar *const  var,
int64  mi,
int64  ma 
)

◆ SetPerformedValue()

void operations_research::Assignment::SetPerformedValue ( const IntervalVar *const  var,
int64  value 
)

◆ SetRange()

void operations_research::Assignment::SetRange ( const IntVar *const  var,
int64  l,
int64  u 
)

◆ SetSequence()

void operations_research::Assignment::SetSequence ( const SequenceVar *const  var,
const std::vector< int > &  forward_sequence,
const std::vector< int > &  backward_sequence,
const std::vector< int > &  unperformed 
)

◆ SetStartMax()

void operations_research::Assignment::SetStartMax ( const IntervalVar *const  var,
int64  m 
)

◆ SetStartMin()

void operations_research::Assignment::SetStartMin ( const IntervalVar *const  var,
int64  m 
)

◆ SetStartRange()

void operations_research::Assignment::SetStartRange ( const IntervalVar *const  var,
int64  mi,
int64  ma 
)

◆ SetStartValue()

void operations_research::Assignment::SetStartValue ( const IntervalVar *const  var,
int64  value 
)

◆ SetUnperformed()

void operations_research::Assignment::SetUnperformed ( const SequenceVar *const  var,
const std::vector< int > &  unperformed 
)

◆ SetValue()

void operations_research::Assignment::SetValue ( const IntVar *const  var,
int64  value 
)

◆ Size()

int operations_research::Assignment::Size ( ) const
inline

Definition at line 4951 of file constraint_solver.h.

◆ solver()

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

Definition at line 3116 of file constraint_solver.h.

◆ StartMax()

int64 operations_research::Assignment::StartMax ( const IntervalVar *const  var) const

◆ StartMin()

int64 operations_research::Assignment::StartMin ( const IntervalVar *const  var) const

◆ StartValue()

int64 operations_research::Assignment::StartValue ( const IntervalVar *const  var) const

◆ Store()

void operations_research::Assignment::Store ( )

◆ 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.

◆ Unperformed()

const std::vector<int>& operations_research::Assignment::Unperformed ( const SequenceVar *const  var) const

◆ Value()

int64 operations_research::Assignment::Value ( const IntVar *const  var) const

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