Class RoutingSearchParameters.LocalSearchNeighborhoodOperators

java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessage
com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators
All Implemented Interfaces:
RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder, com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, Serializable
Enclosing class:
RoutingSearchParameters

public static final class RoutingSearchParameters.LocalSearchNeighborhoodOperators extends com.google.protobuf.GeneratedMessage implements RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
 Local search neighborhood operators used to build a solutions neighborhood.
 Next ID: 39
 
Protobuf type operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators
See Also:
  • Field Details

    • USE_RELOCATE_FIELD_NUMBER

      public static final int USE_RELOCATE_FIELD_NUMBER
      See Also:
    • USE_RELOCATE_PAIR_FIELD_NUMBER

      public static final int USE_RELOCATE_PAIR_FIELD_NUMBER
      See Also:
    • USE_LIGHT_RELOCATE_PAIR_FIELD_NUMBER

      public static final int USE_LIGHT_RELOCATE_PAIR_FIELD_NUMBER
      See Also:
    • USE_RELOCATE_NEIGHBORS_FIELD_NUMBER

      public static final int USE_RELOCATE_NEIGHBORS_FIELD_NUMBER
      See Also:
    • USE_RELOCATE_SUBTRIP_FIELD_NUMBER

      public static final int USE_RELOCATE_SUBTRIP_FIELD_NUMBER
      See Also:
    • USE_EXCHANGE_FIELD_NUMBER

      public static final int USE_EXCHANGE_FIELD_NUMBER
      See Also:
    • USE_EXCHANGE_PAIR_FIELD_NUMBER

      public static final int USE_EXCHANGE_PAIR_FIELD_NUMBER
      See Also:
    • USE_EXCHANGE_SUBTRIP_FIELD_NUMBER

      public static final int USE_EXCHANGE_SUBTRIP_FIELD_NUMBER
      See Also:
    • USE_CROSS_FIELD_NUMBER

      public static final int USE_CROSS_FIELD_NUMBER
      See Also:
    • USE_CROSS_EXCHANGE_FIELD_NUMBER

      public static final int USE_CROSS_EXCHANGE_FIELD_NUMBER
      See Also:
    • USE_RELOCATE_EXPENSIVE_CHAIN_FIELD_NUMBER

      public static final int USE_RELOCATE_EXPENSIVE_CHAIN_FIELD_NUMBER
      See Also:
    • USE_TWO_OPT_FIELD_NUMBER

      public static final int USE_TWO_OPT_FIELD_NUMBER
      See Also:
    • USE_OR_OPT_FIELD_NUMBER

      public static final int USE_OR_OPT_FIELD_NUMBER
      See Also:
    • USE_LIN_KERNIGHAN_FIELD_NUMBER

      public static final int USE_LIN_KERNIGHAN_FIELD_NUMBER
      See Also:
    • USE_TSP_OPT_FIELD_NUMBER

      public static final int USE_TSP_OPT_FIELD_NUMBER
      See Also:
    • USE_MAKE_ACTIVE_FIELD_NUMBER

      public static final int USE_MAKE_ACTIVE_FIELD_NUMBER
      See Also:
    • USE_RELOCATE_AND_MAKE_ACTIVE_FIELD_NUMBER

      public static final int USE_RELOCATE_AND_MAKE_ACTIVE_FIELD_NUMBER
      See Also:
    • USE_EXCHANGE_AND_MAKE_ACTIVE_FIELD_NUMBER

      public static final int USE_EXCHANGE_AND_MAKE_ACTIVE_FIELD_NUMBER
      See Also:
    • USE_EXCHANGE_PATH_START_ENDS_AND_MAKE_ACTIVE_FIELD_NUMBER

      public static final int USE_EXCHANGE_PATH_START_ENDS_AND_MAKE_ACTIVE_FIELD_NUMBER
      See Also:
    • USE_MAKE_INACTIVE_FIELD_NUMBER

      public static final int USE_MAKE_INACTIVE_FIELD_NUMBER
      See Also:
    • USE_MAKE_CHAIN_INACTIVE_FIELD_NUMBER

      public static final int USE_MAKE_CHAIN_INACTIVE_FIELD_NUMBER
      See Also:
    • USE_SWAP_ACTIVE_FIELD_NUMBER

      public static final int USE_SWAP_ACTIVE_FIELD_NUMBER
      See Also:
    • USE_SWAP_ACTIVE_CHAIN_FIELD_NUMBER

      public static final int USE_SWAP_ACTIVE_CHAIN_FIELD_NUMBER
      See Also:
    • USE_EXTENDED_SWAP_ACTIVE_FIELD_NUMBER

      public static final int USE_EXTENDED_SWAP_ACTIVE_FIELD_NUMBER
      See Also:
    • USE_SHORTEST_PATH_SWAP_ACTIVE_FIELD_NUMBER

      public static final int USE_SHORTEST_PATH_SWAP_ACTIVE_FIELD_NUMBER
      See Also:
    • USE_SHORTEST_PATH_TWO_OPT_FIELD_NUMBER

      public static final int USE_SHORTEST_PATH_TWO_OPT_FIELD_NUMBER
      See Also:
    • USE_NODE_PAIR_SWAP_ACTIVE_FIELD_NUMBER

      public static final int USE_NODE_PAIR_SWAP_ACTIVE_FIELD_NUMBER
      See Also:
    • USE_PATH_LNS_FIELD_NUMBER

      public static final int USE_PATH_LNS_FIELD_NUMBER
      See Also:
    • USE_FULL_PATH_LNS_FIELD_NUMBER

      public static final int USE_FULL_PATH_LNS_FIELD_NUMBER
      See Also:
    • USE_TSP_LNS_FIELD_NUMBER

      public static final int USE_TSP_LNS_FIELD_NUMBER
      See Also:
    • USE_INACTIVE_LNS_FIELD_NUMBER

      public static final int USE_INACTIVE_LNS_FIELD_NUMBER
      See Also:
    • USE_GLOBAL_CHEAPEST_INSERTION_PATH_LNS_FIELD_NUMBER

      public static final int USE_GLOBAL_CHEAPEST_INSERTION_PATH_LNS_FIELD_NUMBER
      See Also:
    • USE_LOCAL_CHEAPEST_INSERTION_PATH_LNS_FIELD_NUMBER

      public static final int USE_LOCAL_CHEAPEST_INSERTION_PATH_LNS_FIELD_NUMBER
      See Also:
    • USE_RELOCATE_PATH_GLOBAL_CHEAPEST_INSERTION_INSERT_UNPERFORMED_FIELD_NUMBER

      public static final int USE_RELOCATE_PATH_GLOBAL_CHEAPEST_INSERTION_INSERT_UNPERFORMED_FIELD_NUMBER
      See Also:
    • USE_GLOBAL_CHEAPEST_INSERTION_EXPENSIVE_CHAIN_LNS_FIELD_NUMBER

      public static final int USE_GLOBAL_CHEAPEST_INSERTION_EXPENSIVE_CHAIN_LNS_FIELD_NUMBER
      See Also:
    • USE_LOCAL_CHEAPEST_INSERTION_EXPENSIVE_CHAIN_LNS_FIELD_NUMBER

      public static final int USE_LOCAL_CHEAPEST_INSERTION_EXPENSIVE_CHAIN_LNS_FIELD_NUMBER
      See Also:
    • USE_GLOBAL_CHEAPEST_INSERTION_CLOSE_NODES_LNS_FIELD_NUMBER

      public static final int USE_GLOBAL_CHEAPEST_INSERTION_CLOSE_NODES_LNS_FIELD_NUMBER
      See Also:
    • USE_LOCAL_CHEAPEST_INSERTION_CLOSE_NODES_LNS_FIELD_NUMBER

      public static final int USE_LOCAL_CHEAPEST_INSERTION_CLOSE_NODES_LNS_FIELD_NUMBER
      See Also:
  • Method Details

    • getDescriptor

      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
    • internalGetFieldAccessorTable

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
      Specified by:
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessage
    • getUseRelocateValue

      public int getUseRelocateValue()
       --- 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
       
      .operations_research.OptionalBoolean use_relocate = 1;
      Specified by:
      getUseRelocateValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useRelocate.
    • getUseRelocate

      public OptionalBoolean getUseRelocate()
       --- 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
       
      .operations_research.OptionalBoolean use_relocate = 1;
      Specified by:
      getUseRelocate in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useRelocate.
    • getUseRelocatePairValue

      public int getUseRelocatePairValue()
       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
       
      .operations_research.OptionalBoolean use_relocate_pair = 2;
      Specified by:
      getUseRelocatePairValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useRelocatePair.
    • getUseRelocatePair

      public OptionalBoolean getUseRelocatePair()
       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
       
      .operations_research.OptionalBoolean use_relocate_pair = 2;
      Specified by:
      getUseRelocatePair in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useRelocatePair.
    • getUseLightRelocatePairValue

      public int getUseLightRelocatePairValue()
       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
       
      .operations_research.OptionalBoolean use_light_relocate_pair = 24;
      Specified by:
      getUseLightRelocatePairValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useLightRelocatePair.
    • getUseLightRelocatePair

      public OptionalBoolean getUseLightRelocatePair()
       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
       
      .operations_research.OptionalBoolean use_light_relocate_pair = 24;
      Specified by:
      getUseLightRelocatePair in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useLightRelocatePair.
    • getUseRelocateNeighborsValue

      public int getUseRelocateNeighborsValue()
       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 extremely useful to move chains of nodes which are
       located at the same place (for instance nodes part of a same stop).
       
      .operations_research.OptionalBoolean use_relocate_neighbors = 3;
      Specified by:
      getUseRelocateNeighborsValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useRelocateNeighbors.
    • getUseRelocateNeighbors

      public OptionalBoolean getUseRelocateNeighbors()
       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 extremely useful to move chains of nodes which are
       located at the same place (for instance nodes part of a same stop).
       
      .operations_research.OptionalBoolean use_relocate_neighbors = 3;
      Specified by:
      getUseRelocateNeighbors in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useRelocateNeighbors.
    • getUseRelocateSubtripValue

      public int getUseRelocateSubtripValue()
       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
       
      .operations_research.OptionalBoolean use_relocate_subtrip = 25;
      Specified by:
      getUseRelocateSubtripValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useRelocateSubtrip.
    • getUseRelocateSubtrip

      public OptionalBoolean getUseRelocateSubtrip()
       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
       
      .operations_research.OptionalBoolean use_relocate_subtrip = 25;
      Specified by:
      getUseRelocateSubtrip in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useRelocateSubtrip.
    • getUseExchangeValue

      public int getUseExchangeValue()
       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
       
      .operations_research.OptionalBoolean use_exchange = 4;
      Specified by:
      getUseExchangeValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useExchange.
    • getUseExchange

      public OptionalBoolean getUseExchange()
       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
       
      .operations_research.OptionalBoolean use_exchange = 4;
      Specified by:
      getUseExchange in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useExchange.
    • getUseExchangePairValue

      public int getUseExchangePairValue()
       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
       
      .operations_research.OptionalBoolean use_exchange_pair = 22;
      Specified by:
      getUseExchangePairValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useExchangePair.
    • getUseExchangePair

      public OptionalBoolean getUseExchangePair()
       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
       
      .operations_research.OptionalBoolean use_exchange_pair = 22;
      Specified by:
      getUseExchangePair in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useExchangePair.
    • getUseExchangeSubtripValue

      public int getUseExchangeSubtripValue()
       Operator which exchanges subtrips associated to two pairs of nodes,
       see use_relocate_subtrip for a definition of subtrips.
       
      .operations_research.OptionalBoolean use_exchange_subtrip = 26;
      Specified by:
      getUseExchangeSubtripValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useExchangeSubtrip.
    • getUseExchangeSubtrip

      public OptionalBoolean getUseExchangeSubtrip()
       Operator which exchanges subtrips associated to two pairs of nodes,
       see use_relocate_subtrip for a definition of subtrips.
       
      .operations_research.OptionalBoolean use_exchange_subtrip = 26;
      Specified by:
      getUseExchangeSubtrip in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useExchangeSubtrip.
    • getUseCrossValue

      public int getUseCrossValue()
       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
       
      .operations_research.OptionalBoolean use_cross = 5;
      Specified by:
      getUseCrossValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useCross.
    • getUseCross

      public OptionalBoolean getUseCross()
       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
       
      .operations_research.OptionalBoolean use_cross = 5;
      Specified by:
      getUseCross in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useCross.
    • getUseCrossExchangeValue

      public int getUseCrossExchangeValue()
       Not implemented yet. TODO(b/68128619): Implement.
       
      .operations_research.OptionalBoolean use_cross_exchange = 6;
      Specified by:
      getUseCrossExchangeValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useCrossExchange.
    • getUseCrossExchange

      public OptionalBoolean getUseCrossExchange()
       Not implemented yet. TODO(b/68128619): Implement.
       
      .operations_research.OptionalBoolean use_cross_exchange = 6;
      Specified by:
      getUseCrossExchange in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useCrossExchange.
    • getUseRelocateExpensiveChainValue

      public int getUseRelocateExpensiveChainValue()
       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
       
      .operations_research.OptionalBoolean use_relocate_expensive_chain = 23;
      Specified by:
      getUseRelocateExpensiveChainValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useRelocateExpensiveChain.
    • getUseRelocateExpensiveChain

      public OptionalBoolean getUseRelocateExpensiveChain()
       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
       
      .operations_research.OptionalBoolean use_relocate_expensive_chain = 23;
      Specified by:
      getUseRelocateExpensiveChain in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useRelocateExpensiveChain.
    • getUseTwoOptValue

      public int getUseTwoOptValue()
       --- Intra-route operators ---
       Operator which reverses a subchain 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
       
      .operations_research.OptionalBoolean use_two_opt = 7;
      Specified by:
      getUseTwoOptValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useTwoOpt.
    • getUseTwoOpt

      public OptionalBoolean getUseTwoOpt()
       --- Intra-route operators ---
       Operator which reverses a subchain 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
       
      .operations_research.OptionalBoolean use_two_opt = 7;
      Specified by:
      getUseTwoOpt in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useTwoOpt.
    • getUseOrOptValue

      public int getUseOrOptValue()
       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).
       
      .operations_research.OptionalBoolean use_or_opt = 8;
      Specified by:
      getUseOrOptValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useOrOpt.
    • getUseOrOpt

      public OptionalBoolean getUseOrOpt()
       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).
       
      .operations_research.OptionalBoolean use_or_opt = 8;
      Specified by:
      getUseOrOpt in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useOrOpt.
    • getUseLinKernighanValue

      public int getUseLinKernighanValue()
       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.
       
      .operations_research.OptionalBoolean use_lin_kernighan = 9;
      Specified by:
      getUseLinKernighanValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useLinKernighan.
    • getUseLinKernighan

      public OptionalBoolean getUseLinKernighan()
       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.
       
      .operations_research.OptionalBoolean use_lin_kernighan = 9;
      Specified by:
      getUseLinKernighan in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useLinKernighan.
    • getUseTspOptValue

      public int getUseTspOptValue()
       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).
       
      .operations_research.OptionalBoolean use_tsp_opt = 10;
      Specified by:
      getUseTspOptValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useTspOpt.
    • getUseTspOpt

      public OptionalBoolean getUseTspOpt()
       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).
       
      .operations_research.OptionalBoolean use_tsp_opt = 10;
      Specified by:
      getUseTspOpt in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useTspOpt.
    • getUseMakeActiveValue

      public int getUseMakeActiveValue()
       --- 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
       
      .operations_research.OptionalBoolean use_make_active = 11;
      Specified by:
      getUseMakeActiveValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useMakeActive.
    • getUseMakeActive

      public OptionalBoolean getUseMakeActive()
       --- 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
       
      .operations_research.OptionalBoolean use_make_active = 11;
      Specified by:
      getUseMakeActive in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useMakeActive.
    • getUseRelocateAndMakeActiveValue

      public int getUseRelocateAndMakeActiveValue()
       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.
       
      .operations_research.OptionalBoolean use_relocate_and_make_active = 21;
      Specified by:
      getUseRelocateAndMakeActiveValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useRelocateAndMakeActive.
    • getUseRelocateAndMakeActive

      public OptionalBoolean getUseRelocateAndMakeActive()
       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.
       
      .operations_research.OptionalBoolean use_relocate_and_make_active = 21;
      Specified by:
      getUseRelocateAndMakeActive in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useRelocateAndMakeActive.
    • getUseExchangeAndMakeActiveValue

      public int getUseExchangeAndMakeActiveValue()
       Operator which exchanges two nodes and inserts an inactive node.
       Possible neighbors for paths 0 -> 2 -> 4, 1 -> 3 -> 6 and 5 inactive are:
       0 -> 3 -> 4, 1 -> 5 -> 2 -> 6
       0 -> 3 -> 5 -> 4, 1 -> 2 -> 6
       0 -> 5 -> 3 -> 4, 1 -> 2 -> 6
       0 -> 3 -> 4, 1 -> 2 -> 5 -> 6
       
      .operations_research.OptionalBoolean use_exchange_and_make_active = 37;
      Specified by:
      getUseExchangeAndMakeActiveValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useExchangeAndMakeActive.
    • getUseExchangeAndMakeActive

      public OptionalBoolean getUseExchangeAndMakeActive()
       Operator which exchanges two nodes and inserts an inactive node.
       Possible neighbors for paths 0 -> 2 -> 4, 1 -> 3 -> 6 and 5 inactive are:
       0 -> 3 -> 4, 1 -> 5 -> 2 -> 6
       0 -> 3 -> 5 -> 4, 1 -> 2 -> 6
       0 -> 5 -> 3 -> 4, 1 -> 2 -> 6
       0 -> 3 -> 4, 1 -> 2 -> 5 -> 6
       
      .operations_research.OptionalBoolean use_exchange_and_make_active = 37;
      Specified by:
      getUseExchangeAndMakeActive in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useExchangeAndMakeActive.
    • getUseExchangePathStartEndsAndMakeActiveValue

      public int getUseExchangePathStartEndsAndMakeActiveValue()
       Operator which exchanges the first and last nodes of two paths and makes
       a node active.
       Possible neighbors for paths 0 -> 1 -> 2 -> 7, 6 -> 3 -> 4 -> 8
       and 5 inactive are:
       0 -> 5 -> 3 -> 4 -> 7, 6 -> 1 -> 2 -> 8
       0 -> 3 -> 4 -> 7, 6 -> 1 -> 5 -> 2 -> 8
       0 -> 3 -> 4 -> 7, 6 -> 1 -> 2 -> 5 -> 8
       0 -> 3 -> 5 -> 4 -> 7, 6 -> 1 -> 2 -> 8
       0 -> 3 -> 4 -> 5 -> 7, 6 -> 1 -> 2 -> 8
       
      .operations_research.OptionalBoolean use_exchange_path_start_ends_and_make_active = 38;
      Specified by:
      getUseExchangePathStartEndsAndMakeActiveValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useExchangePathStartEndsAndMakeActive.
    • getUseExchangePathStartEndsAndMakeActive

      public OptionalBoolean getUseExchangePathStartEndsAndMakeActive()
       Operator which exchanges the first and last nodes of two paths and makes
       a node active.
       Possible neighbors for paths 0 -> 1 -> 2 -> 7, 6 -> 3 -> 4 -> 8
       and 5 inactive are:
       0 -> 5 -> 3 -> 4 -> 7, 6 -> 1 -> 2 -> 8
       0 -> 3 -> 4 -> 7, 6 -> 1 -> 5 -> 2 -> 8
       0 -> 3 -> 4 -> 7, 6 -> 1 -> 2 -> 5 -> 8
       0 -> 3 -> 5 -> 4 -> 7, 6 -> 1 -> 2 -> 8
       0 -> 3 -> 4 -> 5 -> 7, 6 -> 1 -> 2 -> 8
       
      .operations_research.OptionalBoolean use_exchange_path_start_ends_and_make_active = 38;
      Specified by:
      getUseExchangePathStartEndsAndMakeActive in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useExchangePathStartEndsAndMakeActive.
    • getUseMakeInactiveValue

      public int getUseMakeInactiveValue()
       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
       
      .operations_research.OptionalBoolean use_make_inactive = 12;
      Specified by:
      getUseMakeInactiveValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useMakeInactive.
    • getUseMakeInactive

      public OptionalBoolean getUseMakeInactive()
       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
       
      .operations_research.OptionalBoolean use_make_inactive = 12;
      Specified by:
      getUseMakeInactive in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useMakeInactive.
    • getUseMakeChainInactiveValue

      public int getUseMakeChainInactiveValue()
       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
       
      .operations_research.OptionalBoolean use_make_chain_inactive = 13;
      Specified by:
      getUseMakeChainInactiveValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useMakeChainInactive.
    • getUseMakeChainInactive

      public OptionalBoolean getUseMakeChainInactive()
       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
       
      .operations_research.OptionalBoolean use_make_chain_inactive = 13;
      Specified by:
      getUseMakeChainInactive in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useMakeChainInactive.
    • getUseSwapActiveValue

      public int getUseSwapActiveValue()
       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
       
      .operations_research.OptionalBoolean use_swap_active = 14;
      Specified by:
      getUseSwapActiveValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useSwapActive.
    • getUseSwapActive

      public OptionalBoolean getUseSwapActive()
       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
       
      .operations_research.OptionalBoolean use_swap_active = 14;
      Specified by:
      getUseSwapActive in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useSwapActive.
    • getUseSwapActiveChainValue

      public int getUseSwapActiveChainValue()
       Operator which replaces a chain of active nodes 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
       1 -> [5] -> 4 with 2 and 3 inactive
       
      .operations_research.OptionalBoolean use_swap_active_chain = 35;
      Specified by:
      getUseSwapActiveChainValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useSwapActiveChain.
    • getUseSwapActiveChain

      public OptionalBoolean getUseSwapActiveChain()
       Operator which replaces a chain of active nodes 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
       1 -> [5] -> 4 with 2 and 3 inactive
       
      .operations_research.OptionalBoolean use_swap_active_chain = 35;
      Specified by:
      getUseSwapActiveChain in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useSwapActiveChain.
    • getUseExtendedSwapActiveValue

      public int getUseExtendedSwapActiveValue()
       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
       
      .operations_research.OptionalBoolean use_extended_swap_active = 15;
      Specified by:
      getUseExtendedSwapActiveValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useExtendedSwapActive.
    • getUseExtendedSwapActive

      public OptionalBoolean getUseExtendedSwapActive()
       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
       
      .operations_research.OptionalBoolean use_extended_swap_active = 15;
      Specified by:
      getUseExtendedSwapActive in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useExtendedSwapActive.
    • getUseShortestPathSwapActiveValue

      public int getUseShortestPathSwapActiveValue()
       Swaps active nodes from node alternatives in sequence. Considers chains
       of nodes with alternatives, builds a DAG from the chain, each "layer" of
       the DAG being composed of the set of alternatives of the node at a given
       rank in the chain, fully connected to the next layer. A neighbor is built
       from the shortest path starting from the node before the chain (source),
       through the DAG to the node following the chain.
       
      .operations_research.OptionalBoolean use_shortest_path_swap_active = 34;
      Specified by:
      getUseShortestPathSwapActiveValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useShortestPathSwapActive.
    • getUseShortestPathSwapActive

      public OptionalBoolean getUseShortestPathSwapActive()
       Swaps active nodes from node alternatives in sequence. Considers chains
       of nodes with alternatives, builds a DAG from the chain, each "layer" of
       the DAG being composed of the set of alternatives of the node at a given
       rank in the chain, fully connected to the next layer. A neighbor is built
       from the shortest path starting from the node before the chain (source),
       through the DAG to the node following the chain.
       
      .operations_research.OptionalBoolean use_shortest_path_swap_active = 34;
      Specified by:
      getUseShortestPathSwapActive in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useShortestPathSwapActive.
    • getUseShortestPathTwoOptValue

      public int getUseShortestPathTwoOptValue()
       Similar to use_two_opt but returns the shortest path on the DAG of node
       alternatives of the reversed chain (cf. use_shortest_path_swap_active).
       
      .operations_research.OptionalBoolean use_shortest_path_two_opt = 36;
      Specified by:
      getUseShortestPathTwoOptValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useShortestPathTwoOpt.
    • getUseShortestPathTwoOpt

      public OptionalBoolean getUseShortestPathTwoOpt()
       Similar to use_two_opt but returns the shortest path on the DAG of node
       alternatives of the reversed chain (cf. use_shortest_path_swap_active).
       
      .operations_research.OptionalBoolean use_shortest_path_two_opt = 36;
      Specified by:
      getUseShortestPathTwoOpt in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useShortestPathTwoOpt.
    • getUseNodePairSwapActiveValue

      public int getUseNodePairSwapActiveValue()
       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
       
      .operations_research.OptionalBoolean use_node_pair_swap_active = 20;
      Specified by:
      getUseNodePairSwapActiveValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useNodePairSwapActive.
    • getUseNodePairSwapActive

      public OptionalBoolean getUseNodePairSwapActive()
       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
       
      .operations_research.OptionalBoolean use_node_pair_swap_active = 20;
      Specified by:
      getUseNodePairSwapActive in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useNodePairSwapActive.
    • getUsePathLnsValue

      public int getUsePathLnsValue()
       --- 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.
       
      .operations_research.OptionalBoolean use_path_lns = 16;
      Specified by:
      getUsePathLnsValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for usePathLns.
    • getUsePathLns

      public OptionalBoolean getUsePathLns()
       --- 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.
       
      .operations_research.OptionalBoolean use_path_lns = 16;
      Specified by:
      getUsePathLns in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The usePathLns.
    • getUseFullPathLnsValue

      public int getUseFullPathLnsValue()
       Operator which relaxes one entire path and all inactive nodes.
       
      .operations_research.OptionalBoolean use_full_path_lns = 17;
      Specified by:
      getUseFullPathLnsValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useFullPathLns.
    • getUseFullPathLns

      public OptionalBoolean getUseFullPathLns()
       Operator which relaxes one entire path and all inactive nodes.
       
      .operations_research.OptionalBoolean use_full_path_lns = 17;
      Specified by:
      getUseFullPathLns in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useFullPathLns.
    • getUseTspLnsValue

      public int getUseTspLnsValue()
       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.
       
      .operations_research.OptionalBoolean use_tsp_lns = 18;
      Specified by:
      getUseTspLnsValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useTspLns.
    • getUseTspLns

      public OptionalBoolean getUseTspLns()
       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.
       
      .operations_research.OptionalBoolean use_tsp_lns = 18;
      Specified by:
      getUseTspLns in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useTspLns.
    • getUseInactiveLnsValue

      public int getUseInactiveLnsValue()
       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 swapping arcs.
       
      .operations_research.OptionalBoolean use_inactive_lns = 19;
      Specified by:
      getUseInactiveLnsValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useInactiveLns.
    • getUseInactiveLns

      public OptionalBoolean getUseInactiveLns()
       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 swapping arcs.
       
      .operations_research.OptionalBoolean use_inactive_lns = 19;
      Specified by:
      getUseInactiveLns in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useInactiveLns.
    • getUseGlobalCheapestInsertionPathLnsValue

      public int getUseGlobalCheapestInsertionPathLnsValue()
       --- LNS-like large neighborhood search operators using heuristics ---
       Operator which makes all nodes on a route unperformed, and reinserts them
       using the GlobalCheapestInsertion heuristic.
       
      .operations_research.OptionalBoolean use_global_cheapest_insertion_path_lns = 27;
      Specified by:
      getUseGlobalCheapestInsertionPathLnsValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useGlobalCheapestInsertionPathLns.
    • getUseGlobalCheapestInsertionPathLns

      public OptionalBoolean getUseGlobalCheapestInsertionPathLns()
       --- LNS-like large neighborhood search operators using heuristics ---
       Operator which makes all nodes on a route unperformed, and reinserts them
       using the GlobalCheapestInsertion heuristic.
       
      .operations_research.OptionalBoolean use_global_cheapest_insertion_path_lns = 27;
      Specified by:
      getUseGlobalCheapestInsertionPathLns in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useGlobalCheapestInsertionPathLns.
    • getUseLocalCheapestInsertionPathLnsValue

      public int getUseLocalCheapestInsertionPathLnsValue()
       Same as above but using LocalCheapestInsertion as a heuristic.
       
      .operations_research.OptionalBoolean use_local_cheapest_insertion_path_lns = 28;
      Specified by:
      getUseLocalCheapestInsertionPathLnsValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useLocalCheapestInsertionPathLns.
    • getUseLocalCheapestInsertionPathLns

      public OptionalBoolean getUseLocalCheapestInsertionPathLns()
       Same as above but using LocalCheapestInsertion as a heuristic.
       
      .operations_research.OptionalBoolean use_local_cheapest_insertion_path_lns = 28;
      Specified by:
      getUseLocalCheapestInsertionPathLns in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useLocalCheapestInsertionPathLns.
    • getUseRelocatePathGlobalCheapestInsertionInsertUnperformedValue

      public int getUseRelocatePathGlobalCheapestInsertionInsertUnperformedValue()
       The following operator relocates an entire route to an empty path and
       then tries to insert the unperformed nodes using the global cheapest
       insertion heuristic.
       
      .operations_research.OptionalBoolean use_relocate_path_global_cheapest_insertion_insert_unperformed = 33;
      Specified by:
      getUseRelocatePathGlobalCheapestInsertionInsertUnperformedValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useRelocatePathGlobalCheapestInsertionInsertUnperformed.
    • getUseRelocatePathGlobalCheapestInsertionInsertUnperformed

      public OptionalBoolean getUseRelocatePathGlobalCheapestInsertionInsertUnperformed()
       The following operator relocates an entire route to an empty path and
       then tries to insert the unperformed nodes using the global cheapest
       insertion heuristic.
       
      .operations_research.OptionalBoolean use_relocate_path_global_cheapest_insertion_insert_unperformed = 33;
      Specified by:
      getUseRelocatePathGlobalCheapestInsertionInsertUnperformed in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useRelocatePathGlobalCheapestInsertionInsertUnperformed.
    • getUseGlobalCheapestInsertionExpensiveChainLnsValue

      public int getUseGlobalCheapestInsertionExpensiveChainLnsValue()
       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.
       
      .operations_research.OptionalBoolean use_global_cheapest_insertion_expensive_chain_lns = 29;
      Specified by:
      getUseGlobalCheapestInsertionExpensiveChainLnsValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useGlobalCheapestInsertionExpensiveChainLns.
    • getUseGlobalCheapestInsertionExpensiveChainLns

      public OptionalBoolean getUseGlobalCheapestInsertionExpensiveChainLns()
       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.
       
      .operations_research.OptionalBoolean use_global_cheapest_insertion_expensive_chain_lns = 29;
      Specified by:
      getUseGlobalCheapestInsertionExpensiveChainLns in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useGlobalCheapestInsertionExpensiveChainLns.
    • getUseLocalCheapestInsertionExpensiveChainLnsValue

      public int getUseLocalCheapestInsertionExpensiveChainLnsValue()
       Same as above but using LocalCheapestInsertion as a heuristic for
       insertion.
       
      .operations_research.OptionalBoolean use_local_cheapest_insertion_expensive_chain_lns = 30;
      Specified by:
      getUseLocalCheapestInsertionExpensiveChainLnsValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useLocalCheapestInsertionExpensiveChainLns.
    • getUseLocalCheapestInsertionExpensiveChainLns

      public OptionalBoolean getUseLocalCheapestInsertionExpensiveChainLns()
       Same as above but using LocalCheapestInsertion as a heuristic for
       insertion.
       
      .operations_research.OptionalBoolean use_local_cheapest_insertion_expensive_chain_lns = 30;
      Specified by:
      getUseLocalCheapestInsertionExpensiveChainLns in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useLocalCheapestInsertionExpensiveChainLns.
    • getUseGlobalCheapestInsertionCloseNodesLnsValue

      public int getUseGlobalCheapestInsertionCloseNodesLnsValue()
       The following operator makes a node and its
       heuristic_close_nodes_lns_num_nodes closest neighbors unperformed along
       with each of their corresponding performed pickup/delivery pairs, and
       then reinserts them using the GlobalCheapestInsertion heuristic.
       
      .operations_research.OptionalBoolean use_global_cheapest_insertion_close_nodes_lns = 31;
      Specified by:
      getUseGlobalCheapestInsertionCloseNodesLnsValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useGlobalCheapestInsertionCloseNodesLns.
    • getUseGlobalCheapestInsertionCloseNodesLns

      public OptionalBoolean getUseGlobalCheapestInsertionCloseNodesLns()
       The following operator makes a node and its
       heuristic_close_nodes_lns_num_nodes closest neighbors unperformed along
       with each of their corresponding performed pickup/delivery pairs, and
       then reinserts them using the GlobalCheapestInsertion heuristic.
       
      .operations_research.OptionalBoolean use_global_cheapest_insertion_close_nodes_lns = 31;
      Specified by:
      getUseGlobalCheapestInsertionCloseNodesLns in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useGlobalCheapestInsertionCloseNodesLns.
    • getUseLocalCheapestInsertionCloseNodesLnsValue

      public int getUseLocalCheapestInsertionCloseNodesLnsValue()
       Same as above, but insertion positions for nodes are determined by the
       LocalCheapestInsertion heuristic.
       
      .operations_research.OptionalBoolean use_local_cheapest_insertion_close_nodes_lns = 32;
      Specified by:
      getUseLocalCheapestInsertionCloseNodesLnsValue in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The enum numeric value on the wire for useLocalCheapestInsertionCloseNodesLns.
    • getUseLocalCheapestInsertionCloseNodesLns

      public OptionalBoolean getUseLocalCheapestInsertionCloseNodesLns()
       Same as above, but insertion positions for nodes are determined by the
       LocalCheapestInsertion heuristic.
       
      .operations_research.OptionalBoolean use_local_cheapest_insertion_close_nodes_lns = 32;
      Specified by:
      getUseLocalCheapestInsertionCloseNodesLns in interface RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder
      Returns:
      The useLocalCheapestInsertionCloseNodesLns.
    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessage
    • writeTo

      public void writeTo(com.google.protobuf.CodedOutputStream output) throws IOException
      Specified by:
      writeTo in interface com.google.protobuf.MessageLite
      Overrides:
      writeTo in class com.google.protobuf.GeneratedMessage
      Throws:
      IOException
    • getSerializedSize

      public int getSerializedSize()
      Specified by:
      getSerializedSize in interface com.google.protobuf.MessageLite
      Overrides:
      getSerializedSize in class com.google.protobuf.GeneratedMessage
    • equals

      public boolean equals(Object obj)
      Specified by:
      equals in interface com.google.protobuf.Message
      Overrides:
      equals in class com.google.protobuf.AbstractMessage
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface com.google.protobuf.Message
      Overrides:
      hashCode in class com.google.protobuf.AbstractMessage
    • parseFrom

      public static RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

    • parseFrom

      public static RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static RoutingSearchParameters.LocalSearchNeighborhoodOperators parseDelimitedFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static RoutingSearchParameters.LocalSearchNeighborhoodOperators parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseFrom

      public static RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(com.google.protobuf.CodedInputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • newBuilderForType

      Specified by:
      newBuilderForType in interface com.google.protobuf.Message
      Specified by:
      newBuilderForType in interface com.google.protobuf.MessageLite
    • newBuilder

    • newBuilder

    • toBuilder

      Specified by:
      toBuilder in interface com.google.protobuf.Message
      Specified by:
      toBuilder in interface com.google.protobuf.MessageLite
    • newBuilderForType

      protected RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder newBuilderForType(com.google.protobuf.AbstractMessage.BuilderParent parent)
      Overrides:
      newBuilderForType in class com.google.protobuf.AbstractMessage
    • getDefaultInstance

    • parser

      public static com.google.protobuf.Parser<RoutingSearchParameters.LocalSearchNeighborhoodOperators> parser()
    • getParserForType

      public com.google.protobuf.Parser<RoutingSearchParameters.LocalSearchNeighborhoodOperators> getParserForType()
      Specified by:
      getParserForType in interface com.google.protobuf.Message
      Specified by:
      getParserForType in interface com.google.protobuf.MessageLite
      Overrides:
      getParserForType in class com.google.protobuf.GeneratedMessage
    • getDefaultInstanceForType

      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder