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

Merge branch 'master' into experimentWithInsertion

Conflicts:
	jsprit-core/src/main/java/algorithms/CalculatesServiceInsertion.java
	jsprit-core/src/main/java/algorithms/CalculatesServiceInsertionOnRouteLevel.java
This commit is contained in:
Stefan Schroeder 2013-08-22 12:08:53 +02:00
commit c60ab8afd0
22 changed files with 64 additions and 64 deletions

View file

@ -15,7 +15,7 @@ package algorithms;
import org.apache.log4j.Logger;
import util.Neighborhood;
import algorithms.StatesContainer.State;
import algorithms.StateManager.State;
import basics.Job;
import basics.Service;
import basics.costs.VehicleRoutingActivityCosts;
@ -36,7 +36,7 @@ final class CalculatesServiceInsertion implements JobInsertionCalculator{
private static final Logger logger = Logger.getLogger(CalculatesServiceInsertion.class);
private StatesContainer states;
private StateManager states;
private VehicleRoutingTransportCosts routingCosts;
@ -71,7 +71,8 @@ final class CalculatesServiceInsertion implements JobInsertionCalculator{
logger.info("initialise neighborhood " + neighborhood);
}
public void setStates(StatesContainer activityStates2){
public void setStates(StateManager activityStates2){
this.states = activityStates2;
}

View file

@ -23,8 +23,8 @@ package algorithms;
import org.apache.log4j.Logger;
import algorithms.InsertionData.NoInsertionFound;
import algorithms.StatesContainer.State;
import algorithms.StatesContainer.States;
import algorithms.StateManager.State;
import algorithms.StateManager.States;
import basics.Job;
import basics.route.Driver;
import basics.route.Vehicle;
@ -43,9 +43,9 @@ final class CalculatesServiceInsertionConsideringFixCost implements JobInsertion
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();
this.standardServiceInsertion = standardInsertionCalculator;
this.states = activityStates2;

View file

@ -51,7 +51,7 @@ final class CalculatesServiceInsertionOnRouteLevel implements JobInsertionCalcul
private AuxilliaryCostCalculator auxilliaryPathCostCalculator;
private StatesContainer states;
private StateManager states;
private int nuOfActsForwardLooking = 0;
@ -90,7 +90,8 @@ final class CalculatesServiceInsertionOnRouteLevel implements JobInsertionCalcul
logger.info("initialise " + this);
}
public void setStates(StatesContainer activityStates2){
public void setStates(StateManager activityStates2){
this.states = activityStates2;
}

View file

@ -17,8 +17,8 @@ import org.apache.log4j.Logger;
import util.Neighborhood;
import algorithms.RouteStates.ActivityState;
import algorithms.StatesContainer.State;
import algorithms.StatesContainer.States;
import algorithms.StateManager.State;
import algorithms.StateManager.States;
import basics.Job;
import basics.Service;
import basics.costs.VehicleRoutingActivityCosts;
@ -62,7 +62,7 @@ final class CalculatesServiceInsertionWithTriangleInequality implements JobInser
private static final Logger logger = Logger.getLogger(CalculatesServiceInsertionWithTriangleInequality.class);
private StatesContainer routeStates;
private StateManager routeStates;
private VehicleRoutingTransportCosts routingCosts;
@ -97,7 +97,7 @@ final class CalculatesServiceInsertionWithTriangleInequality implements JobInser
logger.info("initialise neighborhood " + neighborhood);
}
public void setActivityStates(StatesContainer activityStates2){
public void setActivityStates(StateManager activityStates2){
this.routeStates = activityStates2;
}

View file

@ -70,7 +70,7 @@ class CalculatorBuilder {
private VehicleRoutingProblem vrp;
private StatesContainer states;
private StateManager states;
private boolean local = true;
@ -111,7 +111,7 @@ class CalculatorBuilder {
*
* @return
*/
public CalculatorBuilder setStates(StatesContainer states){
public CalculatorBuilder setStates(StateManager states){
this.states = states;
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());
((CalculatesServiceInsertion) standardServiceInsertion).setStates(activityStates2);
@ -232,7 +232,7 @@ class CalculatorBuilder {
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);
withFixCost.setWeightOfFixCost(weightOfFixedCosts);
CalculatorPlusListeners calcPlusListeners = new CalculatorPlusListeners(withFixCost);
@ -240,7 +240,7 @@ class CalculatorBuilder {
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;
JobInsertionCalculator jobInsertionCalculator = new CalculatesServiceInsertionOnRouteLevel(vrp.getTransportCosts(), vrp.getActivityCosts());
((CalculatesServiceInsertionOnRouteLevel)jobInsertionCalculator).setNuOfActsForwardLooking(after);
@ -251,7 +251,7 @@ class CalculatorBuilder {
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);
}

View file

@ -6,9 +6,9 @@ class HardConstraints {
static class HardLoadConstraint implements HardConstraint{
private StatesContainer states;
private StateManager states;
public HardLoadConstraint(StatesContainer states) {
public HardLoadConstraint(StateManager states) {
super();
this.states = states;
}

View file

@ -38,7 +38,7 @@ class InsertionFactory {
private static Logger log = Logger.getLogger(InsertionFactory.class);
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;
if(executorService != null) concurrentInsertion = true;
if(config.containsKey("[@name]")){

View file

@ -1,11 +1,9 @@
package algorithms;
import java.util.Map;
import basics.route.TourActivity;
import basics.route.VehicleRoute;
interface StatesContainer {
interface StateManager {
interface State {
double toDouble();

View file

@ -7,7 +7,7 @@ import java.util.Map;
import basics.route.TourActivity;
import basics.route.VehicleRoute;
class StatesContainerImpl implements StatesContainer{
class StateManagerImpl implements StateManager{
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() {
return Collections.unmodifiableMap(vehicleRouteStates);

View file

@ -12,13 +12,13 @@ import basics.route.VehicleRoute;
class UdateCostsAtRouteLevel implements JobInsertedListener, InsertionStartsListener, InsertionEndsListener{
private StatesContainerImpl states;
private StateManagerImpl states;
private VehicleRoutingTransportCosts tpCosts;
private VehicleRoutingActivityCosts actCosts;
public UdateCostsAtRouteLevel(StatesContainerImpl states, VehicleRoutingTransportCosts tpCosts, VehicleRoutingActivityCosts actCosts) {
public UdateCostsAtRouteLevel(StateManagerImpl states, VehicleRoutingTransportCosts tpCosts, VehicleRoutingActivityCosts actCosts) {
super();
this.states = states;
this.tpCosts = tpCosts;

View file

@ -1,7 +1,7 @@
package algorithms;
import algorithms.ForwardInTimeListeners.ForwardInTimeListener;
import algorithms.StatesContainer.StateImpl;
import algorithms.StateManager.StateImpl;
import basics.costs.ForwardTransportCost;
import basics.costs.VehicleRoutingActivityCosts;
import basics.route.End;
@ -15,7 +15,7 @@ class UpdateCostsAtAllLevels implements ForwardInTimeListener{
private ForwardTransportCost transportCost;
private StatesContainerImpl states;
private StateManagerImpl states;
private double totalOperationCost = 0.0;
@ -25,7 +25,7 @@ class UpdateCostsAtAllLevels implements ForwardInTimeListener{
private double startTimeAtPrevAct = 0.0;
public UpdateCostsAtAllLevels(VehicleRoutingActivityCosts activityCost, ForwardTransportCost transportCost, StatesContainerImpl states) {
public UpdateCostsAtAllLevels(VehicleRoutingActivityCosts activityCost, ForwardTransportCost transportCost, StateManagerImpl states) {
super();
this.activityCost = activityCost;
this.transportCost = transportCost;

View file

@ -1,7 +1,7 @@
package algorithms;
import algorithms.ForwardInTimeListeners.ForwardInTimeListener;
import algorithms.StatesContainer.StateImpl;
import algorithms.StateManager.StateImpl;
import basics.route.End;
import basics.route.Start;
import basics.route.TourActivity;
@ -9,9 +9,9 @@ import basics.route.VehicleRoute;
class UpdateEarliestStartTimeWindowAtActLocations implements ForwardInTimeListener{
private StatesContainerImpl states;
private StateManagerImpl states;
public UpdateEarliestStartTimeWindowAtActLocations(StatesContainerImpl states) {
public UpdateEarliestStartTimeWindowAtActLocations(StateManagerImpl states) {
super();
this.states = states;
}

View file

@ -1,7 +1,7 @@
package algorithms;
import algorithms.BackwardInTimeListeners.BackwardInTimeListener;
import algorithms.StatesContainer.StateImpl;
import algorithms.StateManager.StateImpl;
import basics.route.End;
import basics.route.Start;
import basics.route.TourActivity;
@ -9,9 +9,9 @@ import basics.route.VehicleRoute;
class UpdateLatestOperationStartTimeAtActLocations implements BackwardInTimeListener{
private StatesContainerImpl states;
private StateManagerImpl states;
public UpdateLatestOperationStartTimeAtActLocations(StatesContainerImpl states) {
public UpdateLatestOperationStartTimeAtActLocations(StateManagerImpl states) {
super();
this.states = states;
}

View file

@ -1,7 +1,7 @@
package algorithms;
import algorithms.ForwardInTimeListeners.ForwardInTimeListener;
import algorithms.StatesContainer.StateImpl;
import algorithms.StateManager.StateImpl;
import basics.route.End;
import basics.route.Start;
import basics.route.TourActivity;
@ -17,11 +17,11 @@ class UpdateLoadAtAllLevels implements ForwardInTimeListener{
private double load = 0.0;
private StatesContainerImpl states;
private StateManagerImpl states;
private VehicleRoute vehicleRoute;
public UpdateLoadAtAllLevels(StatesContainerImpl states) {
public UpdateLoadAtAllLevels(StateManagerImpl states) {
super();
this.states = states;
}

View file

@ -2,7 +2,7 @@ package algorithms;
import java.util.Collection;
import algorithms.StatesContainer.StateImpl;
import algorithms.StateManager.StateImpl;
import basics.Job;
import basics.Service;
import basics.algo.InsertionStartsListener;
@ -11,9 +11,9 @@ import basics.route.VehicleRoute;
class UpdateLoadAtRouteLevel implements JobInsertedListener, InsertionStartsListener{
private StatesContainerImpl states;
private StateManagerImpl states;
public UpdateLoadAtRouteLevel(StatesContainerImpl states) {
public UpdateLoadAtRouteLevel(StateManagerImpl states) {
super();
this.states = states;
}

View file

@ -15,7 +15,7 @@ class UpdateStates implements JobInsertedListener, RuinListener{
private IterateRouteBackwardInTime iterateBackward;
public UpdateStates(StatesContainerImpl states, VehicleRoutingTransportCosts routingCosts, VehicleRoutingActivityCosts activityCosts) {
public UpdateStates(StateManagerImpl states, VehicleRoutingTransportCosts routingCosts, VehicleRoutingActivityCosts activityCosts) {
iterateForward = new IterateRouteForwardInTime(routingCosts);
iterateForward.addListener(new UpdateActivityTimes());

View file

@ -448,7 +448,7 @@ public class VehicleRoutingAlgorithms {
algorithmListeners.add(new PrioritizedVRAListener(Priority.LOW, new SolutionVerifier()));
final StatesContainerImpl routeStates = new StatesContainerImpl();
final StateManagerImpl routeStates = new StateManagerImpl();
IterationStartsListener resetStates = new IterationStartsListener() {
@Override
@ -570,7 +570,7 @@ public class VehicleRoutingAlgorithms {
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");
if(modConfigs == null) 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,
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]");
if(moduleName == null) throw new IllegalStateException("module(-name) is missing.");
String moduleId = moduleConfig.getString("[@id]");
@ -805,7 +805,7 @@ public class VehicleRoutingAlgorithms {
"\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);
RuinStrategy ruin = definedClasses.get(stratKey);
if(ruin == null){
@ -816,7 +816,7 @@ public class VehicleRoutingAlgorithms {
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);
RuinStrategy ruin = definedClasses.get(stratKey);
if(ruin == null){
@ -827,7 +827,7 @@ public class VehicleRoutingAlgorithms {
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);
return insertion;
}