diff --git a/jsprit-core/src/main/java/jsprit/core/algorithm/state/StateManager.java b/jsprit-core/src/main/java/jsprit/core/algorithm/state/StateManager.java index c3e70287..7ea2fce1 100644 --- a/jsprit-core/src/main/java/jsprit/core/algorithm/state/StateManager.java +++ b/jsprit-core/src/main/java/jsprit/core/algorithm/state/StateManager.java @@ -122,6 +122,8 @@ public class StateManager implements RouteAndActivityStateGetter, IterationStart private VehicleRoutingProblem vrp; + int getMaxIndexOfVehicleTypeIdentifiers(){ return nuVehicleTypeKeys; } + public StateId createStateId(String name){ if(createdStateIds.containsKey(name)) return createdStateIds.get(name); if(stateIndexCounter>=activity_states[0].length){ diff --git a/jsprit-core/src/main/java/jsprit/core/algorithm/state/UpdateVehicleDependentPracticalTimeWindows.java b/jsprit-core/src/main/java/jsprit/core/algorithm/state/UpdateVehicleDependentPracticalTimeWindows.java index d1d8d0b0..13fdbbab 100644 --- a/jsprit-core/src/main/java/jsprit/core/algorithm/state/UpdateVehicleDependentPracticalTimeWindows.java +++ b/jsprit-core/src/main/java/jsprit/core/algorithm/state/UpdateVehicleDependentPracticalTimeWindows.java @@ -36,13 +36,8 @@ public class UpdateVehicleDependentPracticalTimeWindows implements ReverseActivi this.transportCosts = tpCosts; this.fleetManager = fleetManager; this.vehicleSwitchAllowed=isVehicleSwitchAllowed; - int maxVehicleTypeIndex = getMaxTypeIndex(fleetManager); - latest_arrTimes_at_prevAct = new double[maxVehicleTypeIndex]; - location_of_prevAct = new String[maxVehicleTypeIndex]; - } - - private int getMaxTypeIndex(VehicleFleetManager fleetManager) { - return 0; + latest_arrTimes_at_prevAct = new double[stateManager.getMaxIndexOfVehicleTypeIdentifiers() + 1]; + location_of_prevAct = new String[stateManager.getMaxIndexOfVehicleTypeIdentifiers() + 1]; } @Override