C++ Reference
C++ Reference: Routing
Detailed Description
Classes | |
| struct | StartEndValue |
Public Member Functions | |
| CheapestInsertionFilteredDecisionBuilder (RoutingModel *model, std::function< int64(int64, int64, int64)> evaluator, std::function< int64(int64)> penalty_evaluator, const std::vector< LocalSearchFilter * > &filters) | |
| Takes ownership of evaluator. More... | |
| ~CheapestInsertionFilteredDecisionBuilder () override | |
| RoutingModel * | model () const |
| int | GetStartChainEnd (int vehicle) const |
| Returns the end of the start chain of vehicle,. More... | |
| int | GetEndChainStart (int vehicle) const |
| Returns the start of the end chain of vehicle,. More... | |
| void | MakeDisjunctionNodesUnperformed (int64 node) |
| Make nodes in the same disjunction as 'node' unperformed. More... | |
| void | MakeUnassignedNodesUnperformed () |
| Make all unassigned nodes unperformed. More... | |
| Decision * | Next (Solver *solver) override |
| This is the main method of the decision builder class. More... | |
| virtual bool | BuildSolution ()=0 |
| Virtual method to redefine to build a solution. More... | |
| int64 | number_of_decisions () const |
| Returns statistics on search, number of decisions sent to filters, number of decisions rejected by filters. More... | |
| int64 | number_of_rejects () const |
| std::string | DebugString () const override |
| virtual void | AppendMonitors (Solver *const solver, std::vector< SearchMonitor * > *const extras) |
| This method will be called at the start of the search. More... | |
| virtual void | Accept (ModelVisitor *const visitor) const |
Protected Types | |
| typedef std::pair< int64, int64 > | ValuedPosition |
| typedef std::pair< StartEndValue, int > | Seed |
Protected Member Functions | |
| std::vector< std::vector< StartEndValue > > | ComputeStartEndDistanceForVehicles (const std::vector< int > &vehicles) |
| Computes and returns the distance of each uninserted node to every vehicle in "vehicles" as a std::vector<std::vector<StartEndValue>>, start_end_distances_per_node. More... | |
| template<class Queue > | |
| void | InitializePriorityQueue (std::vector< std::vector< StartEndValue > > *start_end_distances_per_node, Queue *priority_queue) |
| Initializes the priority_queue by inserting the best entry corresponding to each node, i.e. More... | |
| void | InsertBetween (int64 node, int64 predecessor, int64 successor) |
| Inserts 'node' just after 'predecessor', and just before 'successor', resulting in the following subsequence: predecessor -> node -> successor. More... | |
| void | AppendEvaluatedPositionsAfter (int64 node_to_insert, int64 start, int64 next_after_start, int64 vehicle, std::vector< ValuedPosition > *valued_positions) |
| Helper method to the ComputeEvaluatorSortedPositions* methods. More... | |
| int64 | GetUnperformedValue (int64 node_to_insert) const |
| Returns the cost of unperforming node 'node_to_insert'. More... | |
| bool | StopSearch () override |
| Returns true if the search must be stopped. More... | |
| bool | Commit () |
| Commits the modifications to the current solution if these modifications are "filter-feasible", returns false otherwise; in any case discards all modifications. More... | |
| void | SetValue (int64 index, int64 value) |
| Modifies the current solution by setting the variable of index 'index' to value 'value'. More... | |
| int64 | Value (int64 index) const |
| Returns the value of the variable of index 'index' in the last committed solution. More... | |
| bool | Contains (int64 index) const |
| Returns true if the variable of index 'index' is in the current solution. More... | |
| int | Size () const |
| Returns the number of variables the decision builder is trying to instantiate. More... | |
| IntVar * | Var (int64 index) const |
| Returns the variable of index 'index'. More... | |
Protected Attributes | |
| std::function< int64(int64, int64, int64)> | evaluator_ |
| std::function< int64(int64)> | penalty_evaluator_ |
Member Typedef Documentation
◆ Seed
|
protected |
◆ ValuedPosition
|
protected |
Constructor & Destructor Documentation
◆ CheapestInsertionFilteredDecisionBuilder()
| CheapestInsertionFilteredDecisionBuilder | ( | RoutingModel * | model, |
| std::function< int64(int64, int64, int64)> | evaluator, | ||
| std::function< int64(int64)> | penalty_evaluator, | ||
| const std::vector< LocalSearchFilter * > & | filters | ||
| ) |
Takes ownership of evaluator.
◆ ~CheapestInsertionFilteredDecisionBuilder()
|
inlineoverride |
Member Function Documentation
◆ Accept()
|
virtualinherited |
◆ AppendEvaluatedPositionsAfter()
|
protected |
Helper method to the ComputeEvaluatorSortedPositions* methods.
Finds all possible insertion positions of node 'node_to_insert' in the partial route starting at node 'start' and adds them to 'valued_position', a list of unsorted pairs of (cost, position to insert the node).
◆ AppendMonitors()
|
virtualinherited |
This method will be called at the start of the search.
It asks the decision builder if it wants to append search monitors to the list of active monitors for this search. Please note there are no checks at this point for duplication.
◆ BuildSolution()
|
pure virtualinherited |
Virtual method to redefine to build a solution.
Implemented in ChristofidesFilteredDecisionBuilder, SavingsFilteredDecisionBuilder, CheapestAdditionFilteredDecisionBuilder, LocalCheapestInsertionFilteredDecisionBuilder, and GlobalCheapestInsertionFilteredDecisionBuilder.
◆ Commit()
|
protectedinherited |
Commits the modifications to the current solution if these modifications are "filter-feasible", returns false otherwise; in any case discards all modifications.
◆ ComputeStartEndDistanceForVehicles()
|
protected |
Computes and returns the distance of each uninserted node to every vehicle in "vehicles" as a std::vector<std::vector<StartEndValue>>, start_end_distances_per_node.
For each node, start_end_distances_per_node[node] is sorted in decreasing order.
◆ Contains()
|
inlineprotectedinherited |
◆ DebugString()
|
overridevirtualinherited |
Reimplemented from BaseObject.
Reimplemented in ChristofidesFilteredDecisionBuilder, ParallelSavingsFilteredDecisionBuilder, SequentialSavingsFilteredDecisionBuilder, ComparatorCheapestAdditionFilteredDecisionBuilder, EvaluatorCheapestAdditionFilteredDecisionBuilder, LocalCheapestInsertionFilteredDecisionBuilder, and GlobalCheapestInsertionFilteredDecisionBuilder.
◆ GetEndChainStart()
|
inlineinherited |
◆ GetStartChainEnd()
|
inlineinherited |
◆ GetUnperformedValue()
|
protected |
Returns the cost of unperforming node 'node_to_insert'.
Returns kint64max if penalty callback is null or if the node cannot be unperformed.
◆ InitializePriorityQueue()
|
protected |
Initializes the priority_queue by inserting the best entry corresponding to each node, i.e.
the last element of start_end_distances_per_node[node], which is supposed to be sorted in decreasing order. Queue is a priority queue containing Seeds.
◆ InsertBetween()
|
protected |
Inserts 'node' just after 'predecessor', and just before 'successor', resulting in the following subsequence: predecessor -> node -> successor.
If 'node' is part of a disjunction, other nodes of the disjunction are made unperformed.
◆ MakeDisjunctionNodesUnperformed()
|
inherited |
Make nodes in the same disjunction as 'node' unperformed.
'node' is a variable index corresponding to a node.
◆ MakeUnassignedNodesUnperformed()
|
inherited |
Make all unassigned nodes unperformed.
◆ model()
|
inlineinherited |
◆ Next()
This is the main method of the decision builder class.
It must return a decision (an instance of the class Decision). If it returns nullptr, this means that the decision builder has finished its work.
Implements DecisionBuilder.
◆ number_of_decisions()
|
inlineinherited |
◆ number_of_rejects()
◆ SetValue()
|
inlineprotectedinherited |
◆ Size()
|
inlineprotectedinherited |
◆ StopSearch()
|
inlineoverrideprotectedvirtualinherited |
Returns true if the search must be stopped.
Reimplemented from IntVarFilteredDecisionBuilder.
◆ Value()
|
inlineprotectedinherited |
◆ Var()
|
inlineprotectedinherited |
Member Data Documentation
◆ evaluator_
|
protected |
◆ penalty_evaluator_
The documentation for this class was generated from the following file: