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:
commit
cba6a759e0
14 changed files with 447 additions and 226 deletions
|
|
@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue