Class Jsprit.Builder
java.lang.Object
com.graphhopper.jsprit.core.algorithm.box.Jsprit.Builder
- Enclosing class:
Jsprit
-
Method Summary
Modifier and TypeMethodDescriptionaddCoreStateAndConstraintStuff(boolean addConstraints) addInsertionOperator(double weight, InsertionOperatorFactory factory) Adds an insertion operator with the specified weight.addInsertionOperator(double weight, InsertionOperatorFactory factory, String name) Adds an insertion operator with a name for identification.addRuinOperator(double weight, RuinOperatorFactory factory) Adds a ruin operator with the specified weight.addRuinOperator(double weight, RuinOperatorFactory factory, String name) Adds a ruin operator with a name for identification.addSearchStrategy(SearchStrategy searchStrategy, double weight) addSearchStrategy(String name, RuinStrategy ruin, InsertionStrategy insertion, double weight) Adds a custom search strategy by specifying only the ruin and insertion components.booleanReturns true if independent operator selection mode is enabled.static Jsprit.BuildersetActivityInsertionCalculator(ActivityInsertionCostsCalculator activityInsertionCalculator) setCustomAcceptor(SolutionAcceptor acceptor) setExecutorService(ExecutorService es, int noThreads) setJobFilter(JobFilter jobFilter) setObjectiveFunction(SolutionCostCalculator objectiveFunction) setProperty(Jsprit.InsertionOperator insertionOperator, String value) setProperty(Jsprit.Parameter parameter, String value) setProperty(Jsprit.RuinOperator ruinOperator, String value) setProperty(Jsprit.Strategy strategy, String value) setProperty(String key, String value) setRegretScorer(ScoringFunction scoringFunction) setRegretScoringFunction(RegretScoringFunction scoringFunction) Set a custom service insertion calculator factorySet a custom shipment insertion calculator factorysetStateAndConstraintManager(StateManager stateManager, ConstraintManager constraintManager) setVehicleFleetManager(VehicleFleetManager fleetManager)
-
Method Details
-
newInstance
-
addSearchStrategy
-
addSearchStrategy
public Jsprit.Builder addSearchStrategy(String name, RuinStrategy ruin, InsertionStrategy insertion, double weight) Adds a custom search strategy by specifying only the ruin and insertion components. The strategy will be assembled using Jsprit's shared acceptor and objective function.- Parameters:
name- the strategy name/idruin- the ruin strategyinsertion- the insertion strategyweight- the probability weight for this strategy- Returns:
- builder for chaining
-
setVehicleFleetManager
-
setExecutorService
-
setCustomAcceptor
-
setRandom
-
setProperty
-
setProperty
-
setProperty
-
setProperty
-
setProperty
-
setStateAndConstraintManager
public Jsprit.Builder setStateAndConstraintManager(StateManager stateManager, ConstraintManager constraintManager) -
setObjectiveFunction
-
addCoreStateAndConstraintStuff
-
setActivityInsertionCalculator
public Jsprit.Builder setActivityInsertionCalculator(ActivityInsertionCostsCalculator activityInsertionCalculator) -
setRegretScorer
-
setRegretScoringFunction
-
setJobFilter
-
setServiceInsertionCalculatorFactory
public Jsprit.Builder setServiceInsertionCalculatorFactory(JobInsertionCostsCalculatorFactory factory) Set a custom service insertion calculator factory -
setShipmentInsertionCalculatorFactory
public Jsprit.Builder setShipmentInsertionCalculatorFactory(JobInsertionCostsCalculatorFactory factory) Set a custom shipment insertion calculator factory -
addInsertionOperator
Adds an insertion operator with the specified weight.When insertion operators are registered, they are selected independently of ruin operators during each iteration. This allows fine-grained control over the search strategy composition.
Example:
Jsprit.Builder.newInstance(vrp) .addInsertionOperator(0.7, Insertion.regretFast()) // Fast, filtered .addInsertionOperator(0.3, Insertion.regret()) // Thorough, no filter .buildAlgorithm();- Parameters:
weight- the selection weight (higher = more likely to be selected)factory- the insertion operator factory- Returns:
- this builder for chaining
- See Also:
-
addInsertionOperator
public Jsprit.Builder addInsertionOperator(double weight, InsertionOperatorFactory factory, String name) Adds an insertion operator with a name for identification.- Parameters:
weight- the selection weightfactory- the insertion operator factoryname- the operator name (for logging/debugging)- Returns:
- this builder for chaining
-
addRuinOperator
Adds a ruin operator with the specified weight.When ruin operators are registered, they are selected independently of insertion operators during each iteration.
Example:
Jsprit.Builder.newInstance(vrp) .addRuinOperator(0.3, Ruin.random(0.3)) .addRuinOperator(0.3, Ruin.radial(0.3)) .addRuinOperator(0.2, Ruin.cluster()) .addRuinOperator(0.2, Ruin.kruskalCluster()) .buildAlgorithm();- Parameters:
weight- the selection weight (higher = more likely to be selected)factory- the ruin operator factory- Returns:
- this builder for chaining
- See Also:
-
addRuinOperator
Adds a ruin operator with a name for identification.- Parameters:
weight- the selection weightfactory- the ruin operator factoryname- the operator name (for logging/debugging)- Returns:
- this builder for chaining
-
isIndependentOperatorMode
public boolean isIndependentOperatorMode()Returns true if independent operator selection mode is enabled. This is the case when either insertion or ruin operators have been registered. -
buildAlgorithm
-