mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
modify solutionCostCalculation internally
This commit is contained in:
parent
432f2073d0
commit
fe0e0f54b0
3 changed files with 18 additions and 5 deletions
|
|
@ -212,7 +212,7 @@ class StateUpdates {
|
||||||
|
|
||||||
totalOperationCost += transportCost;
|
totalOperationCost += transportCost;
|
||||||
totalOperationCost += actCost;
|
totalOperationCost += actCost;
|
||||||
totalOperationCost += getFixCosts();
|
// totalOperationCost += getFixCosts();
|
||||||
|
|
||||||
states.putRouteState(vehicleRoute, StateTypes.COSTS, new StateImpl(totalOperationCost));
|
states.putRouteState(vehicleRoute, StateTypes.COSTS, new StateImpl(totalOperationCost));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,7 @@ import basics.algo.VehicleRoutingAlgorithmListeners.PrioritizedVRAListener;
|
||||||
import basics.algo.VehicleRoutingAlgorithmListeners.Priority;
|
import basics.algo.VehicleRoutingAlgorithmListeners.Priority;
|
||||||
import basics.io.AlgorithmConfig;
|
import basics.io.AlgorithmConfig;
|
||||||
import basics.io.AlgorithmConfigXmlReader;
|
import basics.io.AlgorithmConfigXmlReader;
|
||||||
|
import basics.route.Vehicle;
|
||||||
import basics.route.VehicleRoute;
|
import basics.route.VehicleRoute;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -536,10 +537,16 @@ public class VehicleRoutingAlgorithms {
|
||||||
public void calculateCosts(VehicleRoutingProblemSolution solution) {
|
public void calculateCosts(VehicleRoutingProblemSolution solution) {
|
||||||
double costs = 0.0;
|
double costs = 0.0;
|
||||||
for(VehicleRoute route : solution.getRoutes()){
|
for(VehicleRoute route : solution.getRoutes()){
|
||||||
costs += stateManager.getRouteState(route, StateTypes.COSTS).toDouble();
|
costs += stateManager.getRouteState(route, StateTypes.COSTS).toDouble() + getFixedCosts(route.getVehicle());
|
||||||
}
|
}
|
||||||
solution.setCost(costs);
|
solution.setCost(costs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private double getFixedCosts(Vehicle vehicle) {
|
||||||
|
if(vehicle == null) return 0.0;
|
||||||
|
if(vehicle.getType() == null) return 0.0;
|
||||||
|
return vehicle.getType().getVehicleCostParams().fix;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
return calc;
|
return calc;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -187,7 +187,7 @@ public class GendreauPostOptTest {
|
||||||
// routes.add(new VehicleRoute(getEmptyTour(),getDriver(),getNoVehicle()));
|
// routes.add(new VehicleRoute(getEmptyTour(),getDriver(),getNoVehicle()));
|
||||||
// routes.add(new VehicleRoute(getEmptyTour(),getDriver(),getNoVehicle()));
|
// routes.add(new VehicleRoute(getEmptyTour(),getDriver(),getNoVehicle()));
|
||||||
|
|
||||||
VehicleRoutingProblemSolution sol = new VehicleRoutingProblemSolution(routes, states.getRouteState(route, StateTypes.COSTS).toDouble());
|
VehicleRoutingProblemSolution sol = new VehicleRoutingProblemSolution(routes, states.getRouteState(route, StateTypes.COSTS).toDouble() + getFixedCosts(routes));
|
||||||
|
|
||||||
assertEquals(110.0, sol.getCost(), 0.5);
|
assertEquals(110.0, sol.getCost(), 0.5);
|
||||||
|
|
||||||
|
|
@ -209,10 +209,16 @@ public class GendreauPostOptTest {
|
||||||
assertEquals(80.0,newSolution.getCost(),0.5);
|
assertEquals(80.0,newSolution.getCost(),0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private double getFixedCosts(Collection<VehicleRoute> routes) {
|
||||||
|
double c = 0.0;
|
||||||
|
for(VehicleRoute r : routes){ c += r.getVehicle().getType().getVehicleCostParams().fix; }
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
private double getCosts(VehicleRoutingProblemSolution newSolution, StateManagerImpl states) {
|
private double getCosts(VehicleRoutingProblemSolution newSolution, StateManagerImpl states) {
|
||||||
double c = 0.0;
|
double c = 0.0;
|
||||||
for(VehicleRoute r : newSolution.getRoutes()){
|
for(VehicleRoute r : newSolution.getRoutes()){
|
||||||
c += states.getRouteState(r, StateTypes.COSTS).toDouble();
|
c += states.getRouteState(r, StateTypes.COSTS).toDouble() + r.getVehicle().getType().getVehicleCostParams().fix;
|
||||||
}
|
}
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue