![]() |
Google OR-Tools v9.12
a fast and portable software suite for combinatorial optimization
|
#include <constraint_solver.h>
Public Types | |
typedef AssignmentContainer< IntVar, IntVarElement > | IntContainer |
typedef AssignmentContainer< IntervalVar, IntervalVarElement > | IntervalContainer |
typedef AssignmentContainer< SequenceVar, SequenceVarElement > | SequenceContainer |
Public Member Functions | |
Assignment (Solver *solver) | |
Assignment (const Assignment *copy) | |
--— Assignment --— | |
Assignment (const Assignment &)=delete | |
This type is neither copyable nor movable. | |
Assignment & | operator= (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 |
IntVar * | Objective () const |
IntVar * | ObjectiveFromIndex (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) |
IntVarElement * | Add (IntVar *var) |
void | Add (const std::vector< IntVar * > &vars) |
IntVarElement * | FastAdd (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) |
IntervalVarElement * | Add (IntervalVar *var) |
--— Interval Var --— | |
void | Add (const std::vector< IntervalVar * > &vars) |
IntervalVarElement * | FastAdd (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) |
SequenceVarElement * | Add (SequenceVar *var) |
--— Sequence Var --— | |
void | Add (const std::vector< SequenceVar * > &vars) |
SequenceVarElement * | FastAdd (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 IntContainer & | IntVarContainer () const |
IntContainer * | MutableIntVarContainer () |
const IntervalContainer & | IntervalVarContainer () const |
IntervalContainer * | MutableIntervalVarContainer () |
const SequenceContainer & | SequenceVarContainer () const |
SequenceContainer * | MutableSequenceVarContainer () |
bool | operator== (const Assignment &assignment) const |
bool | operator!= (const Assignment &assignment) const |
![]() | |
PropagationBaseObject (Solver *const s) | |
PropagationBaseObject (const PropagationBaseObject &)=delete | |
This type is neither copyable nor movable. | |
PropagationBaseObject & | operator= (const PropagationBaseObject &)=delete |
~PropagationBaseObject () override | |
std::string | DebugString () const override |
Solver * | solver () 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. | |
![]() | |
BaseObject () | |
BaseObject (const BaseObject &)=delete | |
This type is neither copyable nor movable. | |
BaseObject & | operator= (const BaseObject &)=delete |
virtual | ~BaseObject () |
An Assignment is a variable -> domains mapping, used to report solutions to the user.
Definition at line 5530 of file constraint_solver.h.
Definition at line 5532 of file constraint_solver.h.
typedef AssignmentContainer<IntervalVar, IntervalVarElement> operations_research::Assignment::IntervalContainer |
Definition at line 5534 of file constraint_solver.h.
typedef AssignmentContainer<SequenceVar, SequenceVarElement> operations_research::Assignment::SequenceContainer |
Definition at line 5536 of file constraint_solver.h.
|
explicit |
Definition at line 415 of file assignment.cc.
|
explicit |
--— Assignment --—
Definition at line 408 of file assignment.cc.
|
delete |
This type is neither copyable nor movable.
|
override |
Definition at line 416 of file assignment.cc.
void operations_research::Assignment::Activate | ( | const IntervalVar * | var | ) |
Definition at line 885 of file assignment.cc.
void operations_research::Assignment::Activate | ( | const IntVar * | var | ) |
Definition at line 873 of file assignment.cc.
void operations_research::Assignment::Activate | ( | const SequenceVar * | var | ) |
Definition at line 897 of file assignment.cc.
bool operations_research::Assignment::Activated | ( | const IntervalVar * | var | ) | const |
Definition at line 893 of file assignment.cc.
bool operations_research::Assignment::Activated | ( | const IntVar * | var | ) | const |
Definition at line 881 of file assignment.cc.
bool operations_research::Assignment::Activated | ( | const SequenceVar * | var | ) | const |
Definition at line 905 of file assignment.cc.
|
inline |
Definition at line 5724 of file constraint_solver.h.
|
inline |
Definition at line 5735 of file constraint_solver.h.
|
inline |
Definition at line 5722 of file constraint_solver.h.
|
inline |
Definition at line 5725 of file constraint_solver.h.
void operations_research::Assignment::Add | ( | const std::vector< IntervalVar * > & | vars | ) |
Definition at line 690 of file assignment.cc.
void operations_research::Assignment::Add | ( | const std::vector< IntVar * > & | vars | ) |
Definition at line 642 of file assignment.cc.
void operations_research::Assignment::Add | ( | const std::vector< SequenceVar * > & | vars | ) |
Definition at line 823 of file assignment.cc.
IntervalVarElement * operations_research::Assignment::Add | ( | IntervalVar * | var | ) |
--— Interval Var --—
Definition at line 686 of file assignment.cc.
IntVarElement * operations_research::Assignment::Add | ( | IntVar * | var | ) |
Definition at line 638 of file assignment.cc.
SequenceVarElement * operations_research::Assignment::Add | ( | SequenceVar * | var | ) |
--— Sequence Var --—
Definition at line 819 of file assignment.cc.
|
inline |
Definition at line 5577 of file constraint_solver.h.
|
inline |
Objective can only set once.
Definition at line 5578 of file constraint_solver.h.
|
inline |
Definition at line 5742 of file constraint_solver.h.
const std::vector< int > & operations_research::Assignment::BackwardSequence | ( | const SequenceVar * | var | ) | const |
Definition at line 838 of file assignment.cc.
bool operations_research::Assignment::Bound | ( | const IntVar * | var | ) | const |
Definition at line 664 of file assignment.cc.
void operations_research::Assignment::Clear | ( | ) |
Definition at line 418 of file assignment.cc.
|
inline |
Definition at line 5588 of file constraint_solver.h.
bool operations_research::Assignment::Contains | ( | const IntervalVar * | var | ) | const |
Definition at line 913 of file assignment.cc.
bool operations_research::Assignment::Contains | ( | const IntVar * | var | ) | const |
Definition at line 909 of file assignment.cc.
bool operations_research::Assignment::Contains | ( | const SequenceVar * | var | ) | const |
Definition at line 917 of file assignment.cc.
void operations_research::Assignment::Copy | ( | const Assignment * | assignment | ) |
Copies 'assignment' to the current assignment, clearing its previous content.
Definition at line 938 of file assignment.cc.
void operations_research::Assignment::CopyIntersection | ( | const Assignment * | assignment | ) |
Copies the intersection of the two assignments to the current assignment.
Definition at line 921 of file assignment.cc.
void operations_research::Assignment::Deactivate | ( | const IntervalVar * | var | ) |
Definition at line 889 of file assignment.cc.
void operations_research::Assignment::Deactivate | ( | const IntVar * | var | ) |
Definition at line 877 of file assignment.cc.
void operations_research::Assignment::Deactivate | ( | const SequenceVar * | var | ) |
Definition at line 901 of file assignment.cc.
|
inline |
Definition at line 5723 of file constraint_solver.h.
|
inline |
Definition at line 5730 of file constraint_solver.h.
|
overridevirtual |
Reimplemented from operations_research::BaseObject.
Definition at line 621 of file assignment.cc.
int64_t operations_research::Assignment::DurationMax | ( | const IntervalVar * | var | ) | const |
Definition at line 716 of file assignment.cc.
int64_t operations_research::Assignment::DurationMin | ( | const IntervalVar * | var | ) | const |
Definition at line 712 of file assignment.cc.
int64_t operations_research::Assignment::DurationValue | ( | const IntervalVar * | var | ) | const |
Definition at line 720 of file assignment.cc.
|
inline |
Definition at line 5550 of file constraint_solver.h.
int64_t operations_research::Assignment::EndMax | ( | const IntervalVar * | var | ) | const |
Definition at line 728 of file assignment.cc.
int64_t operations_research::Assignment::EndMin | ( | const IntervalVar * | var | ) | const |
Definition at line 724 of file assignment.cc.
int64_t operations_research::Assignment::EndValue | ( | const IntervalVar * | var | ) | const |
Definition at line 732 of file assignment.cc.
IntervalVarElement * operations_research::Assignment::FastAdd | ( | IntervalVar * | var | ) |
Adds without checking if variable has been previously added.
Definition at line 696 of file assignment.cc.
IntVarElement * operations_research::Assignment::FastAdd | ( | IntVar * | var | ) |
Adds without checking if variable has been previously added.
Definition at line 648 of file assignment.cc.
SequenceVarElement * operations_research::Assignment::FastAdd | ( | SequenceVar * | var | ) |
Adds without checking if the variable had been previously added.
Definition at line 829 of file assignment.cc.
const std::vector< int > & operations_research::Assignment::ForwardSequence | ( | const SequenceVar * | var | ) | const |
Definition at line 833 of file assignment.cc.
|
inline |
Definition at line 5595 of file constraint_solver.h.
|
inline |
Definition at line 5596 of file constraint_solver.h.
|
inline |
Definition at line 5761 of file constraint_solver.h.
|
inline |
Definition at line 5759 of file constraint_solver.h.
void operations_research::Assignment::Load | ( | const AssignmentProto & | assignment_proto | ) |
if !defined(SWIG)
Definition at line 527 of file assignment.cc.
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 481 of file assignment.cc.
bool operations_research::Assignment::Load | ( | File * | file | ) |
Definition at line 490 of file assignment.cc.
int64_t operations_research::Assignment::Max | ( | const IntVar * | var | ) | const |
Definition at line 656 of file assignment.cc.
int64_t operations_research::Assignment::Min | ( | const IntVar * | var | ) | const |
Definition at line 652 of file assignment.cc.
|
inline |
Definition at line 5764 of file constraint_solver.h.
|
inline |
Definition at line 5760 of file constraint_solver.h.
|
inline |
Definition at line 5770 of file constraint_solver.h.
|
inline |
Definition at line 5558 of file constraint_solver.h.
|
inline |
Definition at line 5557 of file constraint_solver.h.
|
inline |
Definition at line 5589 of file constraint_solver.h.
|
inline |
Definition at line 5559 of file constraint_solver.h.
|
inline |
Definition at line 5590 of file constraint_solver.h.
|
inline |
Definition at line 5602 of file constraint_solver.h.
|
inline |
Definition at line 5621 of file constraint_solver.h.
|
inline |
Definition at line 5591 of file constraint_solver.h.
|
inline |
Definition at line 5600 of file constraint_solver.h.
|
inline |
Definition at line 5614 of file constraint_solver.h.
|
inline |
Definition at line 5599 of file constraint_solver.h.
|
inline |
Definition at line 5611 of file constraint_solver.h.
|
inline |
Definition at line 5601 of file constraint_solver.h.
|
inline |
Definition at line 5617 of file constraint_solver.h.
|
inline |
Definition at line 5779 of file constraint_solver.h.
|
delete |
|
inline |
Definition at line 5773 of file constraint_solver.h.
int64_t operations_research::Assignment::PerformedMax | ( | const IntervalVar * | var | ) | const |
Definition at line 740 of file assignment.cc.
int64_t operations_research::Assignment::PerformedMin | ( | const IntervalVar * | var | ) | const |
Definition at line 736 of file assignment.cc.
int64_t operations_research::Assignment::PerformedValue | ( | const IntervalVar * | var | ) | const |
Definition at line 744 of file assignment.cc.
void operations_research::Assignment::Restore | ( | ) |
Definition at line 434 of file assignment.cc.
void operations_research::Assignment::Save | ( | AssignmentProto * | assignment_proto | ) | const |
Definition at line 588 of file assignment.cc.
bool operations_research::Assignment::Save | ( | const std::string & | filename | ) | const |
Saves the assignment to a file.
Definition at line 558 of file assignment.cc.
bool operations_research::Assignment::Save | ( | File * | file | ) | const |
Definition at line 567 of file assignment.cc.
|
inline |
Definition at line 5767 of file constraint_solver.h.
void operations_research::Assignment::SetBackwardSequence | ( | const SequenceVar * | var, |
const std::vector< int > & | backward_sequence ) |
Definition at line 862 of file assignment.cc.
void operations_research::Assignment::SetDurationMax | ( | const IntervalVar * | var, |
int64_t | m ) |
Definition at line 769 of file assignment.cc.
void operations_research::Assignment::SetDurationMin | ( | const IntervalVar * | var, |
int64_t | m ) |
Definition at line 765 of file assignment.cc.
void operations_research::Assignment::SetDurationRange | ( | const IntervalVar * | var, |
int64_t | mi, | ||
int64_t | ma ) |
Definition at line 773 of file assignment.cc.
void operations_research::Assignment::SetDurationValue | ( | const IntervalVar * | var, |
int64_t | value ) |
Definition at line 778 of file assignment.cc.
void operations_research::Assignment::SetEndMax | ( | const IntervalVar * | var, |
int64_t | m ) |
Definition at line 786 of file assignment.cc.
void operations_research::Assignment::SetEndMin | ( | const IntervalVar * | var, |
int64_t | m ) |
Definition at line 782 of file assignment.cc.
void operations_research::Assignment::SetEndRange | ( | const IntervalVar * | var, |
int64_t | mi, | ||
int64_t | ma ) |
Definition at line 790 of file assignment.cc.
void operations_research::Assignment::SetEndValue | ( | const IntervalVar * | var, |
int64_t | value ) |
Definition at line 795 of file assignment.cc.
void operations_research::Assignment::SetForwardSequence | ( | const SequenceVar * | var, |
const std::vector< int > & | forward_sequence ) |
Definition at line 856 of file assignment.cc.
void operations_research::Assignment::SetMax | ( | const IntVar * | var, |
int64_t | m ) |
Definition at line 672 of file assignment.cc.
void operations_research::Assignment::SetMin | ( | const IntVar * | var, |
int64_t | m ) |
Definition at line 668 of file assignment.cc.
|
inline |
Definition at line 5604 of file constraint_solver.h.
|
inline |
Definition at line 5630 of file constraint_solver.h.
|
inline |
Definition at line 5603 of file constraint_solver.h.
|
inline |
Definition at line 5625 of file constraint_solver.h.
|
inline |
Definition at line 5608 of file constraint_solver.h.
|
inline |
Definition at line 5640 of file constraint_solver.h.
|
inline |
Definition at line 5605 of file constraint_solver.h.
|
inline |
Definition at line 5635 of file constraint_solver.h.
void operations_research::Assignment::SetPerformedMax | ( | const IntervalVar * | var, |
int64_t | m ) |
Definition at line 803 of file assignment.cc.
void operations_research::Assignment::SetPerformedMin | ( | const IntervalVar * | var, |
int64_t | m ) |
Definition at line 799 of file assignment.cc.
void operations_research::Assignment::SetPerformedRange | ( | const IntervalVar * | var, |
int64_t | mi, | ||
int64_t | ma ) |
Definition at line 807 of file assignment.cc.
void operations_research::Assignment::SetPerformedValue | ( | const IntervalVar * | var, |
int64_t | value ) |
Definition at line 812 of file assignment.cc.
void operations_research::Assignment::SetRange | ( | const IntVar * | var, |
int64_t | l, | ||
int64_t | u ) |
Definition at line 676 of file assignment.cc.
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 ) |
Definition at line 848 of file assignment.cc.
void operations_research::Assignment::SetStartMax | ( | const IntervalVar * | var, |
int64_t | m ) |
Definition at line 752 of file assignment.cc.
void operations_research::Assignment::SetStartMin | ( | const IntervalVar * | var, |
int64_t | m ) |
Definition at line 748 of file assignment.cc.
void operations_research::Assignment::SetStartRange | ( | const IntervalVar * | var, |
int64_t | mi, | ||
int64_t | ma ) |
Definition at line 756 of file assignment.cc.
void operations_research::Assignment::SetStartValue | ( | const IntervalVar * | var, |
int64_t | value ) |
Definition at line 761 of file assignment.cc.
void operations_research::Assignment::SetUnperformed | ( | const SequenceVar * | var, |
const std::vector< int > & | unperformed ) |
Definition at line 868 of file assignment.cc.
void operations_research::Assignment::SetValue | ( | const IntVar * | var, |
int64_t | value ) |
Definition at line 680 of file assignment.cc.
|
inline |
Definition at line 5554 of file constraint_solver.h.
int64_t operations_research::Assignment::StartMax | ( | const IntervalVar * | var | ) | const |
Definition at line 704 of file assignment.cc.
int64_t operations_research::Assignment::StartMin | ( | const IntervalVar * | var | ) | const |
Definition at line 700 of file assignment.cc.
int64_t operations_research::Assignment::StartValue | ( | const IntervalVar * | var | ) | const |
Definition at line 708 of file assignment.cc.
void operations_research::Assignment::Store | ( | ) |
Definition at line 425 of file assignment.cc.
const std::vector< int > & operations_research::Assignment::Unperformed | ( | const SequenceVar * | var | ) | const |
Definition at line 843 of file assignment.cc.
int64_t operations_research::Assignment::Value | ( | const IntVar * | var | ) | const |
Definition at line 660 of file assignment.cc.