mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
add service/shipmentInsertionCalcSwitcher, some renaming and first tests
This commit is contained in:
parent
3740225058
commit
690bcb532a
10 changed files with 57 additions and 15 deletions
|
|
@ -216,9 +216,9 @@ class CalculatorBuilder {
|
|||
if(constraintManager == null) throw new IllegalStateException("constraint-manager is null");
|
||||
|
||||
ActivityInsertionCostsCalculator defaultCalc = new LocalActivityInsertionCostsCalculator(vrp.getTransportCosts(), vrp.getActivityCosts(), constraintManager);
|
||||
JobInsertionCalculator standardServiceInsertion = new CalculatesServiceInsertion(vrp.getTransportCosts(), defaultCalc, constraintManager);
|
||||
JobInsertionCalculator standardServiceInsertion = new ServiceInsertionCalculator(vrp.getTransportCosts(), defaultCalc, constraintManager);
|
||||
|
||||
((CalculatesServiceInsertion) standardServiceInsertion).setNeighborhood(vrp.getNeighborhood());
|
||||
((ServiceInsertionCalculator) standardServiceInsertion).setNeighborhood(vrp.getNeighborhood());
|
||||
CalculatorPlusListeners calcPlusListeners = new CalculatorPlusListeners(standardServiceInsertion);
|
||||
|
||||
return calcPlusListeners;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
package algorithms;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import basics.Job;
|
||||
import basics.route.Driver;
|
||||
import basics.route.Vehicle;
|
||||
import basics.route.VehicleRoute;
|
||||
|
||||
public class JobCalculatorSwitcher implements JobInsertionCalculator{
|
||||
|
||||
private Map<Class<? extends Job>,JobInsertionCalculator> calcMap = new HashMap<Class<? extends Job>, JobInsertionCalculator>();
|
||||
|
||||
void put(Class<? extends Job> jobClass, JobInsertionCalculator jic){
|
||||
calcMap.put(jobClass, jic);
|
||||
}
|
||||
|
||||
public InsertionData calculate(VehicleRoute currentRoute, Job jobToInsert, Vehicle newVehicle, double newVehicleDepartureTime, Driver newDriver, double bestKnownScore){
|
||||
JobInsertionCalculator jic = calcMap.get(jobToInsert.getClass());
|
||||
if(jic==null) throw new IllegalStateException("cannot find calculator for " + jobToInsert.getClass());
|
||||
return jic.calculate(currentRoute, jobToInsert, newVehicle, newVehicleDepartureTime, newDriver, bestKnownScore);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -36,9 +36,9 @@ import basics.route.VehicleRoute;
|
|||
|
||||
|
||||
|
||||
final class CalculatesServiceInsertion implements JobInsertionCalculator{
|
||||
final class ServiceInsertionCalculator implements JobInsertionCalculator{
|
||||
|
||||
private static final Logger logger = Logger.getLogger(CalculatesServiceInsertion.class);
|
||||
private static final Logger logger = Logger.getLogger(ServiceInsertionCalculator.class);
|
||||
|
||||
private HardRouteLevelConstraint hardRouteLevelConstraint;
|
||||
|
||||
|
|
@ -61,7 +61,7 @@ final class CalculatesServiceInsertion implements JobInsertionCalculator{
|
|||
logger.info("initialise neighborhood " + neighborhood);
|
||||
}
|
||||
|
||||
public CalculatesServiceInsertion(VehicleRoutingTransportCosts routingCosts, ActivityInsertionCostsCalculator activityInsertionCostsCalculator, HardRouteLevelConstraint hardRouteLevelConstraint) {
|
||||
public ServiceInsertionCalculator(VehicleRoutingTransportCosts routingCosts, ActivityInsertionCostsCalculator activityInsertionCostsCalculator, HardRouteLevelConstraint hardRouteLevelConstraint) {
|
||||
super();
|
||||
this.activityInsertionCostsCalculator = activityInsertionCostsCalculator;
|
||||
this.hardRouteLevelConstraint = hardRouteLevelConstraint;
|
||||
|
|
@ -81,4 +81,8 @@ public final class DeliverService implements DeliveryActivity{
|
|||
return delivery;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "[act="+getName()+"][loc="+getLocationId()+"]";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,6 +86,9 @@ public final class PickupService implements PickupActivity{
|
|||
return pickup.getCapacityDemand();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "[act="+getName()+"][loc="+getLocationId()+"]";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue