Google OR-Tools: operations_research::Assignment Class Reference

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

Definition at line 5559 of file constraint_solver.h.

#include <constraint_solver.h>

operations_research::PropagationBaseObject operations_research::BaseObject

Public Member Functions

 Assignment (Solver *solver)
 Assignment (const Assignment *copy)
 Assignment (const Assignment &)=delete
Assignmentoperator= (const Assignment &)=delete
 ~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)
bool Load (File *file)
void Load (const AssignmentProto &assignment_proto)
 if !defined(SWIG)
bool Save (const std::string &filename) const
 Saves the assignment to a file.
bool Save (File *file) const
void Save (AssignmentProto *assignment_proto) const
void AddObjective (IntVar *const v)
void AddObjectives (const std::vector< IntVar * > &vars)
void ClearObjective ()
int NumObjectives () const
IntVarObjective () const
IntVarObjectiveFromIndex (int index) const
bool HasObjective () const
bool HasObjectiveFromIndex (int index) const
int64_t ObjectiveMin () const
int64_t ObjectiveMax () const
int64_t ObjectiveValue () const
bool ObjectiveBound () const
void SetObjectiveMin (int64_t m)
void SetObjectiveMax (int64_t m)
void SetObjectiveValue (int64_t value)
void SetObjectiveRange (int64_t l, int64_t u)
int64_t ObjectiveMinFromIndex (int index) const
int64_t ObjectiveMaxFromIndex (int index) const
int64_t ObjectiveValueFromIndex (int index) const
bool ObjectiveBoundFromIndex (int index) const
void SetObjectiveMinFromIndex (int index, int64_t m)
void SetObjectiveMaxFromIndex (int index, int64_t m)
void SetObjectiveValueFromIndex (int index, int64_t value)
void SetObjectiveRangeFromIndex (int index, int64_t l, int64_t u)
IntVarElementAdd (IntVar *var)
void Add (const std::vector< IntVar * > &vars)
IntVarElementFastAdd (IntVar *var)
 Adds without checking if variable has been previously added.
int64_t Min (const IntVar *var) const
int64_t Max (const IntVar *var) const
int64_t Value (const IntVar *var) const
bool Bound (const IntVar *var) const
void SetMin (const IntVar *var, int64_t m)
void SetMax (const IntVar *var, int64_t m)
void SetRange (const IntVar *var, int64_t l, int64_t u)
void SetValue (const IntVar *var, int64_t value)
IntervalVarElementAdd (IntervalVar *var)
void Add (const std::vector< IntervalVar * > &vars)
IntervalVarElementFastAdd (IntervalVar *var)
 Adds without checking if variable has been previously added.
int64_t StartMin (const IntervalVar *var) const
int64_t StartMax (const IntervalVar *var) const
int64_t StartValue (const IntervalVar *var) const
int64_t DurationMin (const IntervalVar *var) const
int64_t DurationMax (const IntervalVar *var) const
int64_t DurationValue (const IntervalVar *var) const
int64_t EndMin (const IntervalVar *var) const
int64_t EndMax (const IntervalVar *var) const
int64_t EndValue (const IntervalVar *var) const
int64_t PerformedMin (const IntervalVar *var) const
int64_t PerformedMax (const IntervalVar *var) const
int64_t PerformedValue (const IntervalVar *var) const
void SetStartMin (const IntervalVar *var, int64_t m)
void SetStartMax (const IntervalVar *var, int64_t m)
void SetStartRange (const IntervalVar *var, int64_t mi, int64_t ma)
void SetStartValue (const IntervalVar *var, int64_t value)
void SetDurationMin (const IntervalVar *var, int64_t m)
void SetDurationMax (const IntervalVar *var, int64_t m)
void SetDurationRange (const IntervalVar *var, int64_t mi, int64_t ma)
void SetDurationValue (const IntervalVar *var, int64_t value)
void SetEndMin (const IntervalVar *var, int64_t m)
void SetEndMax (const IntervalVar *var, int64_t m)
void SetEndRange (const IntervalVar *var, int64_t mi, int64_t ma)
void SetEndValue (const IntervalVar *var, int64_t value)
void SetPerformedMin (const IntervalVar *var, int64_t m)
void SetPerformedMax (const IntervalVar *var, int64_t m)
void SetPerformedRange (const IntervalVar *var, int64_t mi, int64_t ma)
void SetPerformedValue (const IntervalVar *var, int64_t value)
SequenceVarElementAdd (SequenceVar *var)
void Add (const std::vector< SequenceVar * > &vars)
SequenceVarElementFastAdd (SequenceVar *var)
 Adds without checking if the variable had been previously added.
const std::vector< int > & ForwardSequence (const SequenceVar *var) const
const std::vector< int > & BackwardSequence (const SequenceVar *var) const
const std::vector< int > & Unperformed (const SequenceVar *var) const
void SetSequence (const SequenceVar *var, const std::vector< int > &forward_sequence, const std::vector< int > &backward_sequence, const std::vector< int > &unperformed)
void SetForwardSequence (const SequenceVar *var, const std::vector< int > &forward_sequence)
void SetBackwardSequence (const SequenceVar *var, const std::vector< int > &backward_sequence)
void SetUnperformed (const SequenceVar *var, const std::vector< int > &unperformed)
void Activate (const IntVar *var)
void Deactivate (const IntVar *var)
bool Activated (const IntVar *var) const
void Activate (const IntervalVar *var)
void Deactivate (const IntervalVar *var)
bool Activated (const IntervalVar *var) const
void Activate (const SequenceVar *var)
void Deactivate (const SequenceVar *var)
bool Activated (const SequenceVar *var) const
void ActivateObjective ()
void DeactivateObjective ()
bool ActivatedObjective () const
void ActivateObjectiveFromIndex (int index)
void DeactivateObjectiveFromIndex (int index)
bool ActivatedObjectiveFromIndex (int index) const
std::string DebugString () const override
bool AreAllElementsBound () const
bool Contains (const IntVar *var) const
bool Contains (const IntervalVar *var) const
bool Contains (const SequenceVar *var) const
void CopyIntersection (const Assignment *assignment)
void Copy (const Assignment *assignment)
const IntContainerIntVarContainer () const
IntContainerMutableIntVarContainer ()
const IntervalContainerIntervalVarContainer () const
IntervalContainerMutableIntervalVarContainer ()
const SequenceContainerSequenceVarContainer () const
SequenceContainerMutableSequenceVarContainer ()
bool operator== (const Assignment &assignment) const
bool operator!= (const Assignment &assignment) const
Public Member Functions inherited from operations_research::PropagationBaseObject
 PropagationBaseObject (Solver *const s)
 PropagationBaseObject (const PropagationBaseObject &)=delete
PropagationBaseObjectoperator= (const PropagationBaseObject &)=delete
 ~PropagationBaseObject () override
std::string DebugString () const override
Solversolver () const
void FreezeQueue ()
void UnfreezeQueue ()
void EnqueueDelayedDemon (Demon *const d)
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.
void set_variable_to_clean_on_fail (IntVar *v)
 Shortcut for variable cleaner.
virtual std::string name () const
 Object naming.
void set_name (absl::string_view name)
bool HasName () const
 Returns whether the object has been named or not.
virtual std::string BaseName () const
 Returns a base name for automatic naming.
Public Member Functions inherited from operations_research::BaseObject
 BaseObject ()
 BaseObject (const BaseObject &)=delete
BaseObjectoperator= (const BaseObject &)=delete
virtual ~BaseObject ()=default

◆ IntContainer

◆ IntervalContainer

◆ SequenceContainer

operations_research::Assignment::Assignment ( Solver * solver)
explicit

◆ Assignment() [2/3]

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

◆ Assignment() [3/3]

operations_research::Assignment::Assignment ( const Assignment & )
delete

◆ ~Assignment()

operations_research::Assignment::~Assignment ( )
override

◆ Activate() [1/3]

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

◆ Activate() [2/3]

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

◆ Activate() [3/3]

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

◆ Activated() [1/3]

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

◆ Activated() [2/3]

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

◆ Activated() [3/3]

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

◆ ActivatedObjective()

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

◆ ActivatedObjectiveFromIndex()

bool operations_research::Assignment::ActivatedObjectiveFromIndex ( int index) const
inline

◆ ActivateObjective()

void operations_research::Assignment::ActivateObjective ( )
inline

◆ ActivateObjectiveFromIndex()

void operations_research::Assignment::ActivateObjectiveFromIndex ( int index)
inline

◆ Add() [1/6]

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

◆ Add() [2/6]

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

◆ Add() [3/6]

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

◆ Add() [4/6]

◆ Add() [5/6]

◆ Add() [6/6]

◆ AddObjective()

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

◆ AddObjectives()

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

◆ AreAllElementsBound()

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

◆ BackwardSequence()

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

◆ Bound()

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

◆ Clear()

void operations_research::Assignment::Clear ( )

◆ ClearObjective()

void operations_research::Assignment::ClearObjective ( )
inline

◆ Contains() [1/3]

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

◆ Contains() [2/3]

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

◆ Contains() [3/3]

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

◆ Copy()

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

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

Definition at line 939 of file assignment.cc.

◆ CopyIntersection()

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

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

Definition at line 922 of file assignment.cc.

◆ Deactivate() [1/3]

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

◆ Deactivate() [2/3]

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

◆ Deactivate() [3/3]

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

◆ DeactivateObjective()

void operations_research::Assignment::DeactivateObjective ( )
inline

◆ DeactivateObjectiveFromIndex()

void operations_research::Assignment::DeactivateObjectiveFromIndex ( int index)
inline

◆ DebugString()

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

◆ DurationMax()

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

◆ DurationMin()

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

◆ DurationValue()

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

◆ Empty()

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

◆ EndMax()

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

◆ EndMin()

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

◆ EndValue()

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

◆ FastAdd() [1/3]

Adds without checking if variable has been previously added.

Definition at line 697 of file assignment.cc.

◆ FastAdd() [2/3]

Adds without checking if variable has been previously added.

Definition at line 649 of file assignment.cc.

◆ FastAdd() [3/3]

Adds without checking if the variable had been previously added.

Definition at line 830 of file assignment.cc.

◆ ForwardSequence()

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

◆ HasObjective()

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

◆ HasObjectiveFromIndex()

bool operations_research::Assignment::HasObjectiveFromIndex ( int index) const
inline

◆ IntervalVarContainer()

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

◆ IntVarContainer()

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

◆ Load() [1/3]

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

◆ Load() [2/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).

Definition at line 482 of file assignment.cc.

◆ Load() [3/3]

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

◆ Max()

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

◆ Min()

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

◆ MutableIntervalVarContainer()

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

◆ MutableIntVarContainer()

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

◆ MutableSequenceVarContainer()

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

◆ NumIntervalVars()

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

◆ NumIntVars()

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

◆ NumObjectives()

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

◆ NumSequenceVars()

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

◆ Objective()

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

◆ ObjectiveBound()

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

◆ ObjectiveBoundFromIndex()

bool operations_research::Assignment::ObjectiveBoundFromIndex ( int index) const
inline

◆ ObjectiveFromIndex()

IntVar * operations_research::Assignment::ObjectiveFromIndex ( int index) const
inline

◆ ObjectiveMax()

int64_t operations_research::Assignment::ObjectiveMax ( ) const
inline

◆ ObjectiveMaxFromIndex()

int64_t operations_research::Assignment::ObjectiveMaxFromIndex ( int index) const
inline

◆ ObjectiveMin()

int64_t operations_research::Assignment::ObjectiveMin ( ) const
inline

◆ ObjectiveMinFromIndex()

int64_t operations_research::Assignment::ObjectiveMinFromIndex ( int index) const
inline

◆ ObjectiveValue()

int64_t operations_research::Assignment::ObjectiveValue ( ) const
inline

◆ ObjectiveValueFromIndex()

int64_t operations_research::Assignment::ObjectiveValueFromIndex ( int index) const
inline

◆ operator!=()

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

◆ operator=()

Assignment & operations_research::Assignment::operator= ( const Assignment & )
delete

◆ operator==()

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

◆ PerformedMax()

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

◆ PerformedMin()

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

◆ PerformedValue()

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

◆ Restore()

void operations_research::Assignment::Restore ( )

◆ Save() [1/3]

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

◆ Save() [2/3]

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

◆ Save() [3/3]

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

◆ SequenceVarContainer()

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

◆ SetBackwardSequence()

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

◆ SetDurationMax()

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

◆ SetDurationMin()

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

◆ SetDurationRange()

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

◆ SetDurationValue()

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

◆ SetEndMax()

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

◆ SetEndMin()

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

◆ SetEndRange()

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

◆ SetEndValue()

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

◆ SetForwardSequence()

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

◆ SetMax()

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

◆ SetMin()

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

◆ SetObjectiveMax()

void operations_research::Assignment::SetObjectiveMax ( int64_t m)
inline

◆ SetObjectiveMaxFromIndex()

void operations_research::Assignment::SetObjectiveMaxFromIndex ( int index,
int64_t m )
inline

◆ SetObjectiveMin()

void operations_research::Assignment::SetObjectiveMin ( int64_t m)
inline

◆ SetObjectiveMinFromIndex()

void operations_research::Assignment::SetObjectiveMinFromIndex ( int index,
int64_t m )
inline

◆ SetObjectiveRange()

void operations_research::Assignment::SetObjectiveRange ( int64_t l,
int64_t u )
inline

◆ SetObjectiveRangeFromIndex()

void operations_research::Assignment::SetObjectiveRangeFromIndex ( int index,
int64_t l,
int64_t u )
inline

◆ SetObjectiveValue()

void operations_research::Assignment::SetObjectiveValue ( int64_t value)
inline

◆ SetObjectiveValueFromIndex()

void operations_research::Assignment::SetObjectiveValueFromIndex ( int index,
int64_t value )
inline

◆ SetPerformedMax()

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

◆ SetPerformedMin()

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

◆ SetPerformedRange()

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

◆ SetPerformedValue()

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

◆ SetRange()

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

◆ SetSequence()

void operations_research::Assignment::SetSequence ( const SequenceVar * 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 * var,
int64_t m )

◆ SetStartMin()

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

◆ SetStartRange()

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

◆ SetStartValue()

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

◆ SetUnperformed()

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

◆ SetValue()

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

◆ Size()

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

◆ StartMax()

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

◆ StartMin()

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

◆ StartValue()

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

◆ Store()

void operations_research::Assignment::Store ( )

◆ Unperformed()

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

◆ Value()

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

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