C++ Reference

C++ Reference: Routing

constraint_solveri.h File Reference

Go to the source code of this file.

Classes

class  BaseIntExpr
 
class  SimpleRevFIFO< T >
 This class represent a reversible FIFO structure. More...
 
class  SimpleRevFIFO< T >::Iterator
 This iterator is not stable with respect to deletion. More...
 
class  RevImmutableMultiMap< K, V >
 Reversible Immutable MultiMap class. More...
 
class  RevSwitch
 A reversible switch that can switch once from false to true. More...
 
class  SmallRevBitSet
 This class represents a small reversible bitset (size <= 64). More...
 
class  RevBitSet
 This class represents a reversible bitset. More...
 
class  RevBitMatrix
 Matrix version of the RevBitSet class. More...
 
class  CallMethod0< T >
 Demon proxy to a method on the constraint with no arguments. More...
 
class  CallMethod1< T, P >
 Demon proxy to a method on the constraint with one argument. More...
 
class  CallMethod2< T, P, Q >
 Demon proxy to a method on the constraint with two arguments. More...
 
class  CallMethod3< T, P, Q, R >
 Demon proxy to a method on the constraint with three arguments. More...
 
class  DelayedCallMethod0< T >
 Low-priority demon proxy to a method on the constraint with no arguments. More...
 
class  DelayedCallMethod1< T, P >
 Low-priority demon proxy to a method on the constraint with one argument. More...
 
class  DelayedCallMethod2< T, P, Q >
 Low-priority demon proxy to a method on the constraint with two arguments. More...
 
class  LocalSearchOperator
 The base class for all local search operators. More...
 
class  VarLocalSearchOperator< V, Val, Handler >
 Base operator class for operators manipulating variables. More...
 
class  IntVarLocalSearchHandler
 
class  IntVarLocalSearchOperator
 Specialization of LocalSearchOperator built from an array of IntVars which specifies the scope of the operator. More...
 
class  SequenceVarLocalSearchHandler
 
class  SequenceVarLocalSearchOperator
 
class  BaseLns
 This is the base class for building an Lns operator. More...
 
class  ChangeValue
 Defines operators which change the value of variables; each neighbor corresponds to one modified variable. More...
 
class  PathOperator
 Base class of the local search operators dedicated to path modifications (a path is a set of nodes linked together by arcs). More...
 
struct  PathOperator::IterationParameters
 Set of parameters used to configure how the neighnorhood is traversed. More...
 
class  LocalSearchState
 
class  LocalSearchVariable
 
class  LocalSearchFilter
 Local Search Filters are used for fast neighbor pruning. More...
 
class  LocalSearchFilterManager
 Filter manager: when a move is made, filters are executed to decide whether the solution is feasible and compute parts of the new cost. More...
 
struct  LocalSearchFilterManager::FilterEvent
 
class  IntVarLocalSearchFilter
 
class  PropagationMonitor
 
class  LocalSearchMonitor
 
class  BooleanVar
 
class  SymmetryBreaker
 A symmetry breaker is an object that will visit a decision and create the 'symmetrical' decision in return. More...
 
class  SearchLog
 The base class of all search logs that periodically outputs information when the search is running. More...
 
class  ModelCache
 Implements a complete cache for model elements: expressions and constraints. More...
 
class  ArgumentHolder
 Argument Holder: useful when visiting a model. More...
 
class  ModelParser
 Model Parser. More...
 
class  ArrayWithOffset< T >
 
class  RevGrowingArray< T, C >
 This class is a reversible growing array. More...
 
class  RevIntSet< T >
 This is a special class to represent a 'residual' set of T. More...
 
class  RevPartialSequence
 --— RevPartialSequence --— More...
 
class  UnsortedNullableRevBitset
 This class represents a reversible bitset. More...
 
class  PathState
 
struct  PathState::ChainBounds
 
class  PathState::Chain
 
class  PathState::Chain::Iterator
 
class  PathState::ChainRange
 
class  PathState::ChainRange::Iterator
 
class  PathState::NodeRange
 
class  PathState::NodeRange::Iterator
 
class  UnaryDimensionChecker
 
struct  UnaryDimensionChecker::Interval
 

Namespaces

namespace  operations_research
 Collection of objects used to extend the Constraint Solver library.
 

Typedefs

typedef VarLocalSearchOperator< SequenceVar, std::vector< int >, SequenceVarLocalSearchHandler > SequenceVarLocalSearchOperatorTemplate
 

Enumerations

enum  VarTypes {
  UNSPECIFIED , DOMAIN_INT_VAR , BOOLEAN_VAR , CONST_VAR ,
  VAR_ADD_CST , VAR_TIMES_CST , CST_SUB_VAR , OPP_VAR ,
  TRACE_VAR
}
 This enum is used internally to do dynamic typing on subclasses of integer variables. More...
 

Functions

uint64_t Hash1 (uint64_t value)
 Hash functions. More...
 
uint64_t Hash1 (uint32_t value)
 
uint64_t Hash1 (int64_t value)
 
uint64_t Hash1 (int value)
 
uint64_t Hash1 (void *const ptr)
 
template<class T >
uint64_t Hash1 (const std::vector< T * > &ptrs)
 
uint64_t Hash1 (const std::vector< int64_t > &ptrs)
 
template<class T >
LocalSearchOperator * MakeLocalSearchOperator (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, std::function< int(int64_t)> start_empty_path_class)
 Operator Factories. More...
 
template<class T >
bool IsArrayConstant (const std::vector< T > &values, const T &value)
 
template<class T >
bool IsArrayBoolean (const std::vector< T > &values)
 
template<class T >
bool AreAllOnes (const std::vector< T > &values)
 
template<class T >
bool AreAllNull (const std::vector< T > &values)
 
template<class T >
bool AreAllGreaterOrEqual (const std::vector< T > &values, const T &value)
 
template<class T >
bool AreAllLessOrEqual (const std::vector< T > &values, const T &value)
 
template<class T >
bool AreAllPositive (const std::vector< T > &values)
 
template<class T >
bool AreAllNegative (const std::vector< T > &values)
 
template<class T >
bool AreAllStrictlyPositive (const std::vector< T > &values)
 
template<class T >
bool AreAllStrictlyNegative (const std::vector< T > &values)
 
template<class T >
bool IsIncreasingContiguous (const std::vector< T > &values)
 
template<class T >
bool IsIncreasing (const std::vector< T > &values)
 
template<class T >
bool IsArrayInRange (const std::vector< IntVar * > &vars, T range_min, T range_max)
 
bool AreAllBound (const std::vector< IntVar * > &vars)
 
bool AreAllBooleans (const std::vector< IntVar * > &vars)
 
template<class T >
bool AreAllBoundOrNull (const std::vector< IntVar * > &vars, const std::vector< T > &values)
 Returns true if all the variables are assigned to a single value, or if their corresponding value is null. More...
 
bool AreAllBoundTo (const std::vector< IntVar * > &vars, int64_t value)
 Returns true if all variables are assigned to 'value'. More...
 
int64_t MaxVarArray (const std::vector< IntVar * > &vars)
 
int64_t MinVarArray (const std::vector< IntVar * > &vars)
 
void FillValues (const std::vector< IntVar * > &vars, std::vector< int64_t > *const values)
 
int64_t PosIntDivUp (int64_t e, int64_t v)
 
int64_t PosIntDivDown (int64_t e, int64_t v)
 
std::vector< int64_t > ToInt64Vector (const std::vector< int > &input)
 
LocalSearchFilter * MakePathStateFilter (Solver *solver, std::unique_ptr< PathState > path_state, const std::vector< IntVar * > &nexts)
 
LocalSearchFilter * MakeUnaryDimensionFilter (Solver *solver, std::unique_ptr< UnaryDimensionChecker > checker, const std::string &dimension_name)
 
template<class T >
Demon * MakeConstraintDemon0 (Solver *const s, T *const ct, void(T::*method)(), const std::string &name)
 
template<class P >
std::string ParameterDebugString (P param)
 
template<class P >
std::string ParameterDebugString (P *param)
 Support limited to pointers to classes which define DebugString(). More...
 
template<class T , class P >
Demon * MakeConstraintDemon1 (Solver *const s, T *const ct, void(T::*method)(P), const std::string &name, P param1)
 
template<class T , class P , class Q >
Demon * MakeConstraintDemon2 (Solver *const s, T *const ct, void(T::*method)(P, Q), const std::string &name, P param1, Q param2)
 
template<class T , class P , class Q , class R >
Demon * MakeConstraintDemon3 (Solver *const s, T *const ct, void(T::*method)(P, Q, R), const std::string &name, P param1, Q param2, R param3)
 
template<class T >
Demon * MakeDelayedConstraintDemon0 (Solver *const s, T *const ct, void(T::*method)(), const std::string &name)
 
template<class T , class P >
Demon * MakeDelayedConstraintDemon1 (Solver *const s, T *const ct, void(T::*method)(P), const std::string &name, P param1)
 
template<class T , class P , class Q >
Demon * MakeDelayedConstraintDemon2 (Solver *const s, T *const ct, void(T::*method)(P, Q), const std::string &name, P param1, Q param2)