1
0
Fork 0
mirror of https://github.com/graphhopper/jsprit.git synced 2020-01-24 07:45:05 +01:00

relax api

This commit is contained in:
Stefan Schroeder 2013-10-10 17:47:21 +02:00
parent b0d0736c22
commit 2c26e0041f
2 changed files with 11 additions and 9 deletions

View file

@ -6,7 +6,7 @@ import basics.route.TourActivity;
import basics.route.Vehicle; import basics.route.Vehicle;
import basics.route.VehicleRoute; import basics.route.VehicleRoute;
class ActivityTimeTracker implements ActivityVisitor{ public class ActivityTimeTracker implements ActivityVisitor{
private ForwardTransportTime transportTime; private ForwardTransportTime transportTime;

View file

@ -1,7 +1,6 @@
package algorithms; package algorithms;
import basics.VehicleRoutingProblem; import basics.VehicleRoutingProblem;
import basics.VehicleRoutingProblem.FleetSize;
public class BestInsertionBuilder implements InsertionStrategyBuilder{ public class BestInsertionBuilder implements InsertionStrategyBuilder{
@ -14,6 +13,10 @@ public class BestInsertionBuilder implements InsertionStrategyBuilder{
private ConstraintManager constraintManager; private ConstraintManager constraintManager;
private VehicleFleetManager fleetManager; private VehicleFleetManager fleetManager;
private double weightOfFixedCosts;
private boolean considerFixedCosts = false;
public BestInsertionBuilder(VehicleRoutingProblem vrp, StateManager stateManager) { public BestInsertionBuilder(VehicleRoutingProblem vrp, StateManager stateManager) {
super(); super();
@ -36,6 +39,11 @@ public class BestInsertionBuilder implements InsertionStrategyBuilder{
local = true; local = true;
}; };
public void considerFixedCosts(double weightOfFixedCosts){
this.weightOfFixedCosts = weightOfFixedCosts;
this.considerFixedCosts = true;
}
public void setFleetManager(VehicleFleetManager fleetManager){ public void setFleetManager(VehicleFleetManager fleetManager){
this.fleetManager = fleetManager; this.fleetManager = fleetManager;
} }
@ -52,15 +60,9 @@ public class BestInsertionBuilder implements InsertionStrategyBuilder{
calcBuilder.setStates(stateManager); calcBuilder.setStates(stateManager);
calcBuilder.setVehicleRoutingProblem(vrp); calcBuilder.setVehicleRoutingProblem(vrp);
calcBuilder.setVehicleFleetManager(fleetManager); calcBuilder.setVehicleFleetManager(fleetManager);
if(considerFixedCosts) calcBuilder.considerFixedCosts(weightOfFixedCosts);
JobInsertionCalculator jobInsertions = calcBuilder.build(); JobInsertionCalculator jobInsertions = calcBuilder.build();
return new BestInsertion(jobInsertions); return new BestInsertion(jobInsertions);
} }
private VehicleFleetManager createFleetManager(VehicleRoutingProblem vrp) {
if(vrp.getFleetSize().equals(FleetSize.INFINITE)){
return new InfiniteVehicles(vrp.getVehicles());
}
else return new VehicleFleetManagerImpl(vrp.getVehicles());
}
} }