mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
relax api
This commit is contained in:
parent
e68df7a874
commit
0730c465dc
447 changed files with 100795 additions and 270 deletions
|
|
@ -29,11 +29,7 @@ import org.junit.Test;
|
|||
|
||||
import util.Solutions;
|
||||
import algorithms.acceptors.AcceptNewIfBetterThanWorst;
|
||||
import algorithms.constraints.HardActivityLevelConstraint;
|
||||
import algorithms.constraints.HardLoadConstraint;
|
||||
import algorithms.selectors.SelectBest;
|
||||
import algorithms.states.UpdateCostsAtRouteLevel;
|
||||
import algorithms.states.UpdateLoadAtRouteLevel;
|
||||
import basics.VehicleRoutingAlgorithm;
|
||||
import basics.VehicleRoutingProblem;
|
||||
import basics.VehicleRoutingProblemSolution;
|
||||
|
|
|
|||
|
|
@ -28,18 +28,7 @@ import org.junit.Test;
|
|||
|
||||
import algorithms.StateManagerImpl.StateImpl;
|
||||
import algorithms.acceptors.AcceptNewIfBetterThanWorst;
|
||||
import algorithms.constraints.ConstraintManager;
|
||||
import algorithms.constraints.HardPickupAndDeliveryActivityLevelConstraint;
|
||||
import algorithms.constraints.HardPickupAndDeliveryLoadConstraint;
|
||||
import algorithms.constraints.HardTimeWindowActivityLevelConstraint;
|
||||
import algorithms.selectors.SelectBest;
|
||||
import algorithms.states.UpdateActivityTimes;
|
||||
import algorithms.states.UpdateCostsAtAllLevels;
|
||||
import algorithms.states.UpdateEarliestStartTimeWindowAtActLocations;
|
||||
import algorithms.states.UpdateFuturePickupsAtActivityLevel;
|
||||
import algorithms.states.UpdateLatestOperationStartTimeAtActLocations;
|
||||
import algorithms.states.UpdateLoadAtActivityLevel;
|
||||
import algorithms.states.UpdateOccuredDeliveriesAtActivityLevel;
|
||||
import basics.Delivery;
|
||||
import basics.Job;
|
||||
import basics.Pickup;
|
||||
|
|
@ -132,8 +121,8 @@ public class BuildPDVRPAlgoFromScratchTest {
|
|||
loadAtEnd += j.getCapacityDemand();
|
||||
}
|
||||
}
|
||||
stateManager.putRouteState(route, StateTypes.LOAD_AT_DEPOT, new StateImpl(loadAtDepot));
|
||||
stateManager.putRouteState(route, StateTypes.LOAD, new StateImpl(loadAtEnd));
|
||||
stateManager.putRouteState(route, StateIdFactory.LOAD_AT_DEPOT, new StateImpl(loadAtDepot));
|
||||
stateManager.putRouteState(route, StateIdFactory.LOAD, new StateImpl(loadAtEnd));
|
||||
iterateForward.visit(route);
|
||||
iterateBackward.visit(route);
|
||||
}
|
||||
|
|
@ -150,14 +139,14 @@ public class BuildPDVRPAlgoFromScratchTest {
|
|||
// log.info("insert job " + job2insert.getClass().toString() + " job " + job2insert + "" + job2insert.getCapacityDemand() + " in route " + inRoute.getTourActivities());
|
||||
|
||||
if(job2insert instanceof Delivery){
|
||||
int loadAtDepot = (int) stateManager.getRouteState(inRoute, StateTypes.LOAD_AT_DEPOT).toDouble();
|
||||
int loadAtDepot = (int) stateManager.getRouteState(inRoute, StateIdFactory.LOAD_AT_DEPOT).toDouble();
|
||||
// log.info("loadAtDepot="+loadAtDepot);
|
||||
stateManager.putRouteState(inRoute, StateTypes.LOAD_AT_DEPOT, new StateImpl(loadAtDepot + job2insert.getCapacityDemand()));
|
||||
stateManager.putRouteState(inRoute, StateIdFactory.LOAD_AT_DEPOT, new StateImpl(loadAtDepot + job2insert.getCapacityDemand()));
|
||||
}
|
||||
if(job2insert instanceof Pickup){
|
||||
int loadAtEnd = (int) stateManager.getRouteState(inRoute, StateTypes.LOAD).toDouble();
|
||||
int loadAtEnd = (int) stateManager.getRouteState(inRoute, StateIdFactory.LOAD).toDouble();
|
||||
// log.info("loadAtEnd="+loadAtEnd);
|
||||
stateManager.putRouteState(inRoute, StateTypes.LOAD, new StateImpl(loadAtEnd + job2insert.getCapacityDemand()));
|
||||
stateManager.putRouteState(inRoute, StateIdFactory.LOAD, new StateImpl(loadAtEnd + job2insert.getCapacityDemand()));
|
||||
}
|
||||
iterateForward.visit(inRoute);
|
||||
iterateBackward.visit(inRoute);
|
||||
|
|
|
|||
|
|
@ -33,9 +33,7 @@ import org.junit.Test;
|
|||
import util.Coordinate;
|
||||
import util.ManhattanDistanceCalculator;
|
||||
import util.RouteUtils;
|
||||
import algorithms.constraints.HardLoadConstraint;
|
||||
import algorithms.constraints.HardTimeWindowActivityLevelConstraint;
|
||||
import algorithms.states.StateUpdates.UpdateStates;
|
||||
import algorithms.StateUpdates.UpdateStates;
|
||||
import basics.Job;
|
||||
import basics.Service;
|
||||
import basics.VehicleRoutingProblem;
|
||||
|
|
|
|||
|
|
@ -32,9 +32,7 @@ import org.apache.log4j.Logger;
|
|||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import algorithms.constraints.HardLoadConstraint;
|
||||
import algorithms.constraints.HardTimeWindowActivityLevelConstraint;
|
||||
import algorithms.states.StateUpdates.UpdateStates;
|
||||
import algorithms.StateUpdates.UpdateStates;
|
||||
import basics.Job;
|
||||
import basics.Service;
|
||||
import basics.costs.VehicleRoutingTransportCosts;
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ import org.junit.Test;
|
|||
|
||||
import util.Coordinate;
|
||||
import util.ManhattanDistanceCalculator;
|
||||
import algorithms.states.StateUpdates.UpdateStates;
|
||||
import algorithms.StateUpdates.UpdateStates;
|
||||
import basics.Job;
|
||||
import basics.Service;
|
||||
import basics.costs.VehicleRoutingTransportCosts;
|
||||
|
|
|
|||
|
|
@ -30,10 +30,6 @@ import org.junit.Test;
|
|||
|
||||
import util.Coordinate;
|
||||
import util.ManhattanDistanceCalculator;
|
||||
import algorithms.states.UpdateActivityTimes;
|
||||
import algorithms.states.UpdateCostsAtAllLevels;
|
||||
import algorithms.states.UpdateEarliestStartTimeWindowAtActLocations;
|
||||
import algorithms.states.UpdateLoadAtAllLevels;
|
||||
import basics.Job;
|
||||
import basics.Service;
|
||||
import basics.costs.DefaultVehicleRoutingActivityCosts;
|
||||
|
|
@ -156,8 +152,8 @@ public class TestIterateRouteForwardInTime {
|
|||
forwardInTime.addActivityVisitor(new UpdateLoadAtAllLevels(stateManager));
|
||||
forwardInTime.visit(vehicleRoute);
|
||||
|
||||
assertEquals(5.0, stateManager.getActivityState(firstAct,StateTypes.LOAD).toDouble(), 0.01);
|
||||
assertEquals(10.0, stateManager.getActivityState(secondAct,StateTypes.LOAD).toDouble(), 0.01);
|
||||
assertEquals(5.0, stateManager.getActivityState(firstAct,StateIdFactory.LOAD).toDouble(), 0.01);
|
||||
assertEquals(10.0, stateManager.getActivityState(secondAct,StateIdFactory.LOAD).toDouble(), 0.01);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -181,9 +177,9 @@ public class TestIterateRouteForwardInTime {
|
|||
forwardInTime.addActivityVisitor(new UpdateCostsAtAllLevels(new DefaultVehicleRoutingActivityCosts(), cost, stateManager));
|
||||
forwardInTime.visit(vehicleRoute);
|
||||
|
||||
assertEquals(10.0, stateManager.getActivityState(firstAct, StateTypes.COSTS).toDouble(),0.05);
|
||||
assertEquals(5.0, stateManager.getActivityState(firstAct, StateTypes.LOAD).toDouble(),0.05);
|
||||
assertEquals(10.0, stateManager.getActivityState(firstAct, StateTypes.EARLIEST_OPERATION_START_TIME).toDouble(),0.05);
|
||||
assertEquals(10.0, stateManager.getActivityState(firstAct, StateIdFactory.COSTS).toDouble(),0.05);
|
||||
assertEquals(5.0, stateManager.getActivityState(firstAct, StateIdFactory.LOAD).toDouble(),0.05);
|
||||
assertEquals(10.0, stateManager.getActivityState(firstAct, StateIdFactory.EARLIEST_OPERATION_START_TIME).toDouble(),0.05);
|
||||
// assertEquals(20.0, states.getState(tour.getActivities().get(0)).getLatestOperationStart(),0.05);
|
||||
}
|
||||
|
||||
|
|
@ -196,9 +192,9 @@ public class TestIterateRouteForwardInTime {
|
|||
forwardInTime.addActivityVisitor(new UpdateCostsAtAllLevels(new DefaultVehicleRoutingActivityCosts(), cost, stateManager));
|
||||
forwardInTime.visit(vehicleRoute);
|
||||
|
||||
assertEquals(30.0, stateManager.getActivityState(secondAct, StateTypes.COSTS).toDouble(),0.05);
|
||||
assertEquals(10.0, stateManager.getActivityState(secondAct, StateTypes.LOAD).toDouble(),0.05);
|
||||
assertEquals(30.0, stateManager.getActivityState(secondAct, StateTypes.EARLIEST_OPERATION_START_TIME).toDouble(),0.05);
|
||||
assertEquals(30.0, stateManager.getActivityState(secondAct, StateIdFactory.COSTS).toDouble(),0.05);
|
||||
assertEquals(10.0, stateManager.getActivityState(secondAct, StateIdFactory.LOAD).toDouble(),0.05);
|
||||
assertEquals(30.0, stateManager.getActivityState(secondAct, StateIdFactory.EARLIEST_OPERATION_START_TIME).toDouble(),0.05);
|
||||
// assertEquals(40.0, states.getState(tour.getActivities().get(1)).getLatestOperationStart(),0.05);
|
||||
}
|
||||
|
||||
|
|
@ -210,7 +206,7 @@ public class TestIterateRouteForwardInTime {
|
|||
forwardInTime.addActivityVisitor(new UpdateCostsAtAllLevels(new DefaultVehicleRoutingActivityCosts(), cost, stateManager));
|
||||
forwardInTime.visit(vehicleRoute);
|
||||
|
||||
assertEquals(40.0, stateManager.getRouteState(vehicleRoute,StateTypes.COSTS).toDouble(), 0.05);
|
||||
assertEquals(40.0, stateManager.getRouteState(vehicleRoute,StateIdFactory.COSTS).toDouble(), 0.05);
|
||||
assertEquals(40.0, vehicleRoute.getEnd().getArrTime(),0.05);
|
||||
assertEquals(50.0, vehicleRoute.getEnd().getTheoreticalLatestOperationStartTime(),0.05);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ import org.junit.Test;
|
|||
|
||||
import util.Coordinate;
|
||||
import util.ManhattanDistanceCalculator;
|
||||
import algorithms.states.StateUpdates.UpdateStates;
|
||||
import algorithms.StateUpdates.UpdateStates;
|
||||
import basics.Job;
|
||||
import basics.Service;
|
||||
import basics.costs.VehicleRoutingTransportCosts;
|
||||
|
|
@ -120,8 +120,8 @@ public class TestTourStateUpdaterWithService {
|
|||
@Test
|
||||
public void testCalculatedCost() {
|
||||
updateStates.update(vehicleRoute);
|
||||
assertEquals(40.0, states.getRouteState(vehicleRoute,StateTypes.COSTS).toDouble(), 0.05);
|
||||
assertEquals(10, states.getRouteState(vehicleRoute, StateTypes.LOAD).toDouble(), 0.05);
|
||||
assertEquals(40.0, states.getRouteState(vehicleRoute,StateIdFactory.COSTS).toDouble(), 0.05);
|
||||
assertEquals(10, states.getRouteState(vehicleRoute, StateIdFactory.LOAD).toDouble(), 0.05);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -137,27 +137,27 @@ public class TestTourStateUpdaterWithService {
|
|||
@Test
|
||||
public void testStatesOfAct1(){
|
||||
updateStates.update(vehicleRoute);
|
||||
assertEquals(10.0, states.getActivityState(tour.getActivities().get(0), StateTypes.COSTS).toDouble(),0.05);
|
||||
assertEquals(5.0, states.getActivityState(tour.getActivities().get(0), StateTypes.LOAD).toDouble(),0.05);
|
||||
assertEquals(10.0, states.getActivityState(tour.getActivities().get(0), StateIdFactory.COSTS).toDouble(),0.05);
|
||||
assertEquals(5.0, states.getActivityState(tour.getActivities().get(0), StateIdFactory.LOAD).toDouble(),0.05);
|
||||
// assertEquals(10.0, states.getActivityState(tour.getActivities().get(0), StateTypes.EARLIEST_OPERATION_START_TIME).toDouble(),0.05);
|
||||
assertEquals(20.0, states.getActivityState(tour.getActivities().get(0), StateTypes.LATEST_OPERATION_START_TIME).toDouble(),0.05);
|
||||
assertEquals(20.0, states.getActivityState(tour.getActivities().get(0), StateIdFactory.LATEST_OPERATION_START_TIME).toDouble(),0.05);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStatesOfAct2(){
|
||||
updateStates.update(vehicleRoute);
|
||||
|
||||
assertEquals(30.0, states.getActivityState(tour.getActivities().get(1), StateTypes.COSTS).toDouble(),0.05);
|
||||
assertEquals(10.0, states.getActivityState(tour.getActivities().get(1), StateTypes.LOAD).toDouble(),0.05);
|
||||
assertEquals(30.0, states.getActivityState(tour.getActivities().get(1), StateIdFactory.COSTS).toDouble(),0.05);
|
||||
assertEquals(10.0, states.getActivityState(tour.getActivities().get(1), StateIdFactory.LOAD).toDouble(),0.05);
|
||||
// assertEquals(10.0, states.getActivityState(tour.getActivities().get(0), StateTypes.EARLIEST_OPERATION_START_TIME).toDouble(),0.05);
|
||||
assertEquals(40.0, states.getActivityState(tour.getActivities().get(1), StateTypes.LATEST_OPERATION_START_TIME).toDouble(),0.05);
|
||||
assertEquals(40.0, states.getActivityState(tour.getActivities().get(1), StateIdFactory.LATEST_OPERATION_START_TIME).toDouble(),0.05);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStatesOfAct3(){
|
||||
updateStates.update(vehicleRoute);
|
||||
|
||||
assertEquals(40.0, states.getRouteState(vehicleRoute, StateTypes.COSTS).toDouble(), 0.05);
|
||||
assertEquals(40.0, states.getRouteState(vehicleRoute, StateIdFactory.COSTS).toDouble(), 0.05);
|
||||
assertEquals(40.0, vehicleRoute.getEnd().getArrTime(),0.05);
|
||||
assertEquals(50.0, vehicleRoute.getEnd().getTheoreticalLatestOperationStartTime(),0.05);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue