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

adapt readers to changes in VehicleTypeBuilder and PenaltyVehicleType

This commit is contained in:
oblonski 2013-06-21 02:51:34 +02:00
parent d4169d7797
commit 8b01497cfc
4 changed files with 11 additions and 11 deletions

View file

@ -93,7 +93,7 @@ public class ChristophidesReader {
else if(counter == 1){ else if(counter == 1){
String id = Integer.valueOf(counter).toString(); String id = Integer.valueOf(counter).toString();
Coordinate depotCoord = makeCoord(tokens[0].trim(),tokens[1].trim()); Coordinate depotCoord = makeCoord(tokens[0].trim(),tokens[1].trim());
VehicleTypeImpl vehicleType = VehicleType.Builder.newInstance("christophidesType", vehicleCapacity). VehicleTypeImpl vehicleType = VehicleTypeImpl.Builder.newInstance("christophidesType", vehicleCapacity).
setCostPerDistance(1.0).setFixedCost(100).build(); setCostPerDistance(1.0).setFixedCost(100).build();
Vehicle vehicle = VehicleImpl.Builder.newInstance("christophidesVehicle").setLatestArrival(endTime).setLocationId(id).setLocationCoord(depotCoord). Vehicle vehicle = VehicleImpl.Builder.newInstance("christophidesVehicle").setLatestArrival(endTime).setLocationId(id).setLocationCoord(depotCoord).
setType(vehicleType).build(); setType(vehicleType).build();

View file

@ -34,6 +34,7 @@ import readers.CordeauReader;
import util.Coordinate; import util.Coordinate;
import basics.VehicleRoutingProblem.FleetSize; import basics.VehicleRoutingProblem.FleetSize;
import basics.route.PenaltyVehicleType;
import basics.route.VehicleImpl; import basics.route.VehicleImpl;
import basics.route.VehicleImpl.Builder; import basics.route.VehicleImpl.Builder;
import basics.route.VehicleType; import basics.route.VehicleType;
@ -101,7 +102,7 @@ public class CordeauReader {
int duration = Integer.parseInt(tokens[0].trim()); int duration = Integer.parseInt(tokens[0].trim());
if(duration == 0) duration = 999999; if(duration == 0) duration = 999999;
int capacity = Integer.parseInt(tokens[1].trim()); int capacity = Integer.parseInt(tokens[1].trim());
VehicleTypeImpl vehicleType = VehicleType.Builder.newInstance(counter + "_cordeauType", capacity). VehicleTypeImpl vehicleType = VehicleTypeImpl.Builder.newInstance(counter + "_cordeauType", capacity).
setCostPerDistance(1.0).setFixedCost(0).build(); setCostPerDistance(1.0).setFixedCost(0).build();
List<Builder> builders = new ArrayList<VehicleImpl.Builder>(); List<Builder> builders = new ArrayList<VehicleImpl.Builder>();
for(int vehicleCounter=0;vehicleCounter<nOfVehiclesAtEachDepot;vehicleCounter++){ for(int vehicleCounter=0;vehicleCounter<nOfVehiclesAtEachDepot;vehicleCounter++){
@ -125,23 +126,22 @@ public class CordeauReader {
int cap = 0; int cap = 0;
double latestArrTime = 0.0; double latestArrTime = 0.0;
Coordinate coord = null; Coordinate coord = null;
String typeId = null;
for(Builder vBuilder : vBuilders){ for(Builder vBuilder : vBuilders){
vBuilder.setLocationCoord(depotCoord); vBuilder.setLocationCoord(depotCoord);
VehicleImpl vehicle = vBuilder.build(); VehicleImpl vehicle = vBuilder.build();
cap = vehicle.getCapacity(); cap = vehicle.getCapacity();
typeId = vehicle.getType().getTypeId();
latestArrTime = vehicle.getLatestArrival(); latestArrTime = vehicle.getLatestArrival();
coord = vehicle.getCoord(); coord = vehicle.getCoord();
vrpBuilder.addVehicle(vehicle); vrpBuilder.addVehicle(vehicle);
} }
if(addPenaltyVehicles){ if(addPenaltyVehicles){
for(int i=0;i<5;i++){ VehicleTypeImpl penaltyType = VehicleTypeImpl.Builder.newInstance(typeId, cap).setCostPerDistance(3.0).setFixedCost(50).build();
VehicleTypeImpl penaltyType = VehicleType.Builder.newInstance(counter + "_penaltyType", cap). VehicleImpl penaltyVehicle = VehicleImpl.Builder.newInstance(counter + "_penaltyVehicle").setLatestArrival(latestArrTime)
setCostPerDistance(3.0).setFixedCost(50).build(); .setType(new PenaltyVehicleType(penaltyType)).setLocationCoord(coord).build();
VehicleImpl penaltyVehicle = VehicleImpl.Builder.newInstance(counter + "_" + (i+1) + "_penaltyVehicle").setLatestArrival(latestArrTime)
.setType(penaltyType).setLocationCoord(coord).build();
vrpBuilder.addVehicle(penaltyVehicle); vrpBuilder.addVehicle(penaltyVehicle);
} }
}
depotCounter++; depotCounter++;
} }
else{ else{

View file

@ -123,7 +123,7 @@ public class LuiShenReader {
int capacity = Integer.parseInt(tokens[capacityColumn]); int capacity = Integer.parseInt(tokens[capacityColumn]);
int fixCost = Integer.parseInt(tokens[costScenarioColumn]); int fixCost = Integer.parseInt(tokens[costScenarioColumn]);
VehicleTypeImpl.Builder typeBuilder = VehicleType.Builder.newInstance(vehicleId, capacity); VehicleTypeImpl.Builder typeBuilder = VehicleTypeImpl.Builder.newInstance(vehicleId, capacity);
typeBuilder.setFixedCost(fixCost).setCostPerDistance(1.0); typeBuilder.setFixedCost(fixCost).setCostPerDistance(1.0);
VehicleTypeImpl type = typeBuilder.build(); VehicleTypeImpl type = typeBuilder.build();

View file

@ -97,7 +97,7 @@ public class SolomonReader {
double end = Double.parseDouble(tokens[5])*timeProjectionFactor; double end = Double.parseDouble(tokens[5])*timeProjectionFactor;
double serviceTime = Double.parseDouble(tokens[6])*timeProjectionFactor; double serviceTime = Double.parseDouble(tokens[6])*timeProjectionFactor;
if(counter == 10){ if(counter == 10){
VehicleTypeImpl.Builder typeBuilder = VehicleType.Builder.newInstance("solomonType", vehicleCapacity); VehicleTypeImpl.Builder typeBuilder = VehicleTypeImpl.Builder.newInstance("solomonType", vehicleCapacity);
typeBuilder.setCostPerDistance(1.0*variableCostProjectionFactor).setFixedCost(100); typeBuilder.setCostPerDistance(1.0*variableCostProjectionFactor).setFixedCost(100);
VehicleTypeImpl vehicleType = typeBuilder.build(); VehicleTypeImpl vehicleType = typeBuilder.build();