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

rename vehicleType to vehicleTypeImpl, extract interface vehicleType;

refactor vehicleType to new file; add penaltyVehicleType; improve
vehicleFleetManagerImpl
This commit is contained in:
oblonski 2013-06-20 22:59:57 +02:00
parent d223475cb4
commit c1849a9d5a
39 changed files with 319 additions and 572 deletions

View file

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

View file

@ -36,7 +36,8 @@ import util.Coordinate;
import basics.VehicleRoutingProblem.FleetSize;
import basics.route.VehicleImpl;
import basics.route.VehicleImpl.VehicleBuilder;
import basics.route.VehicleImpl.VehicleType;
import basics.route.VehicleType;
import basics.route.VehicleTypeImpl;
import basics.Service;
import basics.VehicleRoutingProblem;
@ -100,7 +101,7 @@ public class CordeauReader {
int duration = Integer.parseInt(tokens[0].trim());
if(duration == 0) duration = 999999;
int capacity = Integer.parseInt(tokens[1].trim());
VehicleType vehicleType = VehicleImpl.VehicleType.Builder.newInstance(counter + "_cordeauType", capacity).
VehicleTypeImpl vehicleType = VehicleType.Builder.newInstance(counter + "_cordeauType", capacity).
setCostPerDistance(1.0).setFixedCost(0).build();
List<VehicleBuilder> builders = new ArrayList<VehicleImpl.VehicleBuilder>();
for(int vehicleCounter=0;vehicleCounter<nOfVehiclesAtEachDepot;vehicleCounter++){
@ -134,7 +135,7 @@ public class CordeauReader {
}
if(addPenaltyVehicles){
for(int i=0;i<5;i++){
VehicleType penaltyType = VehicleImpl.VehicleType.Builder.newInstance(counter + "_penaltyType", cap).
VehicleTypeImpl penaltyType = VehicleType.Builder.newInstance(counter + "_penaltyType", cap).
setCostPerDistance(3.0).setFixedCost(50).build();
VehicleImpl penaltyVehicle = VehicleImpl.VehicleBuilder.newInstance(counter + "_" + (i+1) + "_penaltyVehicle").setLatestArrival(latestArrTime)
.setType(penaltyType).setLocationCoord(coord).build();

View file

@ -38,7 +38,8 @@ import basics.VehicleRoutingProblem.FleetSize;
import basics.route.TimeWindow;
import basics.route.Vehicle;
import basics.route.VehicleImpl;
import basics.route.VehicleImpl.VehicleType;
import basics.route.VehicleType;
import basics.route.VehicleTypeImpl;
public class LuiShenReader {
@ -122,10 +123,10 @@ public class LuiShenReader {
int capacity = Integer.parseInt(tokens[capacityColumn]);
int fixCost = Integer.parseInt(tokens[costScenarioColumn]);
VehicleType.Builder typeBuilder = VehicleImpl.VehicleType.Builder.newInstance(vehicleId, capacity);
VehicleTypeImpl.Builder typeBuilder = VehicleType.Builder.newInstance(vehicleId, capacity);
typeBuilder.setFixedCost(fixCost).setCostPerDistance(1.0);
VehicleType type = typeBuilder.build();
VehicleTypeImpl type = typeBuilder.build();
Vehicle reprVehicle = VehicleImpl.VehicleBuilder.newInstance(vehicleId).setEarliestStart(start).setLatestArrival(end).
setLocationId(locationId).setLocationCoord(coord).setType(type).build();

View file

@ -34,7 +34,8 @@ import util.Coordinate;
import basics.route.TimeWindow;
import basics.route.Vehicle;
import basics.route.VehicleImpl;
import basics.route.VehicleImpl.VehicleType;
import basics.route.VehicleType;
import basics.route.VehicleTypeImpl;
import basics.Service;
import basics.VehicleRoutingProblem;
import basics.VehicleRoutingProblem.FleetSize;
@ -96,10 +97,10 @@ public class SolomonReader {
double end = Double.parseDouble(tokens[5])*timeProjectionFactor;
double serviceTime = Double.parseDouble(tokens[6])*timeProjectionFactor;
if(counter == 10){
VehicleType.Builder typeBuilder = VehicleImpl.VehicleType.Builder.newInstance("solomonType", vehicleCapacity);
VehicleTypeImpl.Builder typeBuilder = VehicleType.Builder.newInstance("solomonType", vehicleCapacity);
typeBuilder.setCostPerDistance(1.0*variableCostProjectionFactor).setFixedCost(100);
VehicleType vehicleType = typeBuilder.build();
VehicleTypeImpl vehicleType = typeBuilder.build();
Vehicle vehicle = VehicleImpl.VehicleBuilder.newInstance("solomonVehicle").setEarliestStart(start).setLatestArrival(end)
.setLocationId(customerId).setLocationCoord(coord).setType(vehicleType).build();