DotNet Reference

DotNet Reference

RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators

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< LocalSearchNeighborhoodOperatorsParser [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]

Definition at line 1282 of file RoutingParameters.pb.cs.

◆ LocalSearchNeighborhoodOperators() [2/2]

Member Function Documentation

◆ CalculateSize()

int CalculateSize ( )
inline

Definition at line 2146 of file RoutingParameters.pb.cs.

◆ Clone()

Definition at line 1324 of file RoutingParameters.pb.cs.

◆ Equals() [1/2]

bool Equals ( LocalSearchNeighborhoodOperators  other)
inline

Definition at line 1934 of file RoutingParameters.pb.cs.

◆ Equals() [2/2]

override bool Equals ( object  other)
inline

Definition at line 1929 of file RoutingParameters.pb.cs.

◆ GetHashCode()

override int GetHashCode ( )
inline

Definition at line 1975 of file RoutingParameters.pb.cs.

◆ MergeFrom() [1/2]

void MergeFrom ( LocalSearchNeighborhoodOperators  other)
inline

Definition at line 2245 of file RoutingParameters.pb.cs.

◆ MergeFrom() [2/2]

void MergeFrom ( pb::CodedInputStream  input)
inline

Definition at line 2343 of file RoutingParameters.pb.cs.

◆ ToString()

override string ToString ( )
inline

Definition at line 2014 of file RoutingParameters.pb.cs.

◆ WriteTo()

void WriteTo ( pb::CodedOutputStream  output)
inline

Definition at line 2019 of file RoutingParameters.pb.cs.

Member Data Documentation

◆ UseCrossExchangeFieldNumber

const int UseCrossExchangeFieldNumber = 6
static

Field number for the "use_cross_exchange" field.

Definition at line 1532 of file RoutingParameters.pb.cs.

◆ UseCrossFieldNumber

const int UseCrossFieldNumber = 5
static

Field number for the "use_cross" field.

Definition at line 1510 of file RoutingParameters.pb.cs.

◆ UseExchangeFieldNumber

const int UseExchangeFieldNumber = 4
static

Field number for the "use_exchange" field.

Definition at line 1455 of file RoutingParameters.pb.cs.

◆ UseExchangePairFieldNumber

const int UseExchangePairFieldNumber = 22
static

Field number for the "use_exchange_pair" field.

Definition at line 1475 of file RoutingParameters.pb.cs.

◆ UseExchangeSubtripFieldNumber

const int UseExchangeSubtripFieldNumber = 26
static

Field number for the "use_exchange_subtrip" field.

Definition at line 1495 of file RoutingParameters.pb.cs.

◆ UseExtendedSwapActiveFieldNumber

const int UseExtendedSwapActiveFieldNumber = 15
static

Field number for the "use_extended_swap_active" field.

Definition at line 1750 of file RoutingParameters.pb.cs.

◆ UseFullPathLnsFieldNumber

const int UseFullPathLnsFieldNumber = 17
static

Field number for the "use_full_path_lns" field.

Definition at line 1818 of file RoutingParameters.pb.cs.

◆ UseGlobalCheapestInsertionExpensiveChainLnsFieldNumber

const int UseGlobalCheapestInsertionExpensiveChainLnsFieldNumber = 29
static

Field number for the "use_global_cheapest_insertion_expensive_chain_lns" field.

Definition at line 1897 of file RoutingParameters.pb.cs.

◆ UseGlobalCheapestInsertionPathLnsFieldNumber

const int UseGlobalCheapestInsertionPathLnsFieldNumber = 27
static

Field number for the "use_global_cheapest_insertion_path_lns" field.

Definition at line 1867 of file RoutingParameters.pb.cs.

◆ UseInactiveLnsFieldNumber

const int UseInactiveLnsFieldNumber = 19
static

Field number for the "use_inactive_lns" field.

Definition at line 1851 of file RoutingParameters.pb.cs.

◆ UseLightRelocatePairFieldNumber

const int UseLightRelocatePairFieldNumber = 24
static

Field number for the "use_light_relocate_pair" field.

Definition at line 1373 of file RoutingParameters.pb.cs.

◆ UseLinKernighanFieldNumber

const int UseLinKernighanFieldNumber = 9
static

Field number for the "use_lin_kernighan" field.

Definition at line 1616 of file RoutingParameters.pb.cs.

◆ UseLocalCheapestInsertionExpensiveChainLnsFieldNumber

const int UseLocalCheapestInsertionExpensiveChainLnsFieldNumber = 30
static

Field number for the "use_local_cheapest_insertion_expensive_chain_lns" field.

Definition at line 1914 of file RoutingParameters.pb.cs.

◆ UseLocalCheapestInsertionPathLnsFieldNumber

const int UseLocalCheapestInsertionPathLnsFieldNumber = 28
static

Field number for the "use_local_cheapest_insertion_path_lns" field.

Definition at line 1883 of file RoutingParameters.pb.cs.

◆ UseMakeActiveFieldNumber

const int UseMakeActiveFieldNumber = 11
static

Field number for the "use_make_active" field.

Definition at line 1652 of file RoutingParameters.pb.cs.

◆ UseMakeChainInactiveFieldNumber

const int UseMakeChainInactiveFieldNumber = 13
static

Field number for the "use_make_chain_inactive" field.

Definition at line 1713 of file RoutingParameters.pb.cs.

◆ UseMakeInactiveFieldNumber

const int UseMakeInactiveFieldNumber = 12
static

Field number for the "use_make_inactive" field.

Definition at line 1695 of file RoutingParameters.pb.cs.

◆ UseNodePairSwapActiveFieldNumber

const int UseNodePairSwapActiveFieldNumber = 20
static

Field number for the "use_node_pair_swap_active" field.

Definition at line 1773 of file RoutingParameters.pb.cs.

◆ UseOrOptFieldNumber

const int UseOrOptFieldNumber = 8
static

Field number for the "use_or_opt" field.

Definition at line 1592 of file RoutingParameters.pb.cs.

◆ UsePathLnsFieldNumber

const int UsePathLnsFieldNumber = 16
static

Field number for the "use_path_lns" field.

Definition at line 1797 of file RoutingParameters.pb.cs.

◆ UseRelocateAndMakeActiveFieldNumber

const int UseRelocateAndMakeActiveFieldNumber = 21
static

Field number for the "use_relocate_and_make_active" field.

Definition at line 1672 of file RoutingParameters.pb.cs.

◆ UseRelocateExpensiveChainFieldNumber

const int UseRelocateExpensiveChainFieldNumber = 23
static

Field number for the "use_relocate_expensive_chain" field.

Definition at line 1546 of file RoutingParameters.pb.cs.

◆ UseRelocateFieldNumber

const int UseRelocateFieldNumber = 1
static

Field number for the "use_relocate" field.

Definition at line 1329 of file RoutingParameters.pb.cs.

◆ UseRelocateNeighborsFieldNumber

const int UseRelocateNeighborsFieldNumber = 3
static

Field number for the "use_relocate_neighbors" field.

Definition at line 1393 of file RoutingParameters.pb.cs.

◆ UseRelocatePairFieldNumber

const int UseRelocatePairFieldNumber = 2
static

Field number for the "use_relocate_pair" field.

Definition at line 1351 of file RoutingParameters.pb.cs.

◆ UseRelocateSubtripFieldNumber

const int UseRelocateSubtripFieldNumber = 25
static

Field number for the "use_relocate_subtrip" field.

Definition at line 1428 of file RoutingParameters.pb.cs.

◆ UseSwapActiveFieldNumber

const int UseSwapActiveFieldNumber = 14
static

Field number for the "use_swap_active" field.

Definition at line 1732 of file RoutingParameters.pb.cs.

◆ UseTspLnsFieldNumber

const int UseTspLnsFieldNumber = 18
static

Field number for the "use_tsp_lns" field.

Definition at line 1832 of file RoutingParameters.pb.cs.

◆ UseTspOptFieldNumber

const int UseTspOptFieldNumber = 10
static

Field number for the "use_tsp_opt" field.

Definition at line 1633 of file RoutingParameters.pb.cs.

◆ UseTwoOptFieldNumber

const int UseTwoOptFieldNumber = 7
static

Field number for the "use_two_opt" field.

Definition at line 1569 of file RoutingParameters.pb.cs.

Property Documentation

◆ Descriptor

pbr.MessageDescriptor Descriptor
staticget

Definition at line 1272 of file RoutingParameters.pb.cs.

◆ Parser

pb.MessageParser<LocalSearchNeighborhoodOperators> Parser
staticget

Definition at line 1269 of file RoutingParameters.pb.cs.

◆ UseCross

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean UseCrossExchange
getset

Not implemented yet.

TODO(b/68128619): Implement.

Definition at line 1538 of file RoutingParameters.pb.cs.

◆ UseExchange

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean UseFullPathLns
getset

Operator which relaxes one entire path and all unactive nodes.

Definition at line 1824 of file RoutingParameters.pb.cs.

◆ UseGlobalCheapestInsertionExpensiveChainLns

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionExpensiveChainLns
getset

Same as above but using LocalCheapestInsertion as a heuristic for insertion.

Definition at line 1921 of file RoutingParameters.pb.cs.

◆ UseLocalCheapestInsertionPathLns

global.Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionPathLns
getset

Same as above but using LocalCheapestInsertion as a heuristic.

Definition at line 1889 of file RoutingParameters.pb.cs.

◆ UseMakeActive

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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

global.Google.OrTools.Util.OptionalBoolean 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: