Public Types | Public Member Functions | List of all members
operations_research::Assignment Class Reference

--— Assignment --— More...

#include <constraint_solver.h>

Inheritance diagram for operations_research::Assignment:
Inheritance graph
[legend]
Collaboration diagram for operations_research::Assignment:
Collaboration graph
[legend]

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)
 
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)
 This method sets a callback that will be called if a failure happens during the propagation of the queue. More...
 
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...
 

Detailed Description

--— Assignment --—

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

Definition at line 5005 of file constraint_solver.h.

Member Typedef Documentation

◆ IntContainer

Definition at line 5007 of file constraint_solver.h.

◆ IntervalContainer

Definition at line 5009 of file constraint_solver.h.

◆ SequenceContainer

Definition at line 5011 of file constraint_solver.h.

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 5140 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 5046 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 5018 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 3173 of file constraint_solver.h.

◆ EnqueueVar()

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

Definition at line 3174 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 3164 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 5048 of file constraint_solver.h.

◆ IntervalVarContainer()

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

Definition at line 5158 of file constraint_solver.h.

◆ IntVarContainer()

const IntContainer& operations_research::Assignment::IntVarContainer ( ) const
inline
Todo:
(user): Add element iterators to avoid exposing container class.

Definition at line 5156 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)

◆ 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 5161 of file constraint_solver.h.

◆ MutableIntVarContainer()

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

Definition at line 5157 of file constraint_solver.h.

◆ MutableSequenceVarContainer()

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

Definition at line 5167 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 5026 of file constraint_solver.h.

◆ NumIntVars()

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

Definition at line 5025 of file constraint_solver.h.

◆ NumSequenceVars()

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

Definition at line 5027 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 5176 of file constraint_solver.h.

◆ operator==()

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

Definition at line 5170 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 3187 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 5164 of file constraint_solver.h.

◆ set_action_on_fail()

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

This method sets a callback that will be called if a failure happens during the propagation of the queue.

Definition at line 3181 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 3190 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 5022 of file constraint_solver.h.

◆ solver()

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

Definition at line 3161 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 3168 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: