C++ Reference
C++ Reference: Routing
Detailed Description
Christofides addition heuristic.
Initially created to solve TSPs, extended to support any model by extending routes as much as possible following the path found by the heuristic, before starting a new route.
Public Member Functions | |
ChristofidesFilteredHeuristic (RoutingModel *model, const std::vector< LocalSearchFilter * > &filters, bool use_minimum_matching) | |
~ChristofidesFilteredHeuristic () override | |
bool | BuildSolutionInternal () override |
Virtual method to redefine how to build a solution. More... | |
std::string | DebugString () const override |
const Assignment * | BuildSolutionFromRoutes (const std::function< int64(int64)> &next_accessor) |
Builds a solution starting from the routes formed by the next accessor. More... | |
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... | |
Assignment *const | BuildSolution () |
Builds 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 |
Protected Member Functions | |
bool | StopSearch () override |
Returns true if the search must be stopped. More... | |
virtual void | SetVehicleIndex (int64 node, int vehicle) |
virtual void | ResetVehicleIndices () |
void | ResetSolution () |
Resets the data members for a new solution. 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... | |
void | SynchronizeFilters () |
Synchronizes filters with an assignment (the current solution). More... | |
Protected Attributes | |
Assignment *const | assignment_ |
Constructor & Destructor Documentation
◆ ChristofidesFilteredHeuristic()
ChristofidesFilteredHeuristic | ( | RoutingModel * | model, |
const std::vector< LocalSearchFilter * > & | filters, | ||
bool | use_minimum_matching | ||
) |
◆ ~ChristofidesFilteredHeuristic()
|
inlineoverride |
Member Function Documentation
◆ BuildSolution()
|
inherited |
Builds a solution.
Returns the resulting assignment if a solution was found, and nullptr otherwise.
◆ BuildSolutionFromRoutes()
|
inherited |
Builds a solution starting from the routes formed by the next accessor.
◆ BuildSolutionInternal()
|
overridevirtual |
Virtual method to redefine how to build a solution.
Implements IntVarFilteredHeuristic.
◆ Commit()
|
protectedinherited |
Commits the modifications to the current solution if these modifications are "filter-feasible", returns false otherwise; in any case discards all modifications.
◆ Contains()
|
inlineprotectedinherited |
◆ DebugString()
|
inlineoverridevirtual |
Reimplemented from IntVarFilteredHeuristic.
◆ GetEndChainStart()
|
inlineinherited |
◆ GetStartChainEnd()
|
inlineinherited |
◆ 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 |
◆ number_of_decisions()
|
inlineinherited |
◆ number_of_rejects()
◆ ResetSolution()
|
protectedinherited |
Resets the data members for a new solution.
◆ ResetVehicleIndices()
|
inlineprotectedvirtualinherited |
◆ SetValue()
|
inlineprotectedinherited |
◆ SetVehicleIndex()
|
inlineprotectedvirtualinherited |
◆ Size()
|
inlineprotectedinherited |
◆ StopSearch()
|
inlineoverrideprotectedvirtualinherited |
Returns true if the search must be stopped.
Reimplemented from IntVarFilteredHeuristic.
◆ SynchronizeFilters()
|
protectedinherited |
Synchronizes filters with an assignment (the current solution).
◆ Value()
|
inlineprotectedinherited |
◆ Var()
|
inlineprotectedinherited |
Member Data Documentation
◆ assignment_
The documentation for this class was generated from the following file: