mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
rename StateContainer to StateManager
This commit is contained in:
parent
63270cd557
commit
0c8c4ae4e3
21 changed files with 60 additions and 62 deletions
|
|
@ -15,7 +15,7 @@ package algorithms;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
import util.Neighborhood;
|
import util.Neighborhood;
|
||||||
import algorithms.StatesContainer.State;
|
import algorithms.StateManager.State;
|
||||||
import basics.Job;
|
import basics.Job;
|
||||||
import basics.Service;
|
import basics.Service;
|
||||||
import basics.costs.VehicleRoutingActivityCosts;
|
import basics.costs.VehicleRoutingActivityCosts;
|
||||||
|
|
@ -36,7 +36,7 @@ final class CalculatesServiceInsertion implements JobInsertionCalculator{
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(CalculatesServiceInsertion.class);
|
private static final Logger logger = Logger.getLogger(CalculatesServiceInsertion.class);
|
||||||
|
|
||||||
private StatesContainer states;
|
private StateManager states;
|
||||||
|
|
||||||
private VehicleRoutingTransportCosts routingCosts;
|
private VehicleRoutingTransportCosts routingCosts;
|
||||||
|
|
||||||
|
|
@ -61,7 +61,7 @@ final class CalculatesServiceInsertion implements JobInsertionCalculator{
|
||||||
logger.info("initialise neighborhood " + neighborhood);
|
logger.info("initialise neighborhood " + neighborhood);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setActivityStates(StatesContainer activityStates2){
|
public void setActivityStates(StateManager activityStates2){
|
||||||
this.states = activityStates2;
|
this.states = activityStates2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,8 @@ package algorithms;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
import algorithms.InsertionData.NoInsertionFound;
|
import algorithms.InsertionData.NoInsertionFound;
|
||||||
import algorithms.StatesContainer.State;
|
import algorithms.StateManager.State;
|
||||||
import algorithms.StatesContainer.States;
|
import algorithms.StateManager.States;
|
||||||
import basics.Job;
|
import basics.Job;
|
||||||
import basics.route.Driver;
|
import basics.route.Driver;
|
||||||
import basics.route.Vehicle;
|
import basics.route.Vehicle;
|
||||||
|
|
@ -43,9 +43,9 @@ final class CalculatesServiceInsertionConsideringFixCost implements JobInsertion
|
||||||
|
|
||||||
private double solution_completeness_ratio = 0.5;
|
private double solution_completeness_ratio = 0.5;
|
||||||
|
|
||||||
private StatesContainer states;
|
private StateManager states;
|
||||||
|
|
||||||
public CalculatesServiceInsertionConsideringFixCost(final JobInsertionCalculator standardInsertionCalculator, StatesContainer activityStates2) {
|
public CalculatesServiceInsertionConsideringFixCost(final JobInsertionCalculator standardInsertionCalculator, StateManager activityStates2) {
|
||||||
super();
|
super();
|
||||||
this.standardServiceInsertion = standardInsertionCalculator;
|
this.standardServiceInsertion = standardInsertionCalculator;
|
||||||
this.states = activityStates2;
|
this.states = activityStates2;
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ final class CalculatesServiceInsertionOnRouteLevel implements JobInsertionCalcul
|
||||||
|
|
||||||
private AuxilliaryCostCalculator auxilliaryPathCostCalculator;
|
private AuxilliaryCostCalculator auxilliaryPathCostCalculator;
|
||||||
|
|
||||||
private StatesContainer states;
|
private StateManager states;
|
||||||
|
|
||||||
private int nuOfActsForwardLooking = 0;
|
private int nuOfActsForwardLooking = 0;
|
||||||
|
|
||||||
|
|
@ -90,7 +90,7 @@ final class CalculatesServiceInsertionOnRouteLevel implements JobInsertionCalcul
|
||||||
logger.info("initialise " + this);
|
logger.info("initialise " + this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setActivityStates(StatesContainer activityStates2){
|
public void setActivityStates(StateManager activityStates2){
|
||||||
this.states = activityStates2;
|
this.states = activityStates2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,8 @@ import org.apache.log4j.Logger;
|
||||||
import util.Neighborhood;
|
import util.Neighborhood;
|
||||||
|
|
||||||
import algorithms.RouteStates.ActivityState;
|
import algorithms.RouteStates.ActivityState;
|
||||||
import algorithms.StatesContainer.State;
|
import algorithms.StateManager.State;
|
||||||
import algorithms.StatesContainer.States;
|
import algorithms.StateManager.States;
|
||||||
import basics.Job;
|
import basics.Job;
|
||||||
import basics.Service;
|
import basics.Service;
|
||||||
import basics.costs.VehicleRoutingActivityCosts;
|
import basics.costs.VehicleRoutingActivityCosts;
|
||||||
|
|
@ -62,7 +62,7 @@ final class CalculatesServiceInsertionWithTriangleInequality implements JobInser
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(CalculatesServiceInsertionWithTriangleInequality.class);
|
private static final Logger logger = Logger.getLogger(CalculatesServiceInsertionWithTriangleInequality.class);
|
||||||
|
|
||||||
private StatesContainer routeStates;
|
private StateManager routeStates;
|
||||||
|
|
||||||
private VehicleRoutingTransportCosts routingCosts;
|
private VehicleRoutingTransportCosts routingCosts;
|
||||||
|
|
||||||
|
|
@ -95,7 +95,7 @@ final class CalculatesServiceInsertionWithTriangleInequality implements JobInser
|
||||||
logger.info("initialise neighborhood " + neighborhood);
|
logger.info("initialise neighborhood " + neighborhood);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setActivityStates(StatesContainer activityStates2){
|
public void setActivityStates(StateManager activityStates2){
|
||||||
this.routeStates = activityStates2;
|
this.routeStates = activityStates2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ class CalculatorBuilder {
|
||||||
|
|
||||||
private VehicleRoutingProblem vrp;
|
private VehicleRoutingProblem vrp;
|
||||||
|
|
||||||
private StatesContainer states;
|
private StateManager states;
|
||||||
|
|
||||||
private boolean local = true;
|
private boolean local = true;
|
||||||
|
|
||||||
|
|
@ -111,7 +111,7 @@ class CalculatorBuilder {
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public CalculatorBuilder setStates(StatesContainer states){
|
public CalculatorBuilder setStates(StateManager states){
|
||||||
this.states = states;
|
this.states = states;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
@ -221,7 +221,7 @@ class CalculatorBuilder {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private CalculatorPlusListeners createStandardLocal(VehicleRoutingProblem vrp, StatesContainer activityStates2){
|
private CalculatorPlusListeners createStandardLocal(VehicleRoutingProblem vrp, StateManager activityStates2){
|
||||||
JobInsertionCalculator standardServiceInsertion = new CalculatesServiceInsertion(vrp.getTransportCosts(), vrp.getActivityCosts());
|
JobInsertionCalculator standardServiceInsertion = new CalculatesServiceInsertion(vrp.getTransportCosts(), vrp.getActivityCosts());
|
||||||
// JobInsertionCalculator standardServiceInsertion = new CalculatesServiceInsertionWithTriangleInequality(vrp.getTransportCosts(), vrp.getActivityCosts());
|
// JobInsertionCalculator standardServiceInsertion = new CalculatesServiceInsertionWithTriangleInequality(vrp.getTransportCosts(), vrp.getActivityCosts());
|
||||||
// ((CalculatesServiceInsertionWithTriangleInequality) standardServiceInsertion).setActivityStates(activityStates2);
|
// ((CalculatesServiceInsertionWithTriangleInequality) standardServiceInsertion).setActivityStates(activityStates2);
|
||||||
|
|
@ -234,7 +234,7 @@ class CalculatorBuilder {
|
||||||
return calcPlusListeners;
|
return calcPlusListeners;
|
||||||
}
|
}
|
||||||
|
|
||||||
private CalculatorPlusListeners createCalculatorConsideringFixedCosts(VehicleRoutingProblem vrp, JobInsertionCalculator baseCalculator, StatesContainer activityStates2, double weightOfFixedCosts){
|
private CalculatorPlusListeners createCalculatorConsideringFixedCosts(VehicleRoutingProblem vrp, JobInsertionCalculator baseCalculator, StateManager activityStates2, double weightOfFixedCosts){
|
||||||
final CalculatesServiceInsertionConsideringFixCost withFixCost = new CalculatesServiceInsertionConsideringFixCost(baseCalculator, activityStates2);
|
final CalculatesServiceInsertionConsideringFixCost withFixCost = new CalculatesServiceInsertionConsideringFixCost(baseCalculator, activityStates2);
|
||||||
withFixCost.setWeightOfFixCost(weightOfFixedCosts);
|
withFixCost.setWeightOfFixCost(weightOfFixedCosts);
|
||||||
CalculatorPlusListeners calcPlusListeners = new CalculatorPlusListeners(withFixCost);
|
CalculatorPlusListeners calcPlusListeners = new CalculatorPlusListeners(withFixCost);
|
||||||
|
|
@ -242,7 +242,7 @@ class CalculatorBuilder {
|
||||||
return calcPlusListeners;
|
return calcPlusListeners;
|
||||||
}
|
}
|
||||||
|
|
||||||
private CalculatorPlusListeners createStandardRoute(VehicleRoutingProblem vrp, StatesContainer activityStates2, int forwardLooking, int solutionMemory){
|
private CalculatorPlusListeners createStandardRoute(VehicleRoutingProblem vrp, StateManager activityStates2, int forwardLooking, int solutionMemory){
|
||||||
int after = forwardLooking;
|
int after = forwardLooking;
|
||||||
JobInsertionCalculator jobInsertionCalculator = new CalculatesServiceInsertionOnRouteLevel(vrp.getTransportCosts(), vrp.getActivityCosts());
|
JobInsertionCalculator jobInsertionCalculator = new CalculatesServiceInsertionOnRouteLevel(vrp.getTransportCosts(), vrp.getActivityCosts());
|
||||||
((CalculatesServiceInsertionOnRouteLevel)jobInsertionCalculator).setNuOfActsForwardLooking(after);
|
((CalculatesServiceInsertionOnRouteLevel)jobInsertionCalculator).setNuOfActsForwardLooking(after);
|
||||||
|
|
@ -253,7 +253,7 @@ class CalculatorBuilder {
|
||||||
return calcPlusListener;
|
return calcPlusListener;
|
||||||
}
|
}
|
||||||
|
|
||||||
private JobInsertionCalculator createFinalInsertion(VehicleFleetManager fleetManager, JobInsertionCalculator baseCalc, StatesContainer activityStates2){
|
private JobInsertionCalculator createFinalInsertion(VehicleFleetManager fleetManager, JobInsertionCalculator baseCalc, StateManager activityStates2){
|
||||||
return new CalculatesVehTypeDepServiceInsertion(fleetManager, baseCalc);
|
return new CalculatesVehTypeDepServiceInsertion(fleetManager, baseCalc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ class InsertionFactory {
|
||||||
private static Logger log = Logger.getLogger(InsertionFactory.class);
|
private static Logger log = Logger.getLogger(InsertionFactory.class);
|
||||||
|
|
||||||
public static InsertionStrategy createInsertion(VehicleRoutingProblem vrp, HierarchicalConfiguration config,
|
public static InsertionStrategy createInsertion(VehicleRoutingProblem vrp, HierarchicalConfiguration config,
|
||||||
VehicleFleetManager vehicleFleetManager, StatesContainerImpl routeStates, List<PrioritizedVRAListener> algorithmListeners, ExecutorService executorService, int nuOfThreads){
|
VehicleFleetManager vehicleFleetManager, StateManagerImpl routeStates, List<PrioritizedVRAListener> algorithmListeners, ExecutorService executorService, int nuOfThreads){
|
||||||
boolean concurrentInsertion = false;
|
boolean concurrentInsertion = false;
|
||||||
if(executorService != null) concurrentInsertion = true;
|
if(executorService != null) concurrentInsertion = true;
|
||||||
if(config.containsKey("[@name]")){
|
if(config.containsKey("[@name]")){
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,9 @@
|
||||||
package algorithms;
|
package algorithms;
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import basics.route.TourActivity;
|
import basics.route.TourActivity;
|
||||||
import basics.route.VehicleRoute;
|
import basics.route.VehicleRoute;
|
||||||
|
|
||||||
interface StatesContainer {
|
interface StateManager {
|
||||||
|
|
||||||
interface State {
|
interface State {
|
||||||
double toDouble();
|
double toDouble();
|
||||||
|
|
@ -7,7 +7,7 @@ import java.util.Map;
|
||||||
import basics.route.TourActivity;
|
import basics.route.TourActivity;
|
||||||
import basics.route.VehicleRoute;
|
import basics.route.VehicleRoute;
|
||||||
|
|
||||||
class StatesContainerImpl implements StatesContainer{
|
class StateManagerImpl implements StateManager{
|
||||||
|
|
||||||
static class StatesImpl implements States{
|
static class StatesImpl implements States{
|
||||||
|
|
||||||
|
|
@ -24,9 +24,9 @@ class StatesContainerImpl implements StatesContainer{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<VehicleRoute,States> vehicleRouteStates = new HashMap<VehicleRoute, StatesContainer.States>();
|
private Map<VehicleRoute,States> vehicleRouteStates = new HashMap<VehicleRoute, StateManager.States>();
|
||||||
|
|
||||||
private Map<TourActivity,States> activityStates = new HashMap<TourActivity, StatesContainer.States>();
|
private Map<TourActivity,States> activityStates = new HashMap<TourActivity, StateManager.States>();
|
||||||
|
|
||||||
public Map<VehicleRoute, States> getRouteStates() {
|
public Map<VehicleRoute, States> getRouteStates() {
|
||||||
return Collections.unmodifiableMap(vehicleRouteStates);
|
return Collections.unmodifiableMap(vehicleRouteStates);
|
||||||
|
|
@ -12,13 +12,13 @@ import basics.route.VehicleRoute;
|
||||||
|
|
||||||
class UdateCostsAtRouteLevel implements JobInsertedListener, InsertionStartsListener, InsertionEndsListener{
|
class UdateCostsAtRouteLevel implements JobInsertedListener, InsertionStartsListener, InsertionEndsListener{
|
||||||
|
|
||||||
private StatesContainerImpl states;
|
private StateManagerImpl states;
|
||||||
|
|
||||||
private VehicleRoutingTransportCosts tpCosts;
|
private VehicleRoutingTransportCosts tpCosts;
|
||||||
|
|
||||||
private VehicleRoutingActivityCosts actCosts;
|
private VehicleRoutingActivityCosts actCosts;
|
||||||
|
|
||||||
public UdateCostsAtRouteLevel(StatesContainerImpl states, VehicleRoutingTransportCosts tpCosts, VehicleRoutingActivityCosts actCosts) {
|
public UdateCostsAtRouteLevel(StateManagerImpl states, VehicleRoutingTransportCosts tpCosts, VehicleRoutingActivityCosts actCosts) {
|
||||||
super();
|
super();
|
||||||
this.states = states;
|
this.states = states;
|
||||||
this.tpCosts = tpCosts;
|
this.tpCosts = tpCosts;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package algorithms;
|
package algorithms;
|
||||||
|
|
||||||
import algorithms.ForwardInTimeListeners.ForwardInTimeListener;
|
import algorithms.ForwardInTimeListeners.ForwardInTimeListener;
|
||||||
import algorithms.StatesContainer.StateImpl;
|
import algorithms.StateManager.StateImpl;
|
||||||
import basics.costs.ForwardTransportCost;
|
import basics.costs.ForwardTransportCost;
|
||||||
import basics.costs.VehicleRoutingActivityCosts;
|
import basics.costs.VehicleRoutingActivityCosts;
|
||||||
import basics.route.End;
|
import basics.route.End;
|
||||||
|
|
@ -15,7 +15,7 @@ class UpdateCostsAtAllLevels implements ForwardInTimeListener{
|
||||||
|
|
||||||
private ForwardTransportCost transportCost;
|
private ForwardTransportCost transportCost;
|
||||||
|
|
||||||
private StatesContainerImpl states;
|
private StateManagerImpl states;
|
||||||
|
|
||||||
private double totalOperationCost = 0.0;
|
private double totalOperationCost = 0.0;
|
||||||
|
|
||||||
|
|
@ -25,7 +25,7 @@ class UpdateCostsAtAllLevels implements ForwardInTimeListener{
|
||||||
|
|
||||||
private double startTimeAtPrevAct = 0.0;
|
private double startTimeAtPrevAct = 0.0;
|
||||||
|
|
||||||
public UpdateCostsAtAllLevels(VehicleRoutingActivityCosts activityCost, ForwardTransportCost transportCost, StatesContainerImpl states) {
|
public UpdateCostsAtAllLevels(VehicleRoutingActivityCosts activityCost, ForwardTransportCost transportCost, StateManagerImpl states) {
|
||||||
super();
|
super();
|
||||||
this.activityCost = activityCost;
|
this.activityCost = activityCost;
|
||||||
this.transportCost = transportCost;
|
this.transportCost = transportCost;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package algorithms;
|
package algorithms;
|
||||||
|
|
||||||
import algorithms.ForwardInTimeListeners.ForwardInTimeListener;
|
import algorithms.ForwardInTimeListeners.ForwardInTimeListener;
|
||||||
import algorithms.StatesContainer.StateImpl;
|
import algorithms.StateManager.StateImpl;
|
||||||
import basics.route.End;
|
import basics.route.End;
|
||||||
import basics.route.Start;
|
import basics.route.Start;
|
||||||
import basics.route.TourActivity;
|
import basics.route.TourActivity;
|
||||||
|
|
@ -9,9 +9,9 @@ import basics.route.VehicleRoute;
|
||||||
|
|
||||||
class UpdateEarliestStartTimeWindowAtActLocations implements ForwardInTimeListener{
|
class UpdateEarliestStartTimeWindowAtActLocations implements ForwardInTimeListener{
|
||||||
|
|
||||||
private StatesContainerImpl states;
|
private StateManagerImpl states;
|
||||||
|
|
||||||
public UpdateEarliestStartTimeWindowAtActLocations(StatesContainerImpl states) {
|
public UpdateEarliestStartTimeWindowAtActLocations(StateManagerImpl states) {
|
||||||
super();
|
super();
|
||||||
this.states = states;
|
this.states = states;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package algorithms;
|
package algorithms;
|
||||||
|
|
||||||
import algorithms.BackwardInTimeListeners.BackwardInTimeListener;
|
import algorithms.BackwardInTimeListeners.BackwardInTimeListener;
|
||||||
import algorithms.StatesContainer.StateImpl;
|
import algorithms.StateManager.StateImpl;
|
||||||
import basics.route.End;
|
import basics.route.End;
|
||||||
import basics.route.Start;
|
import basics.route.Start;
|
||||||
import basics.route.TourActivity;
|
import basics.route.TourActivity;
|
||||||
|
|
@ -9,9 +9,9 @@ import basics.route.VehicleRoute;
|
||||||
|
|
||||||
class UpdateLatestOperationStartTimeAtActLocations implements BackwardInTimeListener{
|
class UpdateLatestOperationStartTimeAtActLocations implements BackwardInTimeListener{
|
||||||
|
|
||||||
private StatesContainerImpl states;
|
private StateManagerImpl states;
|
||||||
|
|
||||||
public UpdateLatestOperationStartTimeAtActLocations(StatesContainerImpl states) {
|
public UpdateLatestOperationStartTimeAtActLocations(StateManagerImpl states) {
|
||||||
super();
|
super();
|
||||||
this.states = states;
|
this.states = states;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package algorithms;
|
package algorithms;
|
||||||
|
|
||||||
import algorithms.ForwardInTimeListeners.ForwardInTimeListener;
|
import algorithms.ForwardInTimeListeners.ForwardInTimeListener;
|
||||||
import algorithms.StatesContainer.StateImpl;
|
import algorithms.StateManager.StateImpl;
|
||||||
import basics.route.End;
|
import basics.route.End;
|
||||||
import basics.route.Start;
|
import basics.route.Start;
|
||||||
import basics.route.TourActivity;
|
import basics.route.TourActivity;
|
||||||
|
|
@ -17,11 +17,11 @@ class UpdateLoadAtAllLevels implements ForwardInTimeListener{
|
||||||
|
|
||||||
private double load = 0.0;
|
private double load = 0.0;
|
||||||
|
|
||||||
private StatesContainerImpl states;
|
private StateManagerImpl states;
|
||||||
|
|
||||||
private VehicleRoute vehicleRoute;
|
private VehicleRoute vehicleRoute;
|
||||||
|
|
||||||
public UpdateLoadAtAllLevels(StatesContainerImpl states) {
|
public UpdateLoadAtAllLevels(StateManagerImpl states) {
|
||||||
super();
|
super();
|
||||||
this.states = states;
|
this.states = states;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ package algorithms;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
import algorithms.StatesContainer.StateImpl;
|
import algorithms.StateManager.StateImpl;
|
||||||
import basics.Job;
|
import basics.Job;
|
||||||
import basics.Service;
|
import basics.Service;
|
||||||
import basics.algo.InsertionStartsListener;
|
import basics.algo.InsertionStartsListener;
|
||||||
|
|
@ -11,9 +11,9 @@ import basics.route.VehicleRoute;
|
||||||
|
|
||||||
class UpdateLoadAtRouteLevel implements JobInsertedListener, InsertionStartsListener{
|
class UpdateLoadAtRouteLevel implements JobInsertedListener, InsertionStartsListener{
|
||||||
|
|
||||||
private StatesContainerImpl states;
|
private StateManagerImpl states;
|
||||||
|
|
||||||
public UpdateLoadAtRouteLevel(StatesContainerImpl states) {
|
public UpdateLoadAtRouteLevel(StateManagerImpl states) {
|
||||||
super();
|
super();
|
||||||
this.states = states;
|
this.states = states;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ class UpdateStates implements JobInsertedListener, RuinListener{
|
||||||
|
|
||||||
private IterateRouteBackwardInTime iterateBackward;
|
private IterateRouteBackwardInTime iterateBackward;
|
||||||
|
|
||||||
public UpdateStates(StatesContainerImpl states, VehicleRoutingTransportCosts routingCosts, VehicleRoutingActivityCosts activityCosts) {
|
public UpdateStates(StateManagerImpl states, VehicleRoutingTransportCosts routingCosts, VehicleRoutingActivityCosts activityCosts) {
|
||||||
|
|
||||||
iterateForward = new IterateRouteForwardInTime(routingCosts);
|
iterateForward = new IterateRouteForwardInTime(routingCosts);
|
||||||
iterateForward.addListener(new UpdateActivityTimes());
|
iterateForward.addListener(new UpdateActivityTimes());
|
||||||
|
|
|
||||||
|
|
@ -448,7 +448,7 @@ public class VehicleRoutingAlgorithms {
|
||||||
|
|
||||||
algorithmListeners.add(new PrioritizedVRAListener(Priority.LOW, new SolutionVerifier()));
|
algorithmListeners.add(new PrioritizedVRAListener(Priority.LOW, new SolutionVerifier()));
|
||||||
|
|
||||||
final StatesContainerImpl routeStates = new StatesContainerImpl();
|
final StateManagerImpl routeStates = new StateManagerImpl();
|
||||||
IterationStartsListener resetStates = new IterationStartsListener() {
|
IterationStartsListener resetStates = new IterationStartsListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -570,7 +570,7 @@ public class VehicleRoutingAlgorithms {
|
||||||
metaAlgorithm.getAlgorithmListeners().addAll(algorithmListeners);
|
metaAlgorithm.getAlgorithmListeners().addAll(algorithmListeners);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static AlgorithmStartsListener createInitialSolution(XMLConfiguration config, final VehicleRoutingProblem vrp, VehicleFleetManager vehicleFleetManager, StatesContainerImpl routeStates, Set<PrioritizedVRAListener> algorithmListeners, TypedMap definedClasses, ExecutorService executorService, int nuOfThreads) {
|
private static AlgorithmStartsListener createInitialSolution(XMLConfiguration config, final VehicleRoutingProblem vrp, VehicleFleetManager vehicleFleetManager, StateManagerImpl routeStates, Set<PrioritizedVRAListener> algorithmListeners, TypedMap definedClasses, ExecutorService executorService, int nuOfThreads) {
|
||||||
List<HierarchicalConfiguration> modConfigs = config.configurationsAt("construction.insertion");
|
List<HierarchicalConfiguration> modConfigs = config.configurationsAt("construction.insertion");
|
||||||
if(modConfigs == null) return null;
|
if(modConfigs == null) return null;
|
||||||
if(modConfigs.isEmpty()) return null;
|
if(modConfigs.isEmpty()) return null;
|
||||||
|
|
@ -667,7 +667,7 @@ public class VehicleRoutingAlgorithms {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static SearchStrategyModule buildModule(HierarchicalConfiguration moduleConfig, final VehicleRoutingProblem vrp, VehicleFleetManager vehicleFleetManager,
|
private static SearchStrategyModule buildModule(HierarchicalConfiguration moduleConfig, final VehicleRoutingProblem vrp, VehicleFleetManager vehicleFleetManager,
|
||||||
final StatesContainerImpl routeStates, Set<PrioritizedVRAListener> algorithmListeners, TypedMap definedClasses, ExecutorService executorService, int nuOfThreads) {
|
final StateManagerImpl routeStates, Set<PrioritizedVRAListener> algorithmListeners, TypedMap definedClasses, ExecutorService executorService, int nuOfThreads) {
|
||||||
String moduleName = moduleConfig.getString("[@name]");
|
String moduleName = moduleConfig.getString("[@name]");
|
||||||
if(moduleName == null) throw new IllegalStateException("module(-name) is missing.");
|
if(moduleName == null) throw new IllegalStateException("module(-name) is missing.");
|
||||||
String moduleId = moduleConfig.getString("[@id]");
|
String moduleId = moduleConfig.getString("[@id]");
|
||||||
|
|
@ -805,7 +805,7 @@ public class VehicleRoutingAlgorithms {
|
||||||
"\n\tgendreauPostOpt");
|
"\n\tgendreauPostOpt");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static RuinStrategy getRadialRuin(final VehicleRoutingProblem vrp, final StatesContainerImpl routeStates, TypedMap definedClasses, ModKey modKey, double shareToRuin, JobDistance jobDistance) {
|
private static RuinStrategy getRadialRuin(final VehicleRoutingProblem vrp, final StateManagerImpl routeStates, TypedMap definedClasses, ModKey modKey, double shareToRuin, JobDistance jobDistance) {
|
||||||
RuinStrategyKey stratKey = new RuinStrategyKey(modKey);
|
RuinStrategyKey stratKey = new RuinStrategyKey(modKey);
|
||||||
RuinStrategy ruin = definedClasses.get(stratKey);
|
RuinStrategy ruin = definedClasses.get(stratKey);
|
||||||
if(ruin == null){
|
if(ruin == null){
|
||||||
|
|
@ -816,7 +816,7 @@ public class VehicleRoutingAlgorithms {
|
||||||
return ruin;
|
return ruin;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static RuinStrategy getRandomRuin(final VehicleRoutingProblem vrp, final StatesContainerImpl routeStates, TypedMap definedClasses, ModKey modKey, double shareToRuin) {
|
private static RuinStrategy getRandomRuin(final VehicleRoutingProblem vrp, final StateManagerImpl routeStates, TypedMap definedClasses, ModKey modKey, double shareToRuin) {
|
||||||
RuinStrategyKey stratKey = new RuinStrategyKey(modKey);
|
RuinStrategyKey stratKey = new RuinStrategyKey(modKey);
|
||||||
RuinStrategy ruin = definedClasses.get(stratKey);
|
RuinStrategy ruin = definedClasses.get(stratKey);
|
||||||
if(ruin == null){
|
if(ruin == null){
|
||||||
|
|
@ -827,7 +827,7 @@ public class VehicleRoutingAlgorithms {
|
||||||
return ruin;
|
return ruin;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static InsertionStrategy createInsertionStrategy(HierarchicalConfiguration moduleConfig, VehicleRoutingProblem vrp,VehicleFleetManager vehicleFleetManager, StatesContainerImpl routeStates, List<PrioritizedVRAListener> algorithmListeners, ExecutorService executorService, int nuOfThreads) {
|
private static InsertionStrategy createInsertionStrategy(HierarchicalConfiguration moduleConfig, VehicleRoutingProblem vrp,VehicleFleetManager vehicleFleetManager, StateManagerImpl routeStates, List<PrioritizedVRAListener> algorithmListeners, ExecutorService executorService, int nuOfThreads) {
|
||||||
InsertionStrategy insertion = InsertionFactory.createInsertion(vrp, moduleConfig, vehicleFleetManager, routeStates, algorithmListeners, executorService, nuOfThreads);
|
InsertionStrategy insertion = InsertionFactory.createInsertion(vrp, moduleConfig, vehicleFleetManager, routeStates, algorithmListeners, executorService, nuOfThreads);
|
||||||
return insertion;
|
return insertion;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,7 @@ public class GendreauPostOptTest {
|
||||||
|
|
||||||
Service job3;
|
Service job3;
|
||||||
|
|
||||||
private StatesContainerImpl states;
|
private StateManagerImpl states;
|
||||||
|
|
||||||
private List<Vehicle> vehicles;
|
private List<Vehicle> vehicles;
|
||||||
|
|
||||||
|
|
@ -147,7 +147,7 @@ public class GendreauPostOptTest {
|
||||||
|
|
||||||
// Collection<Vehicle> vehicles = Arrays.asList(lightVehicle1,lightVehicle2, heavyVehicle);
|
// Collection<Vehicle> vehicles = Arrays.asList(lightVehicle1,lightVehicle2, heavyVehicle);
|
||||||
fleetManager = new VehicleFleetManagerImpl(vehicles);
|
fleetManager = new VehicleFleetManagerImpl(vehicles);
|
||||||
states = new StatesContainerImpl();
|
states = new StateManagerImpl();
|
||||||
|
|
||||||
activityCosts = new ExampleActivityCostFunction();
|
activityCosts = new ExampleActivityCostFunction();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ public class TestCalculatesServiceInsertion {
|
||||||
|
|
||||||
private Service third;
|
private Service third;
|
||||||
|
|
||||||
private StatesContainerImpl states;
|
private StateManagerImpl states;
|
||||||
|
|
||||||
private NoDriver driver;
|
private NoDriver driver;
|
||||||
|
|
||||||
|
|
@ -152,7 +152,7 @@ public class TestCalculatesServiceInsertion {
|
||||||
jobs.add(second);
|
jobs.add(second);
|
||||||
jobs.add(third);
|
jobs.add(third);
|
||||||
|
|
||||||
states = new StatesContainerImpl();
|
states = new StateManagerImpl();
|
||||||
|
|
||||||
ExampleActivityCostFunction activityCosts = new ExampleActivityCostFunction();
|
ExampleActivityCostFunction activityCosts = new ExampleActivityCostFunction();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ public class TestCalculatesServiceInsertionOnRouteLevel {
|
||||||
|
|
||||||
private Service third;
|
private Service third;
|
||||||
|
|
||||||
private StatesContainerImpl states;
|
private StateManagerImpl states;
|
||||||
|
|
||||||
private NoDriver driver;
|
private NoDriver driver;
|
||||||
|
|
||||||
|
|
@ -143,7 +143,7 @@ public class TestCalculatesServiceInsertionOnRouteLevel {
|
||||||
jobs.add(second);
|
jobs.add(second);
|
||||||
jobs.add(third);
|
jobs.add(third);
|
||||||
|
|
||||||
states = new StatesContainerImpl();
|
states = new StateManagerImpl();
|
||||||
|
|
||||||
ExampleActivityCostFunction activityCosts = new ExampleActivityCostFunction();
|
ExampleActivityCostFunction activityCosts = new ExampleActivityCostFunction();
|
||||||
serviceInsertion = new CalculatesServiceInsertionOnRouteLevel(costs,activityCosts);
|
serviceInsertion = new CalculatesServiceInsertionOnRouteLevel(costs,activityCosts);
|
||||||
|
|
|
||||||
|
|
@ -129,7 +129,7 @@ public class TestIterateRouteForwardInTime {
|
||||||
@Test
|
@Test
|
||||||
public void whenIteratingWithLoadUpdateAtActLocations_itShouldUpdateLoad() {
|
public void whenIteratingWithLoadUpdateAtActLocations_itShouldUpdateLoad() {
|
||||||
IterateRouteForwardInTime forwardInTime = new IterateRouteForwardInTime(cost);
|
IterateRouteForwardInTime forwardInTime = new IterateRouteForwardInTime(cost);
|
||||||
StatesContainerImpl states = new StatesContainerImpl();
|
StateManagerImpl states = new StateManagerImpl();
|
||||||
forwardInTime.addListener(new UpdateLoadAtAllLevels(states));
|
forwardInTime.addListener(new UpdateLoadAtAllLevels(states));
|
||||||
forwardInTime.iterate(vehicleRoute);
|
forwardInTime.iterate(vehicleRoute);
|
||||||
|
|
||||||
|
|
@ -153,7 +153,7 @@ public class TestIterateRouteForwardInTime {
|
||||||
@Test
|
@Test
|
||||||
public void testStatesOfAct1(){
|
public void testStatesOfAct1(){
|
||||||
IterateRouteForwardInTime forwardInTime = new IterateRouteForwardInTime(cost);
|
IterateRouteForwardInTime forwardInTime = new IterateRouteForwardInTime(cost);
|
||||||
StatesContainerImpl states = new StatesContainerImpl();
|
StateManagerImpl states = new StateManagerImpl();
|
||||||
forwardInTime.addListener(new UpdateLoadAtAllLevels(states));
|
forwardInTime.addListener(new UpdateLoadAtAllLevels(states));
|
||||||
forwardInTime.addListener(new UpdateEarliestStartTimeWindowAtActLocations(states));
|
forwardInTime.addListener(new UpdateEarliestStartTimeWindowAtActLocations(states));
|
||||||
forwardInTime.addListener(new UpdateCostsAtAllLevels(new DefaultVehicleRoutingActivityCosts(), cost, states));
|
forwardInTime.addListener(new UpdateCostsAtAllLevels(new DefaultVehicleRoutingActivityCosts(), cost, states));
|
||||||
|
|
@ -168,7 +168,7 @@ public class TestIterateRouteForwardInTime {
|
||||||
@Test
|
@Test
|
||||||
public void testStatesOfAct2(){
|
public void testStatesOfAct2(){
|
||||||
IterateRouteForwardInTime forwardInTime = new IterateRouteForwardInTime(cost);
|
IterateRouteForwardInTime forwardInTime = new IterateRouteForwardInTime(cost);
|
||||||
StatesContainerImpl states = new StatesContainerImpl();
|
StateManagerImpl states = new StateManagerImpl();
|
||||||
forwardInTime.addListener(new UpdateLoadAtAllLevels(states));
|
forwardInTime.addListener(new UpdateLoadAtAllLevels(states));
|
||||||
forwardInTime.addListener(new UpdateEarliestStartTimeWindowAtActLocations(states));
|
forwardInTime.addListener(new UpdateEarliestStartTimeWindowAtActLocations(states));
|
||||||
forwardInTime.addListener(new UpdateCostsAtAllLevels(new DefaultVehicleRoutingActivityCosts(), cost, states));
|
forwardInTime.addListener(new UpdateCostsAtAllLevels(new DefaultVehicleRoutingActivityCosts(), cost, states));
|
||||||
|
|
@ -183,7 +183,7 @@ public class TestIterateRouteForwardInTime {
|
||||||
@Test
|
@Test
|
||||||
public void testStatesOfAct3(){
|
public void testStatesOfAct3(){
|
||||||
IterateRouteForwardInTime forwardInTime = new IterateRouteForwardInTime(cost);
|
IterateRouteForwardInTime forwardInTime = new IterateRouteForwardInTime(cost);
|
||||||
StatesContainerImpl states = new StatesContainerImpl();
|
StateManagerImpl states = new StateManagerImpl();
|
||||||
forwardInTime.addListener(new UpdateActivityTimes());
|
forwardInTime.addListener(new UpdateActivityTimes());
|
||||||
forwardInTime.addListener(new UpdateCostsAtAllLevels(new DefaultVehicleRoutingActivityCosts(), cost, states));
|
forwardInTime.addListener(new UpdateCostsAtAllLevels(new DefaultVehicleRoutingActivityCosts(), cost, states));
|
||||||
forwardInTime.iterate(vehicleRoute);
|
forwardInTime.iterate(vehicleRoute);
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ public class TestTourStateUpdaterWithService {
|
||||||
|
|
||||||
UpdateStates updateStates;
|
UpdateStates updateStates;
|
||||||
|
|
||||||
StatesContainerImpl states;
|
StateManagerImpl states;
|
||||||
|
|
||||||
private VehicleRoute vehicleRoute;
|
private VehicleRoute vehicleRoute;
|
||||||
|
|
||||||
|
|
@ -101,7 +101,7 @@ public class TestTourStateUpdaterWithService {
|
||||||
services.add(firstService);
|
services.add(firstService);
|
||||||
services.add(secondService);
|
services.add(secondService);
|
||||||
|
|
||||||
states = new StatesContainerImpl();
|
states = new StateManagerImpl();
|
||||||
|
|
||||||
VehicleTypeImpl type = VehicleTypeImpl.Builder.newInstance("test", 0).build();
|
VehicleTypeImpl type = VehicleTypeImpl.Builder.newInstance("test", 0).build();
|
||||||
vehicle = VehicleImpl.Builder.newInstance("testvehicle").setType(type).setLocationId("0,0")
|
vehicle = VehicleImpl.Builder.newInstance("testvehicle").setType(type).setLocationId("0,0")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue