![]() |
Google OR-Tools v9.12
a fast and portable software suite for combinatorial optimization
|
Filter-based heuristic dedicated to routing. More...
#include <routing_search.h>
Public Member Functions | |
RoutingFilteredHeuristic (RoutingModel *model, std::function< bool()> stop_search, LocalSearchFilterManager *filter_manager) | |
RoutingFilteredHeuristic. | |
~RoutingFilteredHeuristic () override=default | |
Assignment * | BuildSolutionFromRoutes (const std::function< int64_t(int64_t)> &next_accessor) |
Builds a solution starting from the routes formed by the next accessor. | |
RoutingModel * | model () const |
int | GetStartChainEnd (int vehicle) const |
Returns the end of the start chain of vehicle,. | |
int | GetEndChainStart (int vehicle) const |
Returns the start of the end chain of vehicle,. | |
void | MakeDisjunctionNodesUnperformed (int64_t node) |
void | AddUnassignedNodesToEmptyVehicles () |
Adds all unassigned nodes to empty vehicles. | |
bool | MakeUnassignedNodesUnperformed () |
Make all unassigned nodes unperformed, always returns true. | |
void | MakePartiallyPerformedPairsUnperformed () |
![]() | |
IntVarFilteredHeuristic (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, LocalSearchFilterManager *filter_manager) | |
— First solution heuristics — | |
virtual | ~IntVarFilteredHeuristic ()=default |
Assignment * | BuildSolution () |
int64_t | number_of_decisions () const |
int64_t | number_of_rejects () const |
virtual std::string | DebugString () const |
Protected Member Functions | |
bool | StopSearch () override |
Returns true if the search must be stopped. | |
virtual void | SetVehicleIndex (int64_t, int) |
virtual void | ResetVehicleIndices () |
bool | VehicleIsEmpty (int vehicle) const |
void | SetNext (int64_t node, int64_t next, int vehicle) |
![]() | |
void | ResetSolution () |
Resets the data members for a new solution. | |
virtual void | Initialize () |
Initialize the heuristic; called before starting to build a new solution. | |
virtual bool | BuildSolutionInternal ()=0 |
Virtual method to redefine how to build a solution. | |
std::optional< int64_t > | Evaluate (bool commit, bool ignore_upper_bound=false, bool update_upper_bound=true) |
void | SetValue (int64_t index, int64_t value) |
const std::vector< int > & | delta_indices () const |
Returns the indices of the nodes currently in the insertion delta. | |
int64_t | Value (int64_t index) const |
bool | Contains (int64_t index) const |
Returns true if the variable of index 'index' is in the current solution. | |
IntVar * | Var (int64_t index) const |
Returns the variable of index 'index'. | |
int64_t | SecondaryVarIndex (int64_t index) const |
Returns the index of a secondary var. | |
bool | HasSecondaryVars () const |
Returns true if there are secondary variables. | |
bool | IsSecondaryVar (int64_t index) const |
Returns true if 'index' is a secondary variable index. | |
void | SynchronizeFilters () |
Synchronizes filters with an assignment (the current solution). | |
Additional Inherited Members | |
![]() | |
Assignment *const | assignment_ |
Filter-based heuristic dedicated to routing.
Definition at line 316 of file routing_search.h.
operations_research::RoutingFilteredHeuristic::RoutingFilteredHeuristic | ( | RoutingModel * | model, |
std::function< bool()> | stop_search, | ||
LocalSearchFilterManager * | filter_manager ) |
Definition at line 605 of file routing_search.cc.
|
overridedefault |
void operations_research::RoutingFilteredHeuristic::AddUnassignedNodesToEmptyVehicles | ( | ) |
Adds all unassigned nodes to empty vehicles.
Definition at line 669 of file routing_search.cc.
Assignment * operations_research::RoutingFilteredHeuristic::BuildSolutionFromRoutes | ( | const std::function< int64_t(int64_t)> & | next_accessor | ) |
Builds a solution starting from the routes formed by the next accessor.
Initialize must be called before the state of the heuristic is changed, in particular before InitializeSolution() and BuildSolutionInternal().
NOTE(b/219043402): The filter manager must first be synchronized with a valid solution that properly connects route starts to route ends in order for future FilterAccept() calls to correctly detect infeasibilities.
Definition at line 507 of file routing_search.cc.
|
inline |
Returns the start of the end chain of vehicle,.
Definition at line 329 of file routing_search.h.
|
inline |
Returns the end of the start chain of vehicle,.
Definition at line 327 of file routing_search.h.
void operations_research::RoutingFilteredHeuristic::MakeDisjunctionNodesUnperformed | ( | int64_t | node | ) |
Make nodes in the same disjunction as 'node' unperformed. 'node' is a variable index corresponding to a node.
Definition at line 660 of file routing_search.cc.
void operations_research::RoutingFilteredHeuristic::MakePartiallyPerformedPairsUnperformed | ( | ) |
Make all partially performed pickup and delivery pairs unperformed. A pair is partially unperformed if one element of the pair has one of its alternatives performed in the solution and the other has no alternatives in the solution or none performed.
Definition at line 705 of file routing_search.cc.
bool operations_research::RoutingFilteredHeuristic::MakeUnassignedNodesUnperformed | ( | ) |
Make all unassigned nodes unperformed, always returns true.
Definition at line 693 of file routing_search.cc.
|
inline |
Definition at line 325 of file routing_search.h.
|
inlineprotectedvirtual |
Definition at line 346 of file routing_search.h.
|
inlineprotected |
Definition at line 350 of file routing_search.h.
|
inlineprotectedvirtual |
Definition at line 345 of file routing_search.h.
|
inlineoverrideprotectedvirtual |
Returns true if the search must be stopped.
Reimplemented from operations_research::IntVarFilteredHeuristic.
Definition at line 344 of file routing_search.h.
|
inlineprotected |
Definition at line 347 of file routing_search.h.