Enum FirstSolutionStrategy.Value
java.lang.Object
java.lang.Enum<FirstSolutionStrategy.Value>
com.google.ortools.constraintsolver.FirstSolutionStrategy.Value
- All Implemented Interfaces:
com.google.protobuf.Internal.EnumLite
,com.google.protobuf.ProtocolMessageEnum
,Serializable
,Comparable<FirstSolutionStrategy.Value>
,java.lang.constant.Constable
- Enclosing class:
FirstSolutionStrategy
public static enum FirstSolutionStrategy.Value
extends Enum<FirstSolutionStrategy.Value>
implements com.google.protobuf.ProtocolMessageEnum
Protobuf enum
operations_research.FirstSolutionStrategy.Value
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>>
-
Enum Constant Summary
Enum ConstantsEnum ConstantDescription--- Path insertion heuristics --- Make all nodes inactive.Lets the solver detect which strategy to use according to the model being solved.Iteratively build a solution by inserting the cheapest node at its cheapest position; the cost of insertion is based on the global cost function of the routing model.Christofides algorithm (actually a variant of the Christofides algorithm using a maximal matching instead of a maximum matching, which does not guarantee the 3/2 factor of the approximation on a metric travelling salesman).Same as PATH_CHEAPEST_ARC, except that arc costs are evaluated using the function passed to RoutingModel::SetFirstSolutionEvaluator() (cf. routing.h).Select the first node with an unbound successor and connect it to the first available node.--- Variable-based heuristics --- Iteratively connect two nodes which produce the cheapest route segment.Select the first node with an unbound successor and connect it to the node which produces the cheapest route segment.Same as LOCAL_CHEAPEST_INSERTION except that the cost of insertion is based on the routing model cost function instead of arc costs only.Iteratively build a solution by inserting each node at its cheapest position; the cost of insertion is based on the arc cost function.Iteratively build a solution by inserting the cheapest node at its cheapest position; the cost of insertion is based on the arc cost function.Parallel version of the Savings algorithm.--- Path addition heuristics --- Starting from a route "start" node, connect it to the node which produces the cheapest route segment, then extend the route by iterating on the last node added to the route.Same as PATH_CHEAPEST_ARC, but arcs are evaluated with a comparison-based selector which will favor the most constrained arc first.Savings algorithm (Clarke & Wright).Iteratively build a solution by constructing routes sequentially, for each route inserting the cheapest node at its cheapest position until the route is completed; the cost of insertion is based on the arc cost function.Sweep algorithm (Wren & Holliday).See the homonymous value in LocalSearchMetaheuristic. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
--- Path insertion heuristics --- Make all nodes inactive.static final int
Lets the solver detect which strategy to use according to the model being solved.static final int
Iteratively build a solution by inserting the cheapest node at its cheapest position; the cost of insertion is based on the global cost function of the routing model.static final int
Christofides algorithm (actually a variant of the Christofides algorithm using a maximal matching instead of a maximum matching, which does not guarantee the 3/2 factor of the approximation on a metric travelling salesman).static final int
Same as PATH_CHEAPEST_ARC, except that arc costs are evaluated using the function passed to RoutingModel::SetFirstSolutionEvaluator() (cf. routing.h).static final int
Select the first node with an unbound successor and connect it to the first available node.static final int
--- Variable-based heuristics --- Iteratively connect two nodes which produce the cheapest route segment.static final int
Select the first node with an unbound successor and connect it to the node which produces the cheapest route segment.static final int
Same as LOCAL_CHEAPEST_INSERTION except that the cost of insertion is based on the routing model cost function instead of arc costs only.static final int
Iteratively build a solution by inserting each node at its cheapest position; the cost of insertion is based on the arc cost function.static final int
Iteratively build a solution by inserting the cheapest node at its cheapest position; the cost of insertion is based on the arc cost function.static final int
Parallel version of the Savings algorithm.static final int
--- Path addition heuristics --- Starting from a route "start" node, connect it to the node which produces the cheapest route segment, then extend the route by iterating on the last node added to the route.static final int
Same as PATH_CHEAPEST_ARC, but arcs are evaluated with a comparison-based selector which will favor the most constrained arc first.static final int
Savings algorithm (Clarke & Wright).static final int
Iteratively build a solution by constructing routes sequentially, for each route inserting the cheapest node at its cheapest position until the route is completed; the cost of insertion is based on the arc cost function.static final int
Sweep algorithm (Wren & Holliday).static final int
See the homonymous value in LocalSearchMetaheuristic. -
Method Summary
Modifier and TypeMethodDescriptionstatic FirstSolutionStrategy.Value
forNumber
(int value) static com.google.protobuf.Descriptors.EnumDescriptor
final com.google.protobuf.Descriptors.EnumDescriptor
final int
final com.google.protobuf.Descriptors.EnumValueDescriptor
static com.google.protobuf.Internal.EnumLiteMap
<FirstSolutionStrategy.Value> static FirstSolutionStrategy.Value
valueOf
(int value) Deprecated.static FirstSolutionStrategy.Value
valueOf
(com.google.protobuf.Descriptors.EnumValueDescriptor desc) Returns the enum constant of this type with the specified name.static FirstSolutionStrategy.Value
Returns the enum constant of this type with the specified name.static FirstSolutionStrategy.Value[]
values()
Returns an array containing the constants of this enum type, in the order they are declared.
-
Enum Constant Details
-
UNSET
See the homonymous value in LocalSearchMetaheuristic.
UNSET = 0;
-
AUTOMATIC
Lets the solver detect which strategy to use according to the model being solved.
AUTOMATIC = 15;
-
PATH_CHEAPEST_ARC
--- Path addition heuristics --- Starting from a route "start" node, connect it to the node which produces the cheapest route segment, then extend the route by iterating on the last node added to the route.
PATH_CHEAPEST_ARC = 3;
-
PATH_MOST_CONSTRAINED_ARC
Same as PATH_CHEAPEST_ARC, but arcs are evaluated with a comparison-based selector which will favor the most constrained arc first. To assign a selector to the routing model, see RoutingModel::ArcIsMoreConstrainedThanArc() in routing.h for details.
PATH_MOST_CONSTRAINED_ARC = 4;
-
EVALUATOR_STRATEGY
Same as PATH_CHEAPEST_ARC, except that arc costs are evaluated using the function passed to RoutingModel::SetFirstSolutionEvaluator() (cf. routing.h).
EVALUATOR_STRATEGY = 5;
-
SAVINGS
Savings algorithm (Clarke & Wright). Reference: Clarke, G. & Wright, J.W.: "Scheduling of Vehicles from a Central Depot to a Number of Delivery Points", Operations Research, Vol. 12, 1964, pp. 568-581
SAVINGS = 10;
-
PARALLEL_SAVINGS
Parallel version of the Savings algorithm. Instead of extending a single route until it is no longer possible, the parallel version iteratively considers the next most improving feasible saving and possibly builds several routes in parallel.
PARALLEL_SAVINGS = 17;
-
SWEEP
Sweep algorithm (Wren & Holliday). Reference: Anthony Wren & Alan Holliday: Computer Scheduling of Vehicles from One or More Depots to a Number of Delivery Points Operational Research Quarterly (1970-1977), Vol. 23, No. 3 (Sep., 1972), pp. 333-344
SWEEP = 11;
-
CHRISTOFIDES
Christofides algorithm (actually a variant of the Christofides algorithm using a maximal matching instead of a maximum matching, which does not guarantee the 3/2 factor of the approximation on a metric travelling salesman). Works on generic vehicle routing models by extending a route until no nodes can be inserted on it. Reference: Nicos Christofides, Worst-case analysis of a new heuristic for the travelling salesman problem, Report 388, Graduate School of Industrial Administration, CMU, 1976.
CHRISTOFIDES = 13;
-
ALL_UNPERFORMED
--- Path insertion heuristics --- Make all nodes inactive. Only finds a solution if nodes are optional (are element of a disjunction constraint with a finite penalty cost).
ALL_UNPERFORMED = 6;
-
BEST_INSERTION
Iteratively build a solution by inserting the cheapest node at its cheapest position; the cost of insertion is based on the global cost function of the routing model. As of 2/2012, only works on models with optional nodes (with finite penalty costs).
BEST_INSERTION = 7;
-
PARALLEL_CHEAPEST_INSERTION
Iteratively build a solution by inserting the cheapest node at its cheapest position; the cost of insertion is based on the arc cost function. Is faster than BEST_INSERTION.
PARALLEL_CHEAPEST_INSERTION = 8;
-
SEQUENTIAL_CHEAPEST_INSERTION
Iteratively build a solution by constructing routes sequentially, for each route inserting the cheapest node at its cheapest position until the route is completed; the cost of insertion is based on the arc cost function. Is faster than PARALLEL_CHEAPEST_INSERTION.
SEQUENTIAL_CHEAPEST_INSERTION = 14;
-
LOCAL_CHEAPEST_INSERTION
Iteratively build a solution by inserting each node at its cheapest position; the cost of insertion is based on the arc cost function. Differs from PARALLEL_CHEAPEST_INSERTION by the node selected for insertion; here nodes are considered in decreasing order of distance to the start/ends of the routes, i.e. farthest nodes are inserted first. Is faster than SEQUENTIAL_CHEAPEST_INSERTION.
LOCAL_CHEAPEST_INSERTION = 9;
-
LOCAL_CHEAPEST_COST_INSERTION
Same as LOCAL_CHEAPEST_INSERTION except that the cost of insertion is based on the routing model cost function instead of arc costs only.
LOCAL_CHEAPEST_COST_INSERTION = 16;
-
GLOBAL_CHEAPEST_ARC
--- Variable-based heuristics --- Iteratively connect two nodes which produce the cheapest route segment.
GLOBAL_CHEAPEST_ARC = 1;
-
LOCAL_CHEAPEST_ARC
Select the first node with an unbound successor and connect it to the node which produces the cheapest route segment.
LOCAL_CHEAPEST_ARC = 2;
-
FIRST_UNBOUND_MIN_VALUE
Select the first node with an unbound successor and connect it to the first available node. This is equivalent to the CHOOSE_FIRST_UNBOUND strategy combined with ASSIGN_MIN_VALUE (cf. constraint_solver.h).
FIRST_UNBOUND_MIN_VALUE = 12;
-
UNRECOGNIZED
-
-
Field Details
-
UNSET_VALUE
public static final int UNSET_VALUESee the homonymous value in LocalSearchMetaheuristic.
UNSET = 0;
- See Also:
-
AUTOMATIC_VALUE
public static final int AUTOMATIC_VALUELets the solver detect which strategy to use according to the model being solved.
AUTOMATIC = 15;
- See Also:
-
PATH_CHEAPEST_ARC_VALUE
public static final int PATH_CHEAPEST_ARC_VALUE--- Path addition heuristics --- Starting from a route "start" node, connect it to the node which produces the cheapest route segment, then extend the route by iterating on the last node added to the route.
PATH_CHEAPEST_ARC = 3;
- See Also:
-
PATH_MOST_CONSTRAINED_ARC_VALUE
public static final int PATH_MOST_CONSTRAINED_ARC_VALUESame as PATH_CHEAPEST_ARC, but arcs are evaluated with a comparison-based selector which will favor the most constrained arc first. To assign a selector to the routing model, see RoutingModel::ArcIsMoreConstrainedThanArc() in routing.h for details.
PATH_MOST_CONSTRAINED_ARC = 4;
- See Also:
-
EVALUATOR_STRATEGY_VALUE
public static final int EVALUATOR_STRATEGY_VALUESame as PATH_CHEAPEST_ARC, except that arc costs are evaluated using the function passed to RoutingModel::SetFirstSolutionEvaluator() (cf. routing.h).
EVALUATOR_STRATEGY = 5;
- See Also:
-
SAVINGS_VALUE
public static final int SAVINGS_VALUESavings algorithm (Clarke & Wright). Reference: Clarke, G. & Wright, J.W.: "Scheduling of Vehicles from a Central Depot to a Number of Delivery Points", Operations Research, Vol. 12, 1964, pp. 568-581
SAVINGS = 10;
- See Also:
-
PARALLEL_SAVINGS_VALUE
public static final int PARALLEL_SAVINGS_VALUEParallel version of the Savings algorithm. Instead of extending a single route until it is no longer possible, the parallel version iteratively considers the next most improving feasible saving and possibly builds several routes in parallel.
PARALLEL_SAVINGS = 17;
- See Also:
-
SWEEP_VALUE
public static final int SWEEP_VALUESweep algorithm (Wren & Holliday). Reference: Anthony Wren & Alan Holliday: Computer Scheduling of Vehicles from One or More Depots to a Number of Delivery Points Operational Research Quarterly (1970-1977), Vol. 23, No. 3 (Sep., 1972), pp. 333-344
SWEEP = 11;
- See Also:
-
CHRISTOFIDES_VALUE
public static final int CHRISTOFIDES_VALUEChristofides algorithm (actually a variant of the Christofides algorithm using a maximal matching instead of a maximum matching, which does not guarantee the 3/2 factor of the approximation on a metric travelling salesman). Works on generic vehicle routing models by extending a route until no nodes can be inserted on it. Reference: Nicos Christofides, Worst-case analysis of a new heuristic for the travelling salesman problem, Report 388, Graduate School of Industrial Administration, CMU, 1976.
CHRISTOFIDES = 13;
- See Also:
-
ALL_UNPERFORMED_VALUE
public static final int ALL_UNPERFORMED_VALUE--- Path insertion heuristics --- Make all nodes inactive. Only finds a solution if nodes are optional (are element of a disjunction constraint with a finite penalty cost).
ALL_UNPERFORMED = 6;
- See Also:
-
BEST_INSERTION_VALUE
public static final int BEST_INSERTION_VALUEIteratively build a solution by inserting the cheapest node at its cheapest position; the cost of insertion is based on the global cost function of the routing model. As of 2/2012, only works on models with optional nodes (with finite penalty costs).
BEST_INSERTION = 7;
- See Also:
-
PARALLEL_CHEAPEST_INSERTION_VALUE
public static final int PARALLEL_CHEAPEST_INSERTION_VALUEIteratively build a solution by inserting the cheapest node at its cheapest position; the cost of insertion is based on the arc cost function. Is faster than BEST_INSERTION.
PARALLEL_CHEAPEST_INSERTION = 8;
- See Also:
-
SEQUENTIAL_CHEAPEST_INSERTION_VALUE
public static final int SEQUENTIAL_CHEAPEST_INSERTION_VALUEIteratively build a solution by constructing routes sequentially, for each route inserting the cheapest node at its cheapest position until the route is completed; the cost of insertion is based on the arc cost function. Is faster than PARALLEL_CHEAPEST_INSERTION.
SEQUENTIAL_CHEAPEST_INSERTION = 14;
- See Also:
-
LOCAL_CHEAPEST_INSERTION_VALUE
public static final int LOCAL_CHEAPEST_INSERTION_VALUEIteratively build a solution by inserting each node at its cheapest position; the cost of insertion is based on the arc cost function. Differs from PARALLEL_CHEAPEST_INSERTION by the node selected for insertion; here nodes are considered in decreasing order of distance to the start/ends of the routes, i.e. farthest nodes are inserted first. Is faster than SEQUENTIAL_CHEAPEST_INSERTION.
LOCAL_CHEAPEST_INSERTION = 9;
- See Also:
-
LOCAL_CHEAPEST_COST_INSERTION_VALUE
public static final int LOCAL_CHEAPEST_COST_INSERTION_VALUESame as LOCAL_CHEAPEST_INSERTION except that the cost of insertion is based on the routing model cost function instead of arc costs only.
LOCAL_CHEAPEST_COST_INSERTION = 16;
- See Also:
-
GLOBAL_CHEAPEST_ARC_VALUE
public static final int GLOBAL_CHEAPEST_ARC_VALUE--- Variable-based heuristics --- Iteratively connect two nodes which produce the cheapest route segment.
GLOBAL_CHEAPEST_ARC = 1;
- See Also:
-
LOCAL_CHEAPEST_ARC_VALUE
public static final int LOCAL_CHEAPEST_ARC_VALUESelect the first node with an unbound successor and connect it to the node which produces the cheapest route segment.
LOCAL_CHEAPEST_ARC = 2;
- See Also:
-
FIRST_UNBOUND_MIN_VALUE_VALUE
public static final int FIRST_UNBOUND_MIN_VALUE_VALUESelect the first node with an unbound successor and connect it to the first available node. This is equivalent to the CHOOSE_FIRST_UNBOUND strategy combined with ASSIGN_MIN_VALUE (cf. constraint_solver.h).
FIRST_UNBOUND_MIN_VALUE = 12;
- See Also:
-
-
Method Details
-
values
Returns an array containing the constants of this enum type, in the order they are declared.- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException
- if this enum type has no constant with the specified nameNullPointerException
- if the argument is null
-
getNumber
public final int getNumber()- Specified by:
getNumber
in interfacecom.google.protobuf.Internal.EnumLite
- Specified by:
getNumber
in interfacecom.google.protobuf.ProtocolMessageEnum
-
valueOf
Deprecated.Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
value
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException
- if this enum type has no constant with the specified nameNullPointerException
- if the argument is null
-
forNumber
- Parameters:
value
- The numeric wire value of the corresponding enum entry.- Returns:
- The enum associated with the given numeric wire value.
-
internalGetValueMap
public static com.google.protobuf.Internal.EnumLiteMap<FirstSolutionStrategy.Value> internalGetValueMap() -
getValueDescriptor
public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()- Specified by:
getValueDescriptor
in interfacecom.google.protobuf.ProtocolMessageEnum
-
getDescriptorForType
public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()- Specified by:
getDescriptorForType
in interfacecom.google.protobuf.ProtocolMessageEnum
-
getDescriptor
public static com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() -
valueOf
public static FirstSolutionStrategy.Value valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
desc
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException
- if this enum type has no constant with the specified nameNullPointerException
- if the argument is null
-