The vehicle routing library lets one model and solve generic vehicle routing problems ranging from the Traveling Salesman Problem to more complex problems such as the Capacitated Vehicle Routing Problem with Time Windows. More...
Classes | |
| class | ArgumentHolder |
| Argument Holder: useful when visiting a model. More... | |
| class | ArrayWithOffset |
| class | Assignment |
| An Assignment is a variable -> domains mapping, used to report solutions to the user. More... | |
| class | AssignmentContainer |
| class | AssignmentElement |
| class | BaseIntExpr |
| This is the base class for all expressions that are not variables. More... | |
| class | BaseLns |
| This is the base class for building an Lns operator. More... | |
| class | BaseObject |
| A BaseObject is the root of all reversibly allocated objects. More... | |
| class | BasePathFilter |
| Generic path-based filter class. More... | |
| class | BooleanVar |
| class | CallMethod0 |
| Demon proxy to a method on the constraint with no arguments. More... | |
| class | CallMethod1 |
| Demon proxy to a method on the constraint with one argument. More... | |
| class | CallMethod2 |
| Demon proxy to a method on the constraint with two arguments. More... | |
| class | CallMethod3 |
| Demon proxy to a method on the constraint with three arguments. More... | |
| class | CastConstraint |
| Cast constraints are special channeling constraints designed to keep a variable in sync with an expression. More... | |
| class | ChangeValue |
| Defines operators which change the value of variables; each neighbor corresponds to one modified variable. More... | |
| class | CheapestAdditionFilteredDecisionBuilder |
| Filtered-base decision builder based on the addition heuristic, extending a path from its start node with the cheapest arc. More... | |
| class | CheapestInsertionFilteredDecisionBuilder |
| class | ChristofidesFilteredDecisionBuilder |
| Christofides addition heuristic. More... | |
| class | ComparatorCheapestAdditionFilteredDecisionBuilder |
| A CheapestAdditionFilteredDecisionBuilder where the notion of 'cheapest arc' comes from an arc comparator. More... | |
| class | Constraint |
| A constraint is the main modeling object. More... | |
| class | CPFeasibilityFilter |
| This filter accepts deltas for which the assignment satisfies the constraints of the Solver. More... | |
| class | Decision |
| A Decision represents a choice point in the search tree. More... | |
| class | DecisionBuilder |
| A DecisionBuilder is responsible for creating the search tree. More... | |
| class | DecisionVisitor |
| A DecisionVisitor is used to inspect a decision. More... | |
| struct | DefaultPhaseParameters |
| This struct holds all parameters for the default search. More... | |
| class | DelayedCallMethod0 |
| Low-priority demon proxy to a method on the constraint with no arguments. More... | |
| class | DelayedCallMethod1 |
| Low-priority demon proxy to a method on the constraint with one argument. More... | |
| class | DelayedCallMethod2 |
| Low-priority demon proxy to a method on the constraint with two arguments. More... | |
| class | Demon |
| A Demon is the base element of a propagation queue. More... | |
| class | DimensionCumulOptimizerCore |
| class | DisjunctiveConstraint |
| class | DisjunctivePropagator |
| This class acts like a CP propagator: it takes a set of tasks given by their start/duration/end features, and reduces the range of possible values. More... | |
| class | EvaluatorCheapestAdditionFilteredDecisionBuilder |
| A CheapestAdditionFilteredDecisionBuilder where the notion of 'cheapest arc' comes from an arc evaluator. More... | |
| class | ExchangeSubtrip |
| class | FirstSolutionStrategy |
| class | GlobalCheapestInsertionFilteredDecisionBuilder |
| Filter-based decision builder which builds a solution by inserting nodes at their cheapest position on any route; potentially several routes can be built in parallel. More... | |
| class | GlobalDimensionCumulOptimizer |
| class | GlobalVehicleBreaksConstraint |
| GlobalVehicleBreaksConstraint ensures breaks constraints are enforced on all vehicles in the dimension passed to its constructor. More... | |
| class | IndexPairSwapActiveOperator |
| Operator which inserts inactive nodes into a path and makes a pair of active nodes inactive. More... | |
| class | InitAndGetValues |
| Utility class to encapsulate an IntVarIterator and use it in a range-based loop. More... | |
| class | IntervalVar |
| Interval variables are often used in scheduling. More... | |
| class | IntervalVarElement |
| class | IntExpr |
| The class IntExpr is the base of all integer expressions in constraint programming. More... | |
| class | IntVar |
| The class IntVar is a subset of IntExpr. More... | |
| class | IntVarElement |
| class | IntVarFilteredDecisionBuilder |
| Decision builders building a solution using local search filters to evaluate its feasibility. More... | |
| class | IntVarIterator |
| The class Iterator has two direct subclasses. More... | |
| class | IntVarLocalSearchFilter |
| class | IntVarLocalSearchHandler |
| Base operator class for operators manipulating IntVars. More... | |
| class | IntVarLocalSearchOperator |
| Specialization of LocalSearchOperator built from an array of IntVars which specifies the scope of the operator. More... | |
| class | LightPairRelocateOperator |
| class | LocalCheapestInsertionFilteredDecisionBuilder |
| Filter-base decision builder which builds a solution by inserting nodes at their cheapest position. More... | |
| class | LocalDimensionCumulOptimizer |
| 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... | |
| class | LocalSearchMetaheuristic |
| class | LocalSearchMonitor |
| class | LocalSearchOperator |
| The base class for all local search operators. More... | |
| class | MakePairActiveOperator |
| Pair-based neighborhood operators, designed to move nodes by pairs (pairs are static and given). More... | |
| class | MakePairInactiveOperator |
| Operator which makes pairs of active nodes inactive. More... | |
| class | MakeRelocateNeighborsOperator |
| Relocate neighborhood which moves chains of neighbors. More... | |
| class | ModelCache |
| Implements a complete cache for model elements: expressions and constraints. More... | |
| class | ModelParser |
| Model Parser. More... | |
| class | ModelVisitor |
| Model visitor. More... | |
| class | NumericalRev |
| Subclass of Rev<T> which adds numerical operations. More... | |
| class | NumericalRevArray |
| Subclass of RevArray<T> which adds numerical operations. More... | |
| class | OptimizeVar |
| This class encapsulates an objective. More... | |
| class | Pack |
| class | PairExchangeOperator |
| Operator which exchanges the position of two pairs; for both pairs the first node of the pair must be before the second node on the same path. More... | |
| class | PairExchangeRelocateOperator |
| Operator which exchanges the paths of two pairs (path have to be different). More... | |
| class | PairNodeSwapActiveOperator |
| Operator which inserts pairs of inactive nodes into a path and makes an active node inactive. More... | |
| class | PairRelocateOperator |
| Operator which moves a pair of nodes to another position where the first node of the pair must be before the second node on the same path. More... | |
| class | ParallelSavingsFilteredDecisionBuilder |
| 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... | |
| class | PathWithPreviousNodesOperator |
| Simple PathOperator wrapper that also stores the current previous nodes, and is thus able to provide the "Prev" and "IsPathStart" functions. More... | |
| class | PropagationBaseObject |
| NOLINT. More... | |
| class | PropagationMonitor |
| class | RegularLimit |
| Usual limit based on wall_time, number of explored branches and number of failures in the search tree. More... | |
| class | RelocateExpensiveChain |
| RelocateExpensiveChain. More... | |
| class | RelocateSubtrip |
| Tries to move subtrips after an insertion node. More... | |
| class | Rev |
| This class adds reversibility to a POD type. More... | |
| class | RevArray |
| Reversible array of POD types. More... | |
| class | RevBitMatrix |
| Matrix version of the RevBitSet class. More... | |
| class | RevBitSet |
| This class represents a reversible bitset. More... | |
| class | RevGrowingArray |
| This class is a reversible growing array. More... | |
| class | RevImmutableMultiMap |
| Reversible Immutable MultiMap class. More... | |
| class | RevIntSet |
| This is a special class to represent a 'residual' set of T. More... | |
| class | RevPartialSequence |
| --— RevPartialSequence --— More... | |
| class | RevSwitch |
| A reversible switch that can switch once from false to true. More... | |
| class | RoutingDimension |
| Dimensions represent quantities accumulated at nodes along the routes. More... | |
| class | RoutingFilteredDecisionBuilder |
| Filter-based decision builder dedicated to routing. More... | |
| class | RoutingIndexManager |
| Manager for any NodeIndex <-> variable index conversion. More... | |
| class | RoutingModel |
| class | RoutingModelParameters |
| class | RoutingModelVisitor |
| Routing model visitor. More... | |
| class | RoutingSearchParameters |
| class | RoutingSearchParameters_LocalSearchNeighborhoodOperators |
| class | SavingsFilteredDecisionBuilder |
| Filter-based decision builder which builds a solution by using Clarke & Wright's Savings heuristic. More... | |
| class | SearchLimit |
| Base class of all search limits. More... | |
| class | SearchLog |
| The base class of all search logs that periodically outputs information when the search is running. More... | |
| class | SearchMonitor |
| A search monitor is a simple set of callbacks to monitor all search events. More... | |
| class | SequenceVar |
| A sequence variable is a variable whose domain is a set of possible orderings of the interval variables. More... | |
| class | SequenceVarElement |
| The SequenceVarElement stores a partial representation of ranked interval variables in the underlying sequence variable. More... | |
| class | SequenceVarLocalSearchHandler |
| class | SequenceVarLocalSearchOperator |
| class | SequentialSavingsFilteredDecisionBuilder |
| class | SimpleBoundCosts |
| A structure meant to store soft bounds and associated violation constants. More... | |
| class | SimpleRevFIFO |
| This class represent a reversible FIFO structure. More... | |
| class | SmallRevBitSet |
| This class represents a small reversible bitset (size <= 64). More... | |
| class | SolutionCollector |
| This class is the root class of all solution collectors. More... | |
| class | SolutionPool |
| This class is used to manage a pool of solutions. More... | |
| class | Solver |
| Solver Class. More... | |
| class | SwapIndexPairOperator |
| Operator which iterates through each alternative of a set of pairs. More... | |
| class | SweepArranger |
| Class to arrange indices by by their distance and their angles from the depot. More... | |
| class | SymmetryBreaker |
| A symmetry breaker is an object that will visit a decision and create the 'symmetrical' decision in return. More... | |
| class | TypeIncompatibilityChecker |
| Checker for type incompatibilities. More... | |
| class | TypeRegulationsChecker |
| class | TypeRegulationsConstraint |
| The following constraint ensures that incompatibilities and requirements between types are respected. More... | |
| class | TypeRequirementChecker |
| Checker for type requirements. More... | |
| class | UnsortedNullableRevBitset |
| This class represents a reversible bitset. More... | |
| class | VarLocalSearchOperator |
| Base operator class for operators manipulating variables. More... | |
Typedefs | |
| typedef VarLocalSearchOperator< SequenceVar, std::vector< int >, SequenceVarLocalSearchHandler > | SequenceVarLocalSearchOperatorTemplate |
| typedef std::function< int64(int64)> | RoutingTransitCallback1 |
| typedef std::function< int64(int64, int64)> | RoutingTransitCallback2 |
| typedef std::pair< std::vector< int64 >, std::vector< int64 > > | RoutingIndexPair |
| typedef std::vector< RoutingIndexPair > | RoutingIndexPairs |
Functions | |
| std::ostream & | operator<< (std::ostream &out, const Solver *const s) |
| int64 | Zero () |
| NOLINT. More... | |
| int64 | One () |
| This method returns 1. More... | |
| std::ostream & | operator<< (std::ostream &out, const BaseObject *o) |
| std::ostream & | operator<< (std::ostream &out, const Assignment &assignment) |
| void | SetAssignmentFromAssignment (Assignment *target_assignment, const std::vector< IntVar * > &target_vars, const Assignment *source_assignment, const std::vector< IntVar * > &source_vars) |
| NOLINT. More... | |
| uint64 | Hash1 (uint64 value) |
| Hash functions. More... | |
| uint64 | Hash1 (uint32 value) |
| uint64 | Hash1 (int64 value) |
| uint64 | Hash1 (int value) |
| uint64 | Hash1 (void *const ptr) |
| template<class T > | |
| uint64 | Hash1 (const std::vector< T * > &ptrs) |
| uint64 | Hash1 (const std::vector< int64 > &ptrs) |
| template<class T > | |
| LocalSearchOperator * | MakeLocalSearchOperator (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, std::function< int(int64)> 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 value) |
| Returns true if all variables are assigned to 'value'. More... | |
| int64 | MaxVarArray (const std::vector< IntVar * > &vars) |
| int64 | MinVarArray (const std::vector< IntVar * > &vars) |
| void | FillValues (const std::vector< IntVar * > &vars, std::vector< int64 > *const values) |
| int64 | PosIntDivUp (int64 e, int64 v) |
| int64 | PosIntDivDown (int64 e, int64 v) |
| std::vector< int64 > | ToInt64Vector (const std::vector< int > &input) |
| void | AppendTasksFromPath (const std::vector< int64 > &path, const std::vector< int64 > &min_travels, const std::vector< int64 > &max_travels, const std::vector< int64 > &pre_travels, const std::vector< int64 > &post_travels, const RoutingDimension &dimension, DisjunctivePropagator::Tasks *tasks) |
| void | AppendTasksFromIntervals (const std::vector< IntervalVar * > &intervals, DisjunctivePropagator::Tasks *tasks) |
| void | FillPathEvaluation (const std::vector< int64 > &path, const RoutingModel::TransitCallback2 &evaluator, std::vector< int64 > *values) |
| DecisionBuilder * | MakeSetValuesFromTargets (Solver *solver, std::vector< IntVar * > variables, std::vector< int64 > targets) |
| A decision builder which tries to assign values to variables as close as possible to target values first. More... | |
| bool | SolveModelWithSat (const RoutingModel &model, const Assignment *initial_solution, Assignment *solution) |
| Attempts to solve the model using the cp-sat solver. More... | |
| IntVarLocalSearchFilter * | MakeNodeDisjunctionFilter (const RoutingModel &routing_model, std::function< void(int64)> objective_callback) |
| IntVarLocalSearchFilter * | MakeVehicleAmortizedCostFilter (const RoutingModel &routing_model, Solver::ObjectiveWatcher objective_callback) |
| IntVarLocalSearchFilter * | MakeTypeRegulationsFilter (const RoutingModel &routing_model) |
| std::vector< IntVarLocalSearchFilter * > | MakeCumulFilters (const RoutingDimension &dimension, Solver::ObjectiveWatcher objective_callback, bool filter_objective_cost) |
| IntVarLocalSearchFilter * | MakePathCumulFilter (const RoutingDimension &dimension, Solver::ObjectiveWatcher objective_callback, bool propagate_own_objective_value, bool filter_objective_cost) |
| IntVarLocalSearchFilter * | MakeGlobalLPCumulFilter (const RoutingDimension &dimension, Solver::ObjectiveWatcher objective_callback, bool filter_objective_cost) |
| IntVarLocalSearchFilter * | MakePickupDeliveryFilter (const RoutingModel &routing_model, const RoutingModel::IndexPairs &pairs, const std::vector< RoutingModel::PickupAndDeliveryPolicy > &vehicle_policies) |
| IntVarLocalSearchFilter * | MakeVehicleVarFilter (const RoutingModel &routing_model) |
| IntVarLocalSearchFilter * | MakeVehicleBreaksFilter (const RoutingModel &routing_model, const RoutingDimension &dimension) |
| IntVarLocalSearchFilter * | MakeCPFeasibilityFilter (const RoutingModel *routing_model) |
| RoutingModelParameters | BuildModelParametersFromFlags () |
| Builds routing search parameters from flags. More... | |
| RoutingSearchParameters | BuildSearchParametersFromFlags () |
| Builds routing search parameters from flags. More... | |
| RoutingModelParameters | DefaultRoutingModelParameters () |
| RoutingSearchParameters | DefaultRoutingSearchParameters () |
| std::string | FindErrorInRoutingSearchParameters (const RoutingSearchParameters &search_parameters) |
| Returns an empty std::string if the routing search parameters are valid, and a non-empty, human readable error description if they're not. More... | |
| DEFINE_INT_TYPE (RoutingNodeIndex, int) | |
| Defining common types used in the routing library outside the main RoutingModel class has several purposes: 1) It allows some small libraries to avoid a dependency on routing. More... | |
| DEFINE_INT_TYPE (RoutingCostClassIndex, int) | |
| DEFINE_INT_TYPE (RoutingDimensionIndex, int) | |
| DEFINE_INT_TYPE (RoutingDisjunctionIndex, int) | |
| DEFINE_INT_TYPE (RoutingVehicleClassIndex, int) | |
| bool | FirstSolutionStrategy_Value_IsValid (int value) |
| const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * | FirstSolutionStrategy_Value_descriptor () |
| template<typename T > | |
| const std::string & | FirstSolutionStrategy_Value_Name (T enum_t_value) |
| bool | FirstSolutionStrategy_Value_Parse (const std::string &name, FirstSolutionStrategy_Value *value) |
| bool | LocalSearchMetaheuristic_Value_IsValid (int value) |
| const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * | LocalSearchMetaheuristic_Value_descriptor () |
| template<typename T > | |
| const std::string & | LocalSearchMetaheuristic_Value_Name (T enum_t_value) |
| bool | LocalSearchMetaheuristic_Value_Parse (const std::string &name, LocalSearchMetaheuristic_Value *value) |
| 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) |
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from the Traveling Salesman Problem to more complex problems such as the Capacitated Vehicle Routing Problem with Time Windows.
The objective of a vehicle routing problem is to build routes covering a set of nodes minimizing the overall cost of the routes (usually proportional to the sum of the lengths of each segment of the routes) while respecting some problem-specific constraints (such as the length of a route). A route is equivalent to a path connecting nodes, starting/ending at specific starting/ending nodes.
The term "vehicle routing" is historical and the category of problems solved is not limited to the routing of vehicles: any problem involving finding routes visiting a given number of nodes optimally falls under this category of problems, such as finding the optimal sequence in a playlist. The literature around vehicle routing problems is extremely dense but one can find some basic introductions in the following links:
The vehicle routing library is a vertical layer above the constraint programming library (ortools/constraint_programming:cp). One has access to all underlying constrained variables of the vehicle routing model which can therefore be enriched by adding any constraint available in the constraint programming library.
There are two sets of variables available:
Code sample: Here is a simple example solving a traveling salesman problem given a cost function callback (returns the cost of a route segment):
Define a custom distance/cost function from an index to another; in this example just returns the sum of the indices:
int64 MyDistance(int64 from, int64 to) { return from + to; }
Create a routing model for a given problem size (int number of nodes) and number of routes (here, 1):
RoutingIndexManager manager(...number of nodes..., 1); RoutingModel routing(manager);
Set the cost function by registering an std::function<int64(int64, int64)> in the model and passing its index as the vehicle cost.
const int cost = routing.RegisterTransitCallback(MyDistance); routing.SetArcCostEvaluatorOfAllVehicles(cost);
Find a solution using Solve(), returns a solution if any (owned by routing):
const Assignment* solution = routing.Solve(); CHECK(solution != nullptr);
Inspect the solution cost and route (only one route here):
LOG(INFO) << "Cost " << solution->ObjectiveValue(); const int route_number = 0; for (int64 node = routing.Start(route_number); !routing.IsEnd(node); node = solution->Value(routing.NextVar(node))) { LOG(INFO) << routing.IndexToNode(node); }
Keywords: Vehicle Routing, Traveling Salesman Problem, TSP, VRP, CVRPTW, PDP.
| typedef std::pair<std::vector<int64>, std::vector<int64> > operations_research::RoutingIndexPair |
Definition at line 44 of file routing_types.h.
| typedef std::vector<RoutingIndexPair> operations_research::RoutingIndexPairs |
Definition at line 45 of file routing_types.h.
| typedef std::function<int64(int64)> operations_research::RoutingTransitCallback1 |
Definition at line 41 of file routing_types.h.
| typedef std::function<int64(int64, int64)> operations_research::RoutingTransitCallback2 |
Definition at line 42 of file routing_types.h.
| typedef VarLocalSearchOperator<SequenceVar, std::vector<int>, SequenceVarLocalSearchHandler> operations_research::SequenceVarLocalSearchOperatorTemplate |
Definition at line 1097 of file constraint_solveri.h.
Definition at line 72 of file routing_enums.pb.h.
Definition at line 111 of file routing_enums.pb.h.
This enum is used internally to do dynamic typing on subclasses of integer variables.
| Enumerator | |
|---|---|
| UNSPECIFIED | |
| DOMAIN_INT_VAR | |
| BOOLEAN_VAR | |
| CONST_VAR | |
| VAR_ADD_CST | |
| VAR_TIMES_CST | |
| CST_SUB_VAR | |
| OPP_VAR | |
| TRACE_VAR | |
Definition at line 123 of file constraint_solveri.h.
| void operations_research::AppendTasksFromIntervals | ( | const std::vector< IntervalVar * > & | intervals, |
| DisjunctivePropagator::Tasks * | tasks | ||
| ) |
| void operations_research::AppendTasksFromPath | ( | const std::vector< int64 > & | path, |
| const std::vector< int64 > & | min_travels, | ||
| const std::vector< int64 > & | max_travels, | ||
| const std::vector< int64 > & | pre_travels, | ||
| const std::vector< int64 > & | post_travels, | ||
| const RoutingDimension & | dimension, | ||
| DisjunctivePropagator::Tasks * | tasks | ||
| ) |
|
inline |
Definition at line 2698 of file constraint_solveri.h.
|
inline |
Definition at line 2689 of file constraint_solveri.h.
| bool operations_research::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.
Definition at line 2705 of file constraint_solveri.h.
|
inline |
Returns true if all variables are assigned to 'value'.
Definition at line 2716 of file constraint_solveri.h.
| bool operations_research::AreAllGreaterOrEqual | ( | const std::vector< T > & | values, |
| const T & | value | ||
| ) |
Definition at line 2619 of file constraint_solveri.h.
| bool operations_research::AreAllLessOrEqual | ( | const std::vector< T > & | values, |
| const T & | value | ||
| ) |
Definition at line 2629 of file constraint_solveri.h.
| bool operations_research::AreAllNegative | ( | const std::vector< T > & | values | ) |
Definition at line 2644 of file constraint_solveri.h.
| bool operations_research::AreAllNull | ( | const std::vector< T > & | values | ) |
Definition at line 2614 of file constraint_solveri.h.
| bool operations_research::AreAllOnes | ( | const std::vector< T > & | values | ) |
Definition at line 2609 of file constraint_solveri.h.
| bool operations_research::AreAllPositive | ( | const std::vector< T > & | values | ) |
Definition at line 2639 of file constraint_solveri.h.
| bool operations_research::AreAllStrictlyNegative | ( | const std::vector< T > & | values | ) |
Definition at line 2654 of file constraint_solveri.h.
| bool operations_research::AreAllStrictlyPositive | ( | const std::vector< T > & | values | ) |
Definition at line 2649 of file constraint_solveri.h.
| RoutingModelParameters operations_research::BuildModelParametersFromFlags | ( | ) |
Builds routing search parameters from flags.
| RoutingSearchParameters operations_research::BuildSearchParametersFromFlags | ( | ) |
Builds routing search parameters from flags.
describe a valid set of routing search parameters.
| RoutingModelParameters operations_research::DefaultRoutingModelParameters | ( | ) |
| RoutingSearchParameters operations_research::DefaultRoutingSearchParameters | ( | ) |
| operations_research::DEFINE_INT_TYPE | ( | RoutingNodeIndex | , |
| int | |||
| ) |
Defining common types used in the routing library outside the main RoutingModel class has several purposes: 1) It allows some small libraries to avoid a dependency on routing.
{h,cc}, eg. routing_neighborhoods.h. 2) It allows an easier wrapping via SWIG, which can have issues with intra-class types.
Users that depend on routing.{h,cc} should just use the RoutingModel:: equivalent, eg. RoutingModel::NodeIndex.
| operations_research::DEFINE_INT_TYPE | ( | RoutingCostClassIndex | , |
| int | |||
| ) |
| operations_research::DEFINE_INT_TYPE | ( | RoutingDimensionIndex | , |
| int | |||
| ) |
| operations_research::DEFINE_INT_TYPE | ( | RoutingDisjunctionIndex | , |
| int | |||
| ) |
| operations_research::DEFINE_INT_TYPE | ( | RoutingVehicleClassIndex | , |
| int | |||
| ) |
| void operations_research::FillPathEvaluation | ( | const std::vector< int64 > & | path, |
| const RoutingModel::TransitCallback2 & | evaluator, | ||
| std::vector< int64 > * | values | ||
| ) |
|
inline |
Definition at line 2745 of file constraint_solveri.h.
| std::string operations_research::FindErrorInRoutingSearchParameters | ( | const RoutingSearchParameters & | search_parameters | ) |
Returns an empty std::string if the routing search parameters are valid, and a non-empty, human readable error description if they're not.
| const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* operations_research::FirstSolutionStrategy_Value_descriptor | ( | ) |
| bool operations_research::FirstSolutionStrategy_Value_IsValid | ( | int | value | ) |
|
inline |
Definition at line 99 of file routing_enums.pb.h.
|
inline |
Definition at line 106 of file routing_enums.pb.h.
|
inline |
Hash functions.
value = (value << 21) - value - 1;
value * 265
value * 21
Definition at line 222 of file constraint_solveri.h.
|
inline |
Definition at line 233 of file constraint_solveri.h.
|
inline |
Definition at line 244 of file constraint_solveri.h.
|
inline |
Definition at line 246 of file constraint_solveri.h.
|
inline |
Definition at line 248 of file constraint_solveri.h.
| uint64 operations_research::Hash1 | ( | const std::vector< T * > & | ptrs | ) |
Definition at line 257 of file constraint_solveri.h.
|
inline |
Definition at line 271 of file constraint_solveri.h.
| bool operations_research::IsArrayBoolean | ( | const std::vector< T > & | values | ) |
Definition at line 2599 of file constraint_solveri.h.
| bool operations_research::IsArrayConstant | ( | const std::vector< T > & | values, |
| const T & | value | ||
| ) |
Definition at line 2589 of file constraint_solveri.h.
| bool operations_research::IsArrayInRange | ( | const std::vector< IntVar * > & | vars, |
| T | range_min, | ||
| T | range_max | ||
| ) |
Definition at line 2679 of file constraint_solveri.h.
| bool operations_research::IsIncreasing | ( | const std::vector< T > & | values | ) |
Definition at line 2669 of file constraint_solveri.h.
| bool operations_research::IsIncreasingContiguous | ( | const std::vector< T > & | values | ) |
Definition at line 2659 of file constraint_solveri.h.
| const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* operations_research::LocalSearchMetaheuristic_Value_descriptor | ( | ) |
| bool operations_research::LocalSearchMetaheuristic_Value_IsValid | ( | int | value | ) |
|
inline |
Definition at line 129 of file routing_enums.pb.h.
|
inline |
Definition at line 136 of file routing_enums.pb.h.
| Demon* operations_research::MakeConstraintDemon0 | ( | Solver *const | s, |
| T *const | ct, | ||
| void(T::*)() | method, | ||
| const std::string & | name | ||
| ) |
Definition at line 532 of file constraint_solveri.h.
| Demon* operations_research::MakeConstraintDemon1 | ( | Solver *const | s, |
| T *const | ct, | ||
| void(T::*)(P) | method, | ||
| const std::string & | name, | ||
| P | param1 | ||
| ) |
Definition at line 573 of file constraint_solveri.h.
| Demon* operations_research::MakeConstraintDemon2 | ( | Solver *const | s, |
| T *const | ct, | ||
| void(T::*)(P, Q) | method, | ||
| const std::string & | name, | ||
| P | param1, | ||
| Q | param2 | ||
| ) |
Definition at line 612 of file constraint_solveri.h.
| Demon* operations_research::MakeConstraintDemon3 | ( | Solver *const | s, |
| T *const | ct, | ||
| void(T::*)(P, Q, R) | method, | ||
| const std::string & | name, | ||
| P | param1, | ||
| Q | param2, | ||
| R | param3 | ||
| ) |
Definition at line 655 of file constraint_solveri.h.
| IntVarLocalSearchFilter* operations_research::MakeCPFeasibilityFilter | ( | const RoutingModel * | routing_model | ) |
| std::vector<IntVarLocalSearchFilter*> operations_research::MakeCumulFilters | ( | const RoutingDimension & | dimension, |
| Solver::ObjectiveWatcher | objective_callback, | ||
| bool | filter_objective_cost | ||
| ) |
| Demon* operations_research::MakeDelayedConstraintDemon0 | ( | Solver *const | s, |
| T *const | ct, | ||
| void(T::*)() | method, | ||
| const std::string & | name | ||
| ) |
Definition at line 695 of file constraint_solveri.h.
| Demon* operations_research::MakeDelayedConstraintDemon1 | ( | Solver *const | s, |
| T *const | ct, | ||
| void(T::*)(P) | method, | ||
| const std::string & | name, | ||
| P | param1 | ||
| ) |
Definition at line 731 of file constraint_solveri.h.
| Demon* operations_research::MakeDelayedConstraintDemon2 | ( | Solver *const | s, |
| T *const | ct, | ||
| void(T::*)(P, Q) | method, | ||
| const std::string & | name, | ||
| P | param1, | ||
| Q | param2 | ||
| ) |
Definition at line 775 of file constraint_solveri.h.
| IntVarLocalSearchFilter* operations_research::MakeGlobalLPCumulFilter | ( | const RoutingDimension & | dimension, |
| Solver::ObjectiveWatcher | objective_callback, | ||
| bool | filter_objective_cost | ||
| ) |
| LocalSearchOperator* operations_research::MakeLocalSearchOperator | ( | Solver * | solver, |
| const std::vector< IntVar * > & | vars, | ||
| const std::vector< IntVar * > & | secondary_vars, | ||
| std::function< int(int64)> | start_empty_path_class | ||
| ) |
Operator Factories.
| IntVarLocalSearchFilter* operations_research::MakeNodeDisjunctionFilter | ( | const RoutingModel & | routing_model, |
| std::function< void(int64)> | objective_callback | ||
| ) |
| IntVarLocalSearchFilter* operations_research::MakePathCumulFilter | ( | const RoutingDimension & | dimension, |
| Solver::ObjectiveWatcher | objective_callback, | ||
| bool | propagate_own_objective_value, | ||
| bool | filter_objective_cost | ||
| ) |
| IntVarLocalSearchFilter* operations_research::MakePickupDeliveryFilter | ( | const RoutingModel & | routing_model, |
| const RoutingModel::IndexPairs & | pairs, | ||
| const std::vector< RoutingModel::PickupAndDeliveryPolicy > & | vehicle_policies | ||
| ) |
| DecisionBuilder* operations_research::MakeSetValuesFromTargets | ( | Solver * | solver, |
| std::vector< IntVar * > | variables, | ||
| std::vector< int64 > | targets | ||
| ) |
A decision builder which tries to assign values to variables as close as possible to target values first.
| IntVarLocalSearchFilter* operations_research::MakeTypeRegulationsFilter | ( | const RoutingModel & | routing_model | ) |
| IntVarLocalSearchFilter* operations_research::MakeVehicleAmortizedCostFilter | ( | const RoutingModel & | routing_model, |
| Solver::ObjectiveWatcher | objective_callback | ||
| ) |
| IntVarLocalSearchFilter* operations_research::MakeVehicleBreaksFilter | ( | const RoutingModel & | routing_model, |
| const RoutingDimension & | dimension | ||
| ) |
| IntVarLocalSearchFilter* operations_research::MakeVehicleVarFilter | ( | const RoutingModel & | routing_model | ) |
|
inline |
The std::max<int64> is needed for compilation on MSVC.
Definition at line 2725 of file constraint_solveri.h.
|
inline |
The std::min<int64> is needed for compilation on MSVC.
Definition at line 2735 of file constraint_solveri.h.
|
inline |
This method returns 1.
Definition at line 3084 of file constraint_solver.h.
| std::ostream& operations_research::operator<< | ( | std::ostream & | out, |
| const Solver *const | s | ||
| ) |
| std::ostream& operations_research::operator<< | ( | std::ostream & | out, |
| const BaseObject * | o | ||
| ) |
| std::ostream& operations_research::operator<< | ( | std::ostream & | out, |
| const Assignment & | assignment | ||
| ) |
| std::string operations_research::ParameterDebugString | ( | P | param | ) |
Definition at line 538 of file constraint_solveri.h.
| std::string operations_research::ParameterDebugString | ( | P * | param | ) |
Support limited to pointers to classes which define DebugString().
Definition at line 544 of file constraint_solveri.h.
|
inline |
Definition at line 2763 of file constraint_solveri.h.
|
inline |
Definition at line 2754 of file constraint_solveri.h.
| void operations_research::SetAssignmentFromAssignment | ( | Assignment * | target_assignment, |
| const std::vector< IntVar * > & | target_vars, | ||
| const Assignment * | source_assignment, | ||
| const std::vector< IntVar * > & | source_vars | ||
| ) |
NOLINT.
Given a "source_assignment", clears the "target_assignment" and adds all IntVars in "target_vars", with the values of the variables set according to the corresponding values of "source_vars" in "source_assignment". source_vars and target_vars must have the same number of elements. The source and target assignments can belong to different Solvers.
| bool operations_research::SolveModelWithSat | ( | const RoutingModel & | model, |
| const Assignment * | initial_solution, | ||
| Assignment * | solution | ||
| ) |
Attempts to solve the model using the cp-sat solver.
As of 5/2019, will solve the TSP corresponding to the model if it has a single vehicle. Therefore the resulting solution might not actually be feasible. Will return false if a solution could not be found.
| std::vector<int64> operations_research::ToInt64Vector | ( | const std::vector< int > & | input | ) |
|
inline |
NOLINT.
This method returns 0. It is useful when 0 can be cast either as a pointer or as an integer value and thus lead to an ambiguous function call.
Definition at line 3081 of file constraint_solver.h.
| FirstSolutionStrategyDefaultTypeInternal operations_research::_FirstSolutionStrategy_default_instance_ |
| LocalSearchMetaheuristicDefaultTypeInternal operations_research::_LocalSearchMetaheuristic_default_instance_ |
| RoutingModelParametersDefaultTypeInternal operations_research::_RoutingModelParameters_default_instance_ |
| RoutingSearchParametersDefaultTypeInternal operations_research::_RoutingSearchParameters_default_instance_ |
| RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal operations_research::_RoutingSearchParameters_LocalSearchNeighborhoodOperators_default_instance_ |
| constexpr int operations_research::FirstSolutionStrategy_Value_Value_ARRAYSIZE = FirstSolutionStrategy_Value_Value_MAX + 1 |
Definition at line 95 of file routing_enums.pb.h.
| constexpr FirstSolutionStrategy_Value operations_research::FirstSolutionStrategy_Value_Value_MAX = FirstSolutionStrategy_Value_AUTOMATIC |
Definition at line 94 of file routing_enums.pb.h.
| constexpr FirstSolutionStrategy_Value operations_research::FirstSolutionStrategy_Value_Value_MIN = FirstSolutionStrategy_Value_UNSET |
Definition at line 93 of file routing_enums.pb.h.
| constexpr int operations_research::LocalSearchMetaheuristic_Value_Value_ARRAYSIZE = LocalSearchMetaheuristic_Value_Value_MAX + 1 |
Definition at line 125 of file routing_enums.pb.h.
| constexpr LocalSearchMetaheuristic_Value operations_research::LocalSearchMetaheuristic_Value_Value_MAX = LocalSearchMetaheuristic_Value_AUTOMATIC |
Definition at line 124 of file routing_enums.pb.h.
| constexpr LocalSearchMetaheuristic_Value operations_research::LocalSearchMetaheuristic_Value_Value_MIN = LocalSearchMetaheuristic_Value_UNSET |
Definition at line 123 of file routing_enums.pb.h.