mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
make job insertion more flexible
This commit is contained in:
parent
89f864492f
commit
d6e5ca38a9
2 changed files with 42 additions and 0 deletions
|
|
@ -76,6 +76,12 @@ public class InsertionStrategyBuilder {
|
|||
|
||||
private boolean isFastRegret = false;
|
||||
|
||||
private JobInsertionCostsCalculatorFactory shipmentInsertionCalculatorFactory;
|
||||
|
||||
private JobInsertionCostsCalculatorFactory serviceInsertionCalculatorFactory;
|
||||
|
||||
private JobInsertionCostsCalculatorFactory breakInsertionCalculatorFactory;
|
||||
|
||||
public InsertionStrategyBuilder(VehicleRoutingProblem vrp, VehicleFleetManager vehicleFleetManager, StateManager stateManager, ConstraintManager constraintManager) {
|
||||
super();
|
||||
this.vrp = vrp;
|
||||
|
|
@ -84,6 +90,18 @@ public class InsertionStrategyBuilder {
|
|||
this.fleetManager = vehicleFleetManager;
|
||||
}
|
||||
|
||||
public void setShipmentInsertionCalculatorFactory(JobInsertionCostsCalculatorFactory shipmentInsertionCalculatorFactory) {
|
||||
this.shipmentInsertionCalculatorFactory = shipmentInsertionCalculatorFactory;
|
||||
}
|
||||
|
||||
public void setServiceInsertionCalculator(JobInsertionCostsCalculatorFactory serviceInsertionCalculator) {
|
||||
this.serviceInsertionCalculatorFactory = serviceInsertionCalculator;
|
||||
}
|
||||
|
||||
public void setBreakInsertionCalculator(JobInsertionCostsCalculatorFactory breakInsertionCalculator) {
|
||||
this.breakInsertionCalculatorFactory = breakInsertionCalculator;
|
||||
}
|
||||
|
||||
public InsertionStrategyBuilder setInsertionStrategy(Strategy strategy) {
|
||||
this.strategy = strategy;
|
||||
return this;
|
||||
|
|
@ -155,6 +173,12 @@ public class InsertionStrategyBuilder {
|
|||
} else {
|
||||
calcBuilder.setRouteLevel(forwaredLooking, memory, addDefaultCostCalc);
|
||||
}
|
||||
if (shipmentInsertionCalculatorFactory != null)
|
||||
calcBuilder.setShipmentCalculatorFactory(shipmentInsertionCalculatorFactory);
|
||||
if (serviceInsertionCalculatorFactory != null)
|
||||
calcBuilder.setServiceCalculatorFactory(serviceInsertionCalculatorFactory);
|
||||
if (breakInsertionCalculatorFactory != null)
|
||||
calcBuilder.setBreakCalculatorFactory(breakInsertionCalculatorFactory);
|
||||
calcBuilder.setConstraintManager(constraintManager);
|
||||
calcBuilder.setStateManager(stateManager);
|
||||
calcBuilder.setVehicleRoutingProblem(vrp);
|
||||
|
|
|
|||
|
|
@ -130,6 +130,24 @@ public class JobInsertionCostsCalculatorBuilder {
|
|||
this.algorithmListeners = algorithmListeners;
|
||||
}
|
||||
|
||||
public JobInsertionCostsCalculatorBuilder setShipmentCalculatorFactory(JobInsertionCostsCalculatorFactory shipmentCalculatorFactory) {
|
||||
if (shipmentCalculatorFactory == null) return this;
|
||||
this.shipmentCalculatorFactory = shipmentCalculatorFactory;
|
||||
return this;
|
||||
}
|
||||
|
||||
public JobInsertionCostsCalculatorBuilder setServiceCalculatorFactory(JobInsertionCostsCalculatorFactory serviceCalculatorFactory) {
|
||||
if (serviceCalculatorFactory == null) return this;
|
||||
this.serviceCalculatorFactory = serviceCalculatorFactory;
|
||||
return this;
|
||||
}
|
||||
|
||||
public JobInsertionCostsCalculatorBuilder setBreakCalculatorFactory(JobInsertionCostsCalculatorFactory breakCalculatorFactory) {
|
||||
if (breakCalculatorFactory == null) return this;
|
||||
this.breakCalculatorFactory = breakCalculatorFactory;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets activityStates. MUST be set.
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue