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

Merge branch 'master' into relaxAPI

This commit is contained in:
Stefan Schroeder 2013-10-07 15:52:11 +02:00
commit cba6a759e0
14 changed files with 447 additions and 226 deletions

View file

@ -107,18 +107,18 @@ public class BuildPDVRPAlgoFromScratchTest {
vra.getAlgorithmListeners().addListener(new StateUpdates.ResetStateManager(stateManager));
final IterateRouteForwardInTime iterateForward = new IterateRouteForwardInTime(vrp.getTransportCosts());
final RouteActivityVisitor iterateForward = new RouteActivityVisitor();
iterateForward.addListener(new UpdateActivityTimes());
iterateForward.addListener(new UpdateEarliestStartTimeWindowAtActLocations(stateManager));
iterateForward.addListener(new UpdateCostsAtAllLevels(vrp.getActivityCosts(), vrp.getTransportCosts(), stateManager));
iterateForward.addActivityVisitor(new UpdateActivityTimes(vrp.getTransportCosts()));
iterateForward.addActivityVisitor(new UpdateEarliestStartTimeWindowAtActLocations(stateManager, vrp.getTransportCosts()));
iterateForward.addActivityVisitor(new UpdateCostsAtAllLevels(vrp.getActivityCosts(), vrp.getTransportCosts(), stateManager));
iterateForward.addListener(new StateUpdates.UpdateOccuredDeliveriesAtActivityLevel(stateManager));
iterateForward.addListener(new StateUpdates.UpdateLoadAtActivityLevel(stateManager));
iterateForward.addActivityVisitor(new StateUpdates.UpdateOccuredDeliveriesAtActivityLevel(stateManager));
iterateForward.addActivityVisitor(new StateUpdates.UpdateLoadAtActivityLevel(stateManager));
final IterateRouteBackwardInTime iterateBackward = new IterateRouteBackwardInTime(vrp.getTransportCosts());
iterateBackward.addListener(new UpdateLatestOperationStartTimeAtActLocations(stateManager));
iterateBackward.addListener(new StateUpdates.UpdateFuturePickupsAtActivityLevel(stateManager));
final ReverseRouteActivityVisitor iterateBackward = new ReverseRouteActivityVisitor();
iterateBackward.addActivityVisitor(new UpdateLatestOperationStartTimeAtActLocations(stateManager, vrp.getTransportCosts()));
iterateBackward.addActivityVisitor(new StateUpdates.UpdateFuturePickupsAtActivityLevel(stateManager));
InsertionStartsListener loadVehicleInDepot = new InsertionStartsListener() {
@ -138,8 +138,8 @@ public class BuildPDVRPAlgoFromScratchTest {
}
stateManager.putRouteState(route, StateTypes.LOAD_AT_DEPOT, new StateImpl(loadAtDepot));
stateManager.putRouteState(route, StateTypes.LOAD, new StateImpl(loadAtEnd));
iterateForward.iterate(route);
iterateBackward.iterate(route);
iterateForward.visit(route);
iterateBackward.visit(route);
}
}
@ -163,8 +163,8 @@ public class BuildPDVRPAlgoFromScratchTest {
// log.info("loadAtEnd="+loadAtEnd);
stateManager.putRouteState(inRoute, StateTypes.LOAD, new StateImpl(loadAtEnd + job2insert.getCapacityDemand()));
}
iterateForward.iterate(inRoute);
iterateBackward.iterate(inRoute);
iterateForward.visit(inRoute);
iterateBackward.visit(inRoute);
}
};

View file

@ -139,9 +139,9 @@ public class TestIterateRouteForwardInTime {
@Test
public void whenIteratingWithActivityTimeUpdater_itShouldUpdateActivityTimes() {
IterateRouteForwardInTime forwardInTime = new IterateRouteForwardInTime(cost);
forwardInTime.addListener(new UpdateActivityTimes());
forwardInTime.iterate(vehicleRoute);
RouteActivityVisitor forwardInTime = new RouteActivityVisitor();
forwardInTime.addActivityVisitor(new UpdateActivityTimes(cost));
forwardInTime.visit(vehicleRoute);
assertEquals(10.0,firstAct.getArrTime(),0.1);
assertEquals(10.0,firstAct.getEndTime(),0.1);
@ -152,9 +152,9 @@ public class TestIterateRouteForwardInTime {
@Test
public void whenIteratingWithLoadUpdateAtActLocations_itShouldUpdateLoad() {
IterateRouteForwardInTime forwardInTime = new IterateRouteForwardInTime(cost);
forwardInTime.addListener(new UpdateLoadAtAllLevels(stateManager));
forwardInTime.iterate(vehicleRoute);
RouteActivityVisitor forwardInTime = new RouteActivityVisitor();
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);
@ -163,8 +163,8 @@ public class TestIterateRouteForwardInTime {
@Test
public void testStatesOfAct0(){
IterateRouteForwardInTime forwardInTime = new IterateRouteForwardInTime(cost);
forwardInTime.iterate(vehicleRoute);
RouteActivityVisitor forwardInTime = new RouteActivityVisitor();
forwardInTime.visit(vehicleRoute);
assertEquals(0.0, vehicleRoute.getStart().getEndTime(),0.05);
assertEquals(vehicleRoute.getVehicle().getLocationId(), vehicleRoute.getStart().getLocationId());
@ -175,11 +175,11 @@ public class TestIterateRouteForwardInTime {
@Test
public void testStatesOfAct1(){
IterateRouteForwardInTime forwardInTime = new IterateRouteForwardInTime(cost);
forwardInTime.addListener(new UpdateLoadAtAllLevels(stateManager));
forwardInTime.addListener(new UpdateEarliestStartTimeWindowAtActLocations(stateManager));
forwardInTime.addListener(new UpdateCostsAtAllLevels(new DefaultVehicleRoutingActivityCosts(), cost, stateManager));
forwardInTime.iterate(vehicleRoute);
RouteActivityVisitor forwardInTime = new RouteActivityVisitor();
forwardInTime.addActivityVisitor(new UpdateLoadAtAllLevels(stateManager));
forwardInTime.addActivityVisitor(new UpdateEarliestStartTimeWindowAtActLocations(stateManager, cost));
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);
@ -189,12 +189,12 @@ public class TestIterateRouteForwardInTime {
@Test
public void testStatesOfAct2(){
IterateRouteForwardInTime forwardInTime = new IterateRouteForwardInTime(cost);
RouteActivityVisitor forwardInTime = new RouteActivityVisitor();
forwardInTime.addListener(new UpdateLoadAtAllLevels(stateManager));
forwardInTime.addListener(new UpdateEarliestStartTimeWindowAtActLocations(stateManager));
forwardInTime.addListener(new UpdateCostsAtAllLevels(new DefaultVehicleRoutingActivityCosts(), cost, stateManager));
forwardInTime.iterate(vehicleRoute);
forwardInTime.addActivityVisitor(new UpdateLoadAtAllLevels(stateManager));
forwardInTime.addActivityVisitor(new UpdateEarliestStartTimeWindowAtActLocations(stateManager, cost));
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);
@ -204,11 +204,11 @@ public class TestIterateRouteForwardInTime {
@Test
public void testStatesOfAct3(){
IterateRouteForwardInTime forwardInTime = new IterateRouteForwardInTime(cost);
RouteActivityVisitor forwardInTime = new RouteActivityVisitor();
forwardInTime.addListener(new UpdateActivityTimes());
forwardInTime.addListener(new UpdateCostsAtAllLevels(new DefaultVehicleRoutingActivityCosts(), cost, stateManager));
forwardInTime.iterate(vehicleRoute);
forwardInTime.addActivityVisitor(new UpdateActivityTimes(cost));
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, vehicleRoute.getEnd().getArrTime(),0.05);