diff --git a/jsprit-core/src/main/java/jsprit/core/problem/vehicle/VehicleFleetManagerImpl.java b/jsprit-core/src/main/java/jsprit/core/problem/vehicle/VehicleFleetManagerImpl.java index 84dc0ab4..d5ee9664 100644 --- a/jsprit-core/src/main/java/jsprit/core/problem/vehicle/VehicleFleetManagerImpl.java +++ b/jsprit-core/src/main/java/jsprit/core/problem/vehicle/VehicleFleetManagerImpl.java @@ -77,7 +77,6 @@ class VehicleFleetManagerImpl implements VehicleFleetManager { int arrSize = vehicles.size() + 2; locked = new boolean[arrSize]; vehicleArr = new Vehicle[arrSize]; - vehicleTypes = new TypeContainer[arrSize]; initializeVehicleTypes(); logger.debug("initialise {}",this); } @@ -88,6 +87,13 @@ class VehicleFleetManagerImpl implements VehicleFleetManager { } private void initializeVehicleTypes() { + int maxTypeIndex = 0; + for(Vehicle v : vehicles){ + if(v.getVehicleTypeIdentifier().getIndex() > maxTypeIndex){ + maxTypeIndex = v.getVehicleTypeIdentifier().getIndex(); + } + } + vehicleTypes = new TypeContainer[maxTypeIndex+1]; for(int i=0;i< vehicleTypes.length;i++){ vehicleTypes[i] = new TypeContainer(); } diff --git a/jsprit-core/src/test/resources/infiniteWriterV2Test.xml b/jsprit-core/src/test/resources/infiniteWriterV2Test.xml index 07c5406a..2d9058ab 100644 --- a/jsprit-core/src/test/resources/infiniteWriterV2Test.xml +++ b/jsprit-core/src/test/resources/infiniteWriterV2Test.xml @@ -2,24 +2,9 @@ - FINITE + INFINITE - - v2 - vehType2 - - loc - - - loc - - - 0.0 - 1.7976931348623157E308 - - true - v1 vehType @@ -48,16 +33,58 @@ - - vehType2 - - 200 - - - 0.0 - 1.0 - - - + + + + loc + + + 1 + + 2.0 + + + 0.0 + 1.7976931348623157E308 + + + + + + loc2 + + + 1 + + 4.0 + + + 0.0 + 1.7976931348623157E308 + + + + + + + 10.0 + + + noDriver + v1 + 0.0 + + 1 + 0.0 + 0.0 + + 0.0 + + + + + + +