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:
parent
d223475cb4
commit
c1849a9d5a
39 changed files with 319 additions and 572 deletions
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue