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:
parent
d4169d7797
commit
8b01497cfc
4 changed files with 11 additions and 11 deletions
|
|
@ -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();
|
||||||
|
|
|
||||||
|
|
@ -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{
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue