DotNet Reference
DotNet Reference
Detailed Description
Local search neighborhood operators used to build a solutions neighborhood.
Next ID: 31
Definition at line 1265 of file RoutingParameters.pb.cs.
Public Member Functions | |
| LocalSearchNeighborhoodOperators () | |
| LocalSearchNeighborhoodOperators (LocalSearchNeighborhoodOperators other) | |
| LocalSearchNeighborhoodOperators | Clone () |
| override bool | Equals (object other) |
| bool | Equals (LocalSearchNeighborhoodOperators other) |
| override int | GetHashCode () |
| override string | ToString () |
| void | WriteTo (pb::CodedOutputStream output) |
| int | CalculateSize () |
| void | MergeFrom (LocalSearchNeighborhoodOperators other) |
| void | MergeFrom (pb::CodedInputStream input) |
Static Public Attributes | |
| const int | UseRelocateFieldNumber = 1 |
| Field number for the "use_relocate" field. More... | |
| const int | UseRelocatePairFieldNumber = 2 |
| Field number for the "use_relocate_pair" field. More... | |
| const int | UseLightRelocatePairFieldNumber = 24 |
| Field number for the "use_light_relocate_pair" field. More... | |
| const int | UseRelocateNeighborsFieldNumber = 3 |
| Field number for the "use_relocate_neighbors" field. More... | |
| const int | UseRelocateSubtripFieldNumber = 25 |
| Field number for the "use_relocate_subtrip" field. More... | |
| const int | UseExchangeFieldNumber = 4 |
| Field number for the "use_exchange" field. More... | |
| const int | UseExchangePairFieldNumber = 22 |
| Field number for the "use_exchange_pair" field. More... | |
| const int | UseExchangeSubtripFieldNumber = 26 |
| Field number for the "use_exchange_subtrip" field. More... | |
| const int | UseCrossFieldNumber = 5 |
| Field number for the "use_cross" field. More... | |
| const int | UseCrossExchangeFieldNumber = 6 |
| Field number for the "use_cross_exchange" field. More... | |
| const int | UseRelocateExpensiveChainFieldNumber = 23 |
| Field number for the "use_relocate_expensive_chain" field. More... | |
| const int | UseTwoOptFieldNumber = 7 |
| Field number for the "use_two_opt" field. More... | |
| const int | UseOrOptFieldNumber = 8 |
| Field number for the "use_or_opt" field. More... | |
| const int | UseLinKernighanFieldNumber = 9 |
| Field number for the "use_lin_kernighan" field. More... | |
| const int | UseTspOptFieldNumber = 10 |
| Field number for the "use_tsp_opt" field. More... | |
| const int | UseMakeActiveFieldNumber = 11 |
| Field number for the "use_make_active" field. More... | |
| const int | UseRelocateAndMakeActiveFieldNumber = 21 |
| Field number for the "use_relocate_and_make_active" field. More... | |
| const int | UseMakeInactiveFieldNumber = 12 |
| Field number for the "use_make_inactive" field. More... | |
| const int | UseMakeChainInactiveFieldNumber = 13 |
| Field number for the "use_make_chain_inactive" field. More... | |
| const int | UseSwapActiveFieldNumber = 14 |
| Field number for the "use_swap_active" field. More... | |
| const int | UseExtendedSwapActiveFieldNumber = 15 |
| Field number for the "use_extended_swap_active" field. More... | |
| const int | UseNodePairSwapActiveFieldNumber = 20 |
| Field number for the "use_node_pair_swap_active" field. More... | |
| const int | UsePathLnsFieldNumber = 16 |
| Field number for the "use_path_lns" field. More... | |
| const int | UseFullPathLnsFieldNumber = 17 |
| Field number for the "use_full_path_lns" field. More... | |
| const int | UseTspLnsFieldNumber = 18 |
| Field number for the "use_tsp_lns" field. More... | |
| const int | UseInactiveLnsFieldNumber = 19 |
| Field number for the "use_inactive_lns" field. More... | |
| const int | UseGlobalCheapestInsertionPathLnsFieldNumber = 27 |
| Field number for the "use_global_cheapest_insertion_path_lns" field. More... | |
| const int | UseLocalCheapestInsertionPathLnsFieldNumber = 28 |
| Field number for the "use_local_cheapest_insertion_path_lns" field. More... | |
| const int | UseGlobalCheapestInsertionExpensiveChainLnsFieldNumber = 29 |
| Field number for the "use_global_cheapest_insertion_expensive_chain_lns" field. More... | |
| const int | UseLocalCheapestInsertionExpensiveChainLnsFieldNumber = 30 |
| Field number for the "use_local_cheapest_insertion_expensive_chain_lns" field. More... | |
Properties | |
| static pb::MessageParser< LocalSearchNeighborhoodOperators > | Parser [get] |
| static pbr::MessageDescriptor | Descriptor [get] |
| global::Google.OrTools.Util.OptionalBoolean | UseRelocate [get, set] |
| — Inter-route operators — Operator which moves a single node to another position. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseRelocatePair [get, set] |
| Operator which moves a pair of pickup and delivery nodes to another position where the first node of the pair must be before the second node on the same path. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseLightRelocatePair [get, set] |
| Operator which moves a pair of pickup and delivery nodes after another pair. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseRelocateNeighbors [get, set] |
| Relocate neighborhood which moves chains of neighbors. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseRelocateSubtrip [get, set] |
| Relocate neighborhood that moves subpaths all pickup and delivery pairs have both pickup and delivery inside the subpath or both outside the subpath. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseExchange [get, set] |
| Operator which exchanges the positions of two nodes. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseExchangePair [get, set] |
| Operator which exchanges the positions of two pair of nodes. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseExchangeSubtrip [get, set] |
| Operator which exchanges subtrips associated to two pairs of nodes, see use_relocate_subtrip for a definition of subtrips. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseCross [get, set] |
| Operator which cross exchanges the starting chains of 2 paths, including exchanging the whole paths. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseCrossExchange [get, set] |
| Not implemented yet. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseRelocateExpensiveChain [get, set] |
| Operator which detects the relocate_expensive_chain_num_arcs_to_consider most expensive arcs on a path, and moves the chain resulting from cutting pairs of arcs among these to another position. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseTwoOpt [get, set] |
| — Intra-route operators — Operator which reverves a sub-chain of a path. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseOrOpt [get, set] |
| Operator which moves sub-chains of a path of length 1, 2 and 3 to another position in the same path. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseLinKernighan [get, set] |
| Lin-Kernighan operator. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseTspOpt [get, set] |
| Sliding TSP operator. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseMakeActive [get, set] |
| — Operators on inactive nodes — Operator which inserts an inactive node into a path. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseRelocateAndMakeActive [get, set] |
| Operator which relocates a node while making an inactive one active. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseMakeInactive [get, set] |
| Operator which makes path nodes inactive. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseMakeChainInactive [get, set] |
| Operator which makes a "chain" of path nodes inactive. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseSwapActive [get, set] |
| Operator which replaces an active node by an inactive one. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseExtendedSwapActive [get, set] |
| Operator which makes an inactive node active and an active one inactive. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseNodePairSwapActive [get, set] |
| Operator which makes an inactive node active and an active pair of nodes inactive OR makes an inactive pair of nodes active and an active node inactive. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UsePathLns [get, set] |
| — Large neighborhood search operators — Operator which relaxes two sub-chains of three consecutive arcs each. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseFullPathLns [get, set] |
| Operator which relaxes one entire path and all unactive nodes. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseTspLns [get, set] |
| TSP-base LNS. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseInactiveLns [get, set] |
| Operator which relaxes all inactive nodes and one sub-chain of six consecutive arcs. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseGlobalCheapestInsertionPathLns [get, set] |
| — LNS-like large neighborhood search operators using heuristics — Operator which makes all nodes on a route unperformed, and reinserts them using the GlobalCheapestInsertion heuristic. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseLocalCheapestInsertionPathLns [get, set] |
| Same as above but using LocalCheapestInsertion as a heuristic. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseGlobalCheapestInsertionExpensiveChainLns [get, set] |
| This operator finds heuristic_expensive_chain_lns_num_arcs_to_consider most expensive arcs on a route, makes the nodes in between pairs of these expensive arcs unperformed, and reinserts them using the GlobalCheapestInsertion heuristic. More... | |
| global::Google.OrTools.Util.OptionalBoolean | UseLocalCheapestInsertionExpensiveChainLns [get, set] |
| Same as above but using LocalCheapestInsertion as a heuristic for insertion. More... | |
Constructor & Destructor Documentation
◆ LocalSearchNeighborhoodOperators() [1/2]
|
inline |
Definition at line 1282 of file RoutingParameters.pb.cs.
◆ LocalSearchNeighborhoodOperators() [2/2]
|
inline |
Definition at line 1289 of file RoutingParameters.pb.cs.
Member Function Documentation
◆ CalculateSize()
|
inline |
Definition at line 2146 of file RoutingParameters.pb.cs.
◆ Clone()
|
inline |
Definition at line 1324 of file RoutingParameters.pb.cs.
◆ Equals() [1/2]
|
inline |
Definition at line 1934 of file RoutingParameters.pb.cs.
◆ Equals() [2/2]
|
inline |
Definition at line 1929 of file RoutingParameters.pb.cs.
◆ GetHashCode()
|
inline |
Definition at line 1975 of file RoutingParameters.pb.cs.
◆ MergeFrom() [1/2]
|
inline |
Definition at line 2245 of file RoutingParameters.pb.cs.
◆ MergeFrom() [2/2]
|
inline |
Definition at line 2343 of file RoutingParameters.pb.cs.
◆ ToString()
|
inline |
Definition at line 2014 of file RoutingParameters.pb.cs.
◆ WriteTo()
|
inline |
Definition at line 2019 of file RoutingParameters.pb.cs.
Member Data Documentation
◆ UseCrossExchangeFieldNumber
|
static |
Field number for the "use_cross_exchange" field.
Definition at line 1532 of file RoutingParameters.pb.cs.
◆ UseCrossFieldNumber
|
static |
Field number for the "use_cross" field.
Definition at line 1510 of file RoutingParameters.pb.cs.
◆ UseExchangeFieldNumber
|
static |
Field number for the "use_exchange" field.
Definition at line 1455 of file RoutingParameters.pb.cs.
◆ UseExchangePairFieldNumber
|
static |
Field number for the "use_exchange_pair" field.
Definition at line 1475 of file RoutingParameters.pb.cs.
◆ UseExchangeSubtripFieldNumber
|
static |
Field number for the "use_exchange_subtrip" field.
Definition at line 1495 of file RoutingParameters.pb.cs.
◆ UseExtendedSwapActiveFieldNumber
|
static |
Field number for the "use_extended_swap_active" field.
Definition at line 1750 of file RoutingParameters.pb.cs.
◆ UseFullPathLnsFieldNumber
|
static |
Field number for the "use_full_path_lns" field.
Definition at line 1818 of file RoutingParameters.pb.cs.
◆ UseGlobalCheapestInsertionExpensiveChainLnsFieldNumber
|
static |
Field number for the "use_global_cheapest_insertion_expensive_chain_lns" field.
Definition at line 1897 of file RoutingParameters.pb.cs.
◆ UseGlobalCheapestInsertionPathLnsFieldNumber
|
static |
Field number for the "use_global_cheapest_insertion_path_lns" field.
Definition at line 1867 of file RoutingParameters.pb.cs.
◆ UseInactiveLnsFieldNumber
|
static |
Field number for the "use_inactive_lns" field.
Definition at line 1851 of file RoutingParameters.pb.cs.
◆ UseLightRelocatePairFieldNumber
|
static |
Field number for the "use_light_relocate_pair" field.
Definition at line 1373 of file RoutingParameters.pb.cs.
◆ UseLinKernighanFieldNumber
|
static |
Field number for the "use_lin_kernighan" field.
Definition at line 1616 of file RoutingParameters.pb.cs.
◆ UseLocalCheapestInsertionExpensiveChainLnsFieldNumber
|
static |
Field number for the "use_local_cheapest_insertion_expensive_chain_lns" field.
Definition at line 1914 of file RoutingParameters.pb.cs.
◆ UseLocalCheapestInsertionPathLnsFieldNumber
|
static |
Field number for the "use_local_cheapest_insertion_path_lns" field.
Definition at line 1883 of file RoutingParameters.pb.cs.
◆ UseMakeActiveFieldNumber
|
static |
Field number for the "use_make_active" field.
Definition at line 1652 of file RoutingParameters.pb.cs.
◆ UseMakeChainInactiveFieldNumber
|
static |
Field number for the "use_make_chain_inactive" field.
Definition at line 1713 of file RoutingParameters.pb.cs.
◆ UseMakeInactiveFieldNumber
|
static |
Field number for the "use_make_inactive" field.
Definition at line 1695 of file RoutingParameters.pb.cs.
◆ UseNodePairSwapActiveFieldNumber
|
static |
Field number for the "use_node_pair_swap_active" field.
Definition at line 1773 of file RoutingParameters.pb.cs.
◆ UseOrOptFieldNumber
|
static |
Field number for the "use_or_opt" field.
Definition at line 1592 of file RoutingParameters.pb.cs.
◆ UsePathLnsFieldNumber
|
static |
Field number for the "use_path_lns" field.
Definition at line 1797 of file RoutingParameters.pb.cs.
◆ UseRelocateAndMakeActiveFieldNumber
|
static |
Field number for the "use_relocate_and_make_active" field.
Definition at line 1672 of file RoutingParameters.pb.cs.
◆ UseRelocateExpensiveChainFieldNumber
|
static |
Field number for the "use_relocate_expensive_chain" field.
Definition at line 1546 of file RoutingParameters.pb.cs.
◆ UseRelocateFieldNumber
|
static |
Field number for the "use_relocate" field.
Definition at line 1329 of file RoutingParameters.pb.cs.
◆ UseRelocateNeighborsFieldNumber
|
static |
Field number for the "use_relocate_neighbors" field.
Definition at line 1393 of file RoutingParameters.pb.cs.
◆ UseRelocatePairFieldNumber
|
static |
Field number for the "use_relocate_pair" field.
Definition at line 1351 of file RoutingParameters.pb.cs.
◆ UseRelocateSubtripFieldNumber
|
static |
Field number for the "use_relocate_subtrip" field.
Definition at line 1428 of file RoutingParameters.pb.cs.
◆ UseSwapActiveFieldNumber
|
static |
Field number for the "use_swap_active" field.
Definition at line 1732 of file RoutingParameters.pb.cs.
◆ UseTspLnsFieldNumber
|
static |
Field number for the "use_tsp_lns" field.
Definition at line 1832 of file RoutingParameters.pb.cs.
◆ UseTspOptFieldNumber
|
static |
Field number for the "use_tsp_opt" field.
Definition at line 1633 of file RoutingParameters.pb.cs.
◆ UseTwoOptFieldNumber
|
static |
Field number for the "use_two_opt" field.
Definition at line 1569 of file RoutingParameters.pb.cs.
Property Documentation
◆ Descriptor
|
staticget |
Definition at line 1272 of file RoutingParameters.pb.cs.
◆ Parser
|
staticget |
Definition at line 1269 of file RoutingParameters.pb.cs.
◆ UseCross
|
getset |
Operator which cross exchanges the starting chains of 2 paths, including exchanging the whole paths.
First and last nodes are not moved. Possible neighbors for the paths 1 -> 2 -> 3 -> 4 -> 5 and 6 -> 7 -> 8 (where (1, 5) and (6, 8) are first and last nodes of the paths and can therefore not be moved): 1 -> [7] -> 3 -> 4 -> 5 6 -> [2] -> 8 1 -> [7] -> 4 -> 5 6 -> [2 -> 3] -> 8 1 -> [7] -> 5 6 -> [2 -> 3 -> 4] -> 8
Definition at line 1524 of file RoutingParameters.pb.cs.
◆ UseCrossExchange
|
getset |
Not implemented yet.
TODO(b/68128619): Implement.
Definition at line 1538 of file RoutingParameters.pb.cs.
◆ UseExchange
|
getset |
Operator which exchanges the positions of two nodes.
Possible neighbors for the path 1 -> 2 -> 3 -> 4 -> 5 (where (1, 5) are first and last nodes of the path and can therefore not be moved): 1 -> [3] -> [2] -> 4 -> 5 1 -> [4] -> 3 -> [2] -> 5 1 -> 2 -> [4] -> [3] -> 5
Definition at line 1467 of file RoutingParameters.pb.cs.
◆ UseExchangePair
|
getset |
Operator which exchanges the positions of two pair of nodes.
Pairs correspond to the pickup and delivery pairs defined in the routing model. Possible neighbor for the paths 1 -> A -> B -> 2 -> 3 and 4 -> C -> D -> 5 (where (1, 3) and (4, 5) are first and last nodes of the paths and can therefore not be moved, and (A, B) and (C,D) are pairs of nodes): 1 -> [C] -> [D] -> 2 -> 3, 4 -> [A] -> [B] -> 5
Definition at line 1487 of file RoutingParameters.pb.cs.
◆ UseExchangeSubtrip
|
getset |
Operator which exchanges subtrips associated to two pairs of nodes, see use_relocate_subtrip for a definition of subtrips.
Definition at line 1502 of file RoutingParameters.pb.cs.
◆ UseExtendedSwapActive
|
getset |
Operator which makes an inactive node active and an active one inactive.
It is similar to SwapActiveOperator excepts that it tries to insert the inactive node in all possible positions instead of just the position of the node made inactive. Possible neighbors for the path 1 -> 2 -> 3 -> 4 with 5 inactive (where 1 and 4 are first and last nodes of the path) are: 1 -> [5] -> 3 -> 4 with 2 inactive 1 -> 3 -> [5] -> 4 with 2 inactive 1 -> [5] -> 2 -> 4 with 3 inactive 1 -> 2 -> [5] -> 4 with 3 inactive
Definition at line 1765 of file RoutingParameters.pb.cs.
◆ UseFullPathLns
|
getset |
Operator which relaxes one entire path and all unactive nodes.
Definition at line 1824 of file RoutingParameters.pb.cs.
◆ UseGlobalCheapestInsertionExpensiveChainLns
|
getset |
This operator finds heuristic_expensive_chain_lns_num_arcs_to_consider most expensive arcs on a route, makes the nodes in between pairs of these expensive arcs unperformed, and reinserts them using the GlobalCheapestInsertion heuristic.
Definition at line 1906 of file RoutingParameters.pb.cs.
◆ UseGlobalCheapestInsertionPathLns
|
getset |
— LNS-like large neighborhood search operators using heuristics — Operator which makes all nodes on a route unperformed, and reinserts them using the GlobalCheapestInsertion heuristic.
Definition at line 1875 of file RoutingParameters.pb.cs.
◆ UseInactiveLns
|
getset |
Operator which relaxes all inactive nodes and one sub-chain of six consecutive arcs.
That way the path can be improved by inserting inactive nodes or swaping arcs.
Definition at line 1859 of file RoutingParameters.pb.cs.
◆ UseLightRelocatePair
|
getset |
Operator which moves a pair of pickup and delivery nodes after another pair.
Possible neighbors for paths 1 -> A -> B -> 2, 3 -> C -> D -> 4 (where (1, 2) and (3, 4) are first and last nodes of paths and can therefore not be moved, and (A, B) and (C, D) are pair of nodes): 1 -> 2, 3 -> C -> [A] -> D -> [B] -> 4 1 -> A -> [C] -> B -> [D] -> 2, 3 -> 4
Definition at line 1385 of file RoutingParameters.pb.cs.
◆ UseLinKernighan
|
getset |
Lin-Kernighan operator.
While the accumulated local gain is positive, performs a 2-OPT or a 3-OPT move followed by a series of 2-OPT moves. Returns a neighbor for which the global gain is positive.
Definition at line 1625 of file RoutingParameters.pb.cs.
◆ UseLocalCheapestInsertionExpensiveChainLns
|
getset |
Same as above but using LocalCheapestInsertion as a heuristic for insertion.
Definition at line 1921 of file RoutingParameters.pb.cs.
◆ UseLocalCheapestInsertionPathLns
|
getset |
Same as above but using LocalCheapestInsertion as a heuristic.
Definition at line 1889 of file RoutingParameters.pb.cs.
◆ UseMakeActive
|
getset |
— Operators on inactive nodes — Operator which inserts an inactive node into a path.
Possible neighbors for the path 1 -> 2 -> 3 -> 4 with 5 inactive (where 1 and 4 are first and last nodes of the path) are: 1 -> [5] -> 2 -> 3 -> 4 1 -> 2 -> [5] -> 3 -> 4 1 -> 2 -> 3 -> [5] -> 4
Definition at line 1664 of file RoutingParameters.pb.cs.
◆ UseMakeChainInactive
|
getset |
Operator which makes a "chain" of path nodes inactive.
Possible neighbors for the path 1 -> 2 -> 3 -> 4 (where 1 and 4 are first and last nodes of the path) are: 1 -> 3 -> 4 with 2 inactive 1 -> 2 -> 4 with 3 inactive 1 -> 4 with 2 and 3 inactive
Definition at line 1724 of file RoutingParameters.pb.cs.
◆ UseMakeInactive
|
getset |
Operator which makes path nodes inactive.
Possible neighbors for the path 1 -> 2 -> 3 -> 4 (where 1 and 4 are first and last nodes of the path) are: 1 -> 3 -> 4 with 2 inactive 1 -> 2 -> 4 with 3 inactive
Definition at line 1705 of file RoutingParameters.pb.cs.
◆ UseNodePairSwapActive
|
getset |
Operator which makes an inactive node active and an active pair of nodes inactive OR makes an inactive pair of nodes active and an active node inactive.
Possible neighbors for the path 1 -> 2 -> 3 -> 4 with 5 inactive (where 1 and 4 are first and last nodes of the path and (2,3) is a pair of nodes) are: 1 -> [5] -> 4 with (2,3) inactive Possible neighbors for the path 1 -> 2 -> 3 with (4,5) inactive (where 1 and 3 are first and last nodes of the path and (4,5) is a pair of nodes) are: 1 -> [4] -> [5] -> 3 with 2 inactive
Definition at line 1789 of file RoutingParameters.pb.cs.
◆ UseOrOpt
|
getset |
Operator which moves sub-chains of a path of length 1, 2 and 3 to another position in the same path.
When the length of the sub-chain is 1, the operator simply moves a node to another position. Possible neighbors for the path 1 -> 2 -> 3 -> 4 -> 5, for a sub-chain length of 2 (where (1, 5) are first and last nodes of the path and can therefore not be moved): 1 -> 4 -> [2 -> 3] -> 5 1 -> [3 -> 4] -> 2 -> 5 The OR_OPT operator is a limited version of 3-Opt (breaks 3 arcs on a path).
Definition at line 1608 of file RoutingParameters.pb.cs.
◆ UsePathLns
|
getset |
— Large neighborhood search operators — Operator which relaxes two sub-chains of three consecutive arcs each.
Each sub-chain is defined by a start node and the next three arcs. Those six arcs are relaxed to build a new neighbor. PATH_LNS explores all possible pairs of starting nodes and so defines n^2 neighbors, n being the number of nodes. Note that the two sub-chains can be part of the same path; they even may overlap.
Definition at line 1810 of file RoutingParameters.pb.cs.
◆ UseRelocate
|
getset |
— Inter-route operators — Operator which moves a single node to another position.
Possible neighbors for the path 1 -> 2 -> 3 -> 4 -> 5 (where (1, 5) are first and last nodes of the path and can therefore not be moved): 1 -> 3 -> [2] -> 4 -> 5 1 -> 3 -> 4 -> [2] -> 5 1 -> 2 -> 4 -> [3] -> 5 1 -> [4] -> 2 -> 3 -> 5
Definition at line 1343 of file RoutingParameters.pb.cs.
◆ UseRelocateAndMakeActive
|
getset |
Operator which relocates a node while making an inactive one active.
As of 3/2017, the operator is limited to two kinds of moves:
- Relocating a node and replacing it by an inactive node. Possible neighbor for path 1 -> 5, 2 -> 3 -> 6 and 4 inactive (where 1,2 and 5,6 are first and last nodes of paths) is: 1 -> 3 -> 5, 2 -> 4 -> 6.
- Relocating a node and inserting an inactive node next to it. Possible neighbor for path 1 -> 5, 2 -> 3 -> 6 and 4 inactive (where 1,2 and 5,6 are first and last nodes of paths) is: 1 -> 4 -> 3 -> 5, 2 -> 6.
Definition at line 1687 of file RoutingParameters.pb.cs.
◆ UseRelocateExpensiveChain
|
getset |
Operator which detects the relocate_expensive_chain_num_arcs_to_consider most expensive arcs on a path, and moves the chain resulting from cutting pairs of arcs among these to another position.
Possible neighbors for paths 1 -> 2 (empty) and 3 -> A ---—> B --> C --—> D -> 4 (where A -> B and C -> D are the 2 most expensive arcs, and the chain resulting from breaking them is B -> C): 1 -> [B -> C] -> 2 3 -> A -> D -> 4 1 -> 2 3 -> [B -> C] -> A -> D -> 4 1 -> 2 3 -> A -> D -> [B -> C] -> 4
Definition at line 1561 of file RoutingParameters.pb.cs.
◆ UseRelocateNeighbors
|
getset |
Relocate neighborhood which moves chains of neighbors.
The operator starts by relocating a node n after a node m, then continues moving nodes which were after n as long as the "cost" added is less than the "cost" of the arc (m, n). If the new chain doesn't respect the domain of next variables, it will try reordering the nodes until it finds a valid path. Possible neighbors for path 1 -> A -> B -> C -> D -> E -> 2 (where (1, 2) are first and last nodes of the path and can therefore not be moved, A must be performed before B, and A, D and E are located at the same place): 1 -> A -> C -> [B] -> D -> E -> 2 1 -> A -> C -> D -> [B] -> E -> 2 1 -> A -> C -> D -> E -> [B] -> 2 1 -> A -> B -> D -> [C] -> E -> 2 1 -> A -> B -> D -> E -> [C] -> 2 1 -> A -> [D] -> [E] -> B -> C -> 2 1 -> A -> B -> [D] -> [E] -> C -> 2 1 -> A -> [E] -> B -> C -> D -> 2 1 -> A -> B -> [E] -> C -> D -> 2 1 -> A -> B -> C -> [E] -> D -> 2 This operator is extremelly useful to move chains of nodes which are located at the same place (for instance nodes part of a same stop).
Definition at line 1420 of file RoutingParameters.pb.cs.
◆ UseRelocatePair
|
getset |
Operator which moves a pair of pickup and delivery nodes to another position where the first node of the pair must be before the second node on the same path.
Compared to the light_relocate_pair operator, tries all possible positions of insertion of a pair (not only after another pair). Possible neighbors for the path 1 -> A -> B -> 2 -> 3 (where (1, 3) are first and last nodes of the path and can therefore not be moved, and (A, B) is a pair of nodes): 1 -> [A] -> 2 -> [B] -> 3 1 -> 2 -> [A] -> [B] -> 3
Definition at line 1365 of file RoutingParameters.pb.cs.
◆ UseRelocateSubtrip
|
getset |
Relocate neighborhood that moves subpaths all pickup and delivery pairs have both pickup and delivery inside the subpath or both outside the subpath.
For instance, for given paths: 0 -> A -> B -> A' -> B' -> 5 -> 6 -> 8 7 -> 9 Pairs (A,A') and (B,B') are interleaved, so the expected neighbors are: 0 -> 5 -> A -> B -> A' -> B' -> 6 -> 8 7 -> 9
0 -> 5 -> 6 -> A -> B -> A' -> B' -> 8 7 -> 9
0 -> 5 -> 6 -> 8 7 -> A -> B -> A' -> B' -> 9
Definition at line 1447 of file RoutingParameters.pb.cs.
◆ UseSwapActive
|
getset |
Operator which replaces an active node by an inactive one.
Possible neighbors for the path 1 -> 2 -> 3 -> 4 with 5 inactive (where 1 and 4 are first and last nodes of the path) are: 1 -> [5] -> 3 -> 4 with 2 inactive 1 -> 2 -> [5] -> 4 with 3 inactive
Definition at line 1742 of file RoutingParameters.pb.cs.
◆ UseTspLns
|
getset |
TSP-base LNS.
Randomly merges consecutive nodes until n "meta"-nodes remain and solves the corresponding TSP. This defines an "unlimited" neighborhood which must be stopped by search limits. To force diversification, the operator iteratively forces each node to serve as base of a meta-node.
Definition at line 1843 of file RoutingParameters.pb.cs.
◆ UseTspOpt
|
getset |
Sliding TSP operator.
Uses an exact dynamic programming algorithm to solve the TSP corresponding to path sub-chains. For a subchain 1 -> 2 -> 3 -> 4 -> 5 -> 6, solves the TSP on nodes A, 2, 3, 4, 5, where A is a merger of nodes 1 and 6 such that cost(A,i) = cost(1,i) and cost(i,A) = cost(i,6).
Definition at line 1644 of file RoutingParameters.pb.cs.
◆ UseTwoOpt
|
getset |
— Intra-route operators — Operator which reverves a sub-chain of a path.
It is called TwoOpt because it breaks two arcs on the path; resulting paths are called two-optimal. Possible neighbors for the path 1 -> 2 -> 3 -> 4 -> 5 (where (1, 5) are first and last nodes of the path and can therefore not be moved): 1 -> [3 -> 2] -> 4 -> 5 1 -> [4 -> 3 -> 2] -> 5 1 -> 2 -> [4 -> 3] -> 5
Definition at line 1584 of file RoutingParameters.pb.cs.
The documentation for this class was generated from the following file: