mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
refine Gendreau
This commit is contained in:
parent
c31949f538
commit
0586b9664c
3 changed files with 12 additions and 13 deletions
|
|
@ -64,7 +64,7 @@ public final class Gendreau implements SearchStrategyModule{
|
|||
this.shareOfJobsToRuin = shareOfJobsToRuin;
|
||||
}
|
||||
|
||||
public Gendreau(VehicleRoutingProblem vrp, RuinStrategy ruin, InsertionStrategy insertionStrategy) {
|
||||
public Gendreau(VehicleRoutingProblem vrp, RuinStrategy ruin, InsertionStrategy insertionStrategy, VehicleFleetManager vehicleFleetManager) {
|
||||
super();
|
||||
InsertionListeners insertionListeners = new InsertionListeners();
|
||||
insertionListeners.addAllListeners(insertionStrategy.getListeners());
|
||||
|
|
@ -72,6 +72,7 @@ public final class Gendreau implements SearchStrategyModule{
|
|||
this.ruin = ruin;
|
||||
this.vrp = vrp;
|
||||
this.insertionStrategy = insertionStrategy;
|
||||
this.fleetManager = vehicleFleetManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -88,10 +89,10 @@ public final class Gendreau implements SearchStrategyModule{
|
|||
this.nOfIterations = nOfIterations;
|
||||
}
|
||||
|
||||
public void setFleetManager(VehicleFleetManager vehicleFleetManager) {
|
||||
this.fleetManager = vehicleFleetManager;
|
||||
|
||||
}
|
||||
// public void setFleetManager(VehicleFleetManager vehicleFleetManager) {
|
||||
// this.fleetManager = vehicleFleetManager;
|
||||
//
|
||||
// }
|
||||
|
||||
@Override
|
||||
public VehicleRoutingProblemSolution runAndGetSolution(VehicleRoutingProblemSolution vrpSolution) {
|
||||
|
|
@ -119,14 +120,14 @@ public final class Gendreau implements SearchStrategyModule{
|
|||
VehicleRoute emptyRoute1 = VehicleRoute.emptyRoute();
|
||||
copiedRoutes.add(emptyRoute1);
|
||||
insertionStrategy.insertJobs(Arrays.asList(emptyRoute1), Arrays.asList(targetJob));
|
||||
// routeAlgorithm.insertJob(targetJob, routeAlgorithm.calculateBestInsertion(emptyRoute1, targetJob, Double.MAX_VALUE), emptyRoute1);
|
||||
|
||||
unassignedJobs.remove(targetJob);
|
||||
|
||||
VehicleRoute emptyRoute2 = VehicleRoute.emptyRoute();
|
||||
copiedRoutes.add(emptyRoute2);
|
||||
Job job2 = jobsInRoute.get(1);
|
||||
insertionStrategy.insertJobs(Arrays.asList(emptyRoute2), Arrays.asList(job2));
|
||||
// routeAlgorithm.insertJob(job2, routeAlgorithm.calculateBestInsertion(emptyRoute2, job2, Double.MAX_VALUE), emptyRoute2);
|
||||
|
||||
unassignedJobs.remove(job2);
|
||||
|
||||
insertionStrategy.insertJobs(copiedRoutes, unassignedJobs);
|
||||
|
|
|
|||
|
|
@ -809,10 +809,9 @@ public class VehicleRoutingAlgorithms {
|
|||
insertion = createInsertionStrategy(insertionConfigs.get(0), vrp, vehicleFleetManager, routeStates, prioListeners, executorService, nuOfThreads, constraintManager);
|
||||
algorithmListeners.addAll(prioListeners);
|
||||
}
|
||||
Gendreau gendreau = new Gendreau(vrp, ruin, insertion);
|
||||
Gendreau gendreau = new Gendreau(vrp, ruin, insertion, vehicleFleetManager);
|
||||
gendreau.setShareOfJobsToRuin(share);
|
||||
gendreau.setNuOfIterations(iterations);
|
||||
gendreau.setFleetManager(vehicleFleetManager);
|
||||
definedClasses.put(strategyModuleKey, gendreau);
|
||||
return gendreau;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -198,8 +198,7 @@ public class GendreauPostOptTest {
|
|||
InsertionStrategy insertionStrategy = new BestInsertion(insertionCalc);
|
||||
insertionStrategy.addListener(stateUpdater);
|
||||
insertionStrategy.addListener(new VehicleSwitched(fleetManager));
|
||||
Gendreau postOpt = new Gendreau(vrp, radialRuin, insertionStrategy);
|
||||
postOpt.setFleetManager(fleetManager);
|
||||
Gendreau postOpt = new Gendreau(vrp, radialRuin, insertionStrategy, fleetManager);
|
||||
|
||||
VehicleRoutingProblemSolution newSolution = postOpt.runAndGetSolution(sol);
|
||||
newSolution.setCost(getCosts(newSolution,states));
|
||||
|
|
@ -258,10 +257,10 @@ public class GendreauPostOptTest {
|
|||
InsertionStrategy insertionStrategy = new BestInsertion(insertionCalc);
|
||||
insertionStrategy.addListener(stateUpdater);
|
||||
insertionStrategy.addListener(new VehicleSwitched(fleetManager));
|
||||
Gendreau postOpt = new Gendreau(vrp, radialRuin, insertionStrategy);
|
||||
Gendreau postOpt = new Gendreau(vrp, radialRuin, insertionStrategy, fleetManager);
|
||||
postOpt.setShareOfJobsToRuin(1.0);
|
||||
postOpt.setNuOfIterations(1);
|
||||
postOpt.setFleetManager(fleetManager);
|
||||
|
||||
// postOpt.setWithFix(withFixCost);
|
||||
VehicleRoutingProblemSolution newSolution = postOpt.runAndGetSolution(sol);
|
||||
newSolution.setCost(getCosts(newSolution,states));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue