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

remove redundant state stuff

This commit is contained in:
oblonski 2015-10-23 08:46:09 +02:00
parent 415ce961d2
commit 7166ac2515
4 changed files with 37 additions and 85 deletions

View file

@ -638,4 +638,5 @@ public class Jsprit {
return solutionCostCalculator;
}
}

View file

@ -45,33 +45,6 @@ import java.util.*;
*/
public class StateManager implements RouteAndActivityStateGetter, IterationStartsListener, RuinListener, InsertionStartsListener, JobInsertedListener, InsertionEndsListener {
static class States_ {
private Map<StateId, Object> states = new HashMap<StateId, Object>();
public <T> void putState(StateId id, Class<T> type, T state) {
states.put(id, type.cast(state));
}
public <T> T getState(StateId id, Class<T> type) {
if (states.containsKey(id)) {
return type.cast(states.get(id));
}
return null;
}
public boolean containsKey(StateId stateId) {
return states.containsKey(stateId);
}
public void clear() {
states.clear();
}
}
private States_ problemStates_ = new States_();
private RouteActivityVisitor routeActivityVisitor = new RouteActivityVisitor();
private ReverseRouteActivityVisitor revRouteActivityVisitor = new ReverseRouteActivityVisitor();
@ -98,6 +71,8 @@ public class StateManager implements RouteAndActivityStateGetter, IterationStart
private int nuVehicleTypeKeys;
private Object[] problemStates;
private Object[][] activityStates;
private Object[][][] vehicleDependentActivityStates;
@ -135,6 +110,7 @@ public class StateManager implements RouteAndActivityStateGetter, IterationStart
vehicleDependentActivityStates = new Object[nuActivities][nuVehicleTypeKeys][stateIndexCounter + 1];
routeStatesArr = new Object[vrp.getNuActivities()+1][stateIndexCounter+1];
vehicleDependentRouteStatesArr = new Object[nuActivities][nuVehicleTypeKeys][stateIndexCounter+1];
problemStates = new Object[stateIndexCounter+1];
}
StateId id = StateFactory.createId(name, stateIndexCounter);
incStateIndexCounter();
@ -170,6 +146,7 @@ public class StateManager implements RouteAndActivityStateGetter, IterationStart
routeStateMap = new HashMap<VehicleRoute, Object[]>();
vehicleDependentRouteStateMap = new HashMap<VehicleRoute, Object[][]>();
}
problemStates = new Object[initialStateArrayLength];
}
private int getNuVehicleTypes(VehicleRoutingProblem vrp) {
@ -190,7 +167,8 @@ public class StateManager implements RouteAndActivityStateGetter, IterationStart
* @param <T> the type of the state value
*/
public <T> void putProblemState(StateId stateId, Class<T> type, T state) {
problemStates_.putState(stateId, type, state);
problemStates[stateId.getIndex()] = state;
// problemStates.putState(stateId, type, state);
}
/**
@ -203,7 +181,7 @@ public class StateManager implements RouteAndActivityStateGetter, IterationStart
* @return the state value that is associated to the specified stateId or null if no value is associated
*/
public <T> T getProblemState(StateId stateId, Class<T> type) {
return problemStates_.getState(stateId, type);
return type.cast(problemStates[stateId.getIndex()]);
}
/**
@ -220,7 +198,7 @@ public class StateManager implements RouteAndActivityStateGetter, IterationStart
routeStateMap.clear();
vehicleDependentRouteStateMap.clear();
}
problemStates_.clear();
Arrays.fill(problemStates,null);
}
private void fill_threeDimArr(Object[][][] states, Object o) {