|
| SavingsFilteredHeuristic (RoutingModel *model, std::function< bool()> stop_search, SavingsParameters parameters, LocalSearchFilterManager *filter_manager) |
| SavingsFilteredHeuristic.
|
|
| ~SavingsFilteredHeuristic () override |
|
bool | BuildSolutionInternal () override |
| Virtual method to redefine how to build a solution.
|
|
| 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 |
|
Filter-based decision builder which builds a solution by using Clarke & Wright's Savings heuristic. For each pair of nodes, the savings value is the difference between the cost of two routes visiting one node each and one route visiting both nodes. Routes are built sequentially, each route being initialized from the pair with the best available savings value then extended by selecting the nodes with best savings on both ends of the partial route. Cost is based on the arc cost function of the routing model and cost classes are taken into account.
Definition at line 1323 of file routing_search.h.
int operations_research::SavingsFilteredHeuristic::StartNewRouteWithBestVehicleOfType |
( |
int | type, |
|
|
int64_t | before_node, |
|
|
int64_t | after_node ) |
|
protected |
Finds the best available vehicle of type "type" to start a new route to serve the arc before_node-->after_node. Since there are different vehicle classes for each vehicle type, each vehicle class having its own capacity constraints, we go through all vehicle types (in each case only studying the first available vehicle) to make sure this Saving is inserted if possible. If possible, the arc is committed to the best vehicle, and the vehicle index is returned. If this arc can't be served by any vehicle of this type, the function returns -1.
Try to commit the arc on this vehicle.
Definition at line 4169 of file routing_search.cc.