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

clear state maps in StateManager

This commit is contained in:
oblonski 2014-09-25 11:35:13 +02:00
parent a47bd7c694
commit c2b5046178
2 changed files with 12 additions and 10 deletions

View file

@ -104,9 +104,9 @@ public class StateManager implements RouteAndActivityStateGetter, IterationStart
private Object[][][] vehicle_dependent_activity_states; private Object[][][] vehicle_dependent_activity_states;
private Object[][] route_states; // private Object[][] route_states;
//
private Object[][][] vehicle_dependent_route_states; // private Object[][][] vehicle_dependent_route_states;
private Map<VehicleRoute,Object[]> route_state_map; private Map<VehicleRoute,Object[]> route_state_map;
@ -129,9 +129,9 @@ public class StateManager implements RouteAndActivityStateGetter, IterationStart
if(createdStateIds.containsKey(name)) return createdStateIds.get(name); if(createdStateIds.containsKey(name)) return createdStateIds.get(name);
if(stateIndexCounter>=activity_states[0].length){ if(stateIndexCounter>=activity_states[0].length){
activity_states = new Object[vrp.getNuActivities()+1][stateIndexCounter+1]; activity_states = new Object[vrp.getNuActivities()+1][stateIndexCounter+1];
route_states = new Object[vrp.getNuActivities()+1][stateIndexCounter+1]; // route_states = new Object[vrp.getNuActivities()+1][stateIndexCounter+1];
vehicle_dependent_activity_states = new Object[nuActivities][nuVehicleTypeKeys][stateIndexCounter+1]; vehicle_dependent_activity_states = new Object[nuActivities][nuVehicleTypeKeys][stateIndexCounter+1];
vehicle_dependent_route_states = new Object[nuActivities][nuVehicleTypeKeys][stateIndexCounter+1]; // vehicle_dependent_route_states = new Object[nuActivities][nuVehicleTypeKeys][stateIndexCounter+1];
} }
StateId id = StateFactory.createId(name, stateIndexCounter); StateId id = StateFactory.createId(name, stateIndexCounter);
incStateIndexCounter(); incStateIndexCounter();
@ -156,9 +156,9 @@ public class StateManager implements RouteAndActivityStateGetter, IterationStart
nuActivities = Math.max(10, vrp.getNuActivities() + 1); nuActivities = Math.max(10, vrp.getNuActivities() + 1);
nuVehicleTypeKeys = Math.max(3, getNuVehicleTypes(vrp) + 2); nuVehicleTypeKeys = Math.max(3, getNuVehicleTypes(vrp) + 2);
activity_states = new Object[nuActivities][initialStateArrayLength]; activity_states = new Object[nuActivities][initialStateArrayLength];
route_states = new Object[nuActivities][initialStateArrayLength]; // route_states = new Object[nuActivities][initialStateArrayLength];
vehicle_dependent_activity_states = new Object[nuActivities][nuVehicleTypeKeys][initialStateArrayLength]; vehicle_dependent_activity_states = new Object[nuActivities][nuVehicleTypeKeys][initialStateArrayLength];
vehicle_dependent_route_states = new Object[nuActivities][nuVehicleTypeKeys][initialStateArrayLength]; // vehicle_dependent_route_states = new Object[nuActivities][nuVehicleTypeKeys][initialStateArrayLength];
route_state_map = new HashMap<VehicleRoute, Object[]>(); route_state_map = new HashMap<VehicleRoute, Object[]>();
vehicle_dependent_route_state_map = new HashMap<VehicleRoute, Object[][]>(); vehicle_dependent_route_state_map = new HashMap<VehicleRoute, Object[][]>();
} }
@ -203,10 +203,12 @@ public class StateManager implements RouteAndActivityStateGetter, IterationStart
*/ */
public void clear(){ public void clear(){
fill_twoDimArr(activity_states, null); fill_twoDimArr(activity_states, null);
fill_twoDimArr(route_states, null); // fill_twoDimArr(route_states, null);
fill_threeDimArr(vehicle_dependent_activity_states, null); fill_threeDimArr(vehicle_dependent_activity_states, null);
fill_threeDimArr(vehicle_dependent_route_states, null); // fill_threeDimArr(vehicle_dependent_route_states, null);
problemStates_.clear(); problemStates_.clear();
route_state_map.clear();
vehicle_dependent_route_state_map.clear();
} }
private void fill_threeDimArr(Object[][][] states, Object o) { private void fill_threeDimArr(Object[][][] states, Object o) {

View file

@ -107,7 +107,7 @@ public class MultipleDepotExampleWithPenaltyVehicles {
* solve the problem * solve the problem
*/ */
VehicleRoutingAlgorithm vra = VehicleRoutingAlgorithms.readAndCreateAlgorithm(vrp, "input/algorithmConfig.xml"); VehicleRoutingAlgorithm vra = VehicleRoutingAlgorithms.readAndCreateAlgorithm(vrp, "input/algorithmConfig.xml");
vra.setMaxIterations(2000); vra.setMaxIterations(10000);
vra.getAlgorithmListeners().addListener(new StopWatch(),Priority.HIGH); vra.getAlgorithmListeners().addListener(new StopWatch(),Priority.HIGH);
// vra.getAlgorithmListeners().addListener(new AlgorithmSearchProgressChartListener("output/progress.png")); // vra.getAlgorithmListeners().addListener(new AlgorithmSearchProgressChartListener("output/progress.png"));
Collection<VehicleRoutingProblemSolution> solutions = vra.searchSolutions(); Collection<VehicleRoutingProblemSolution> solutions = vra.searchSolutions();