From f78886767bbe24f53b7876ace04a65afb4b26046 Mon Sep 17 00:00:00 2001 From: oblonski <4sschroeder@gmail.com> Date: Mon, 12 Aug 2013 22:27:07 +0200 Subject: [PATCH] internal ruinStrat improvement --- .../java/algorithms/AbstractRuinStrategy.java | 22 +++++++++++++++ .../src/main/java/algorithms/RuinRadial.java | 27 +++++++++++++------ .../src/main/java/algorithms/RuinRandom.java | 2 -- 3 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 jsprit-core/src/main/java/algorithms/AbstractRuinStrategy.java diff --git a/jsprit-core/src/main/java/algorithms/AbstractRuinStrategy.java b/jsprit-core/src/main/java/algorithms/AbstractRuinStrategy.java new file mode 100644 index 00000000..f5264601 --- /dev/null +++ b/jsprit-core/src/main/java/algorithms/AbstractRuinStrategy.java @@ -0,0 +1,22 @@ +package algorithms; + +import java.util.Collection; + +import basics.Job; +import basics.route.VehicleRoute; + +abstract class AbstractRuinStrategy implements RuinStrategy{ + + public void ruinStarts(Collection routes){ + + } + + public void ruinEnds(Collection routes){ + + } + + public void jobRemoved(Job job, VehicleRoute fromRoute){ + + } + +} diff --git a/jsprit-core/src/main/java/algorithms/RuinRadial.java b/jsprit-core/src/main/java/algorithms/RuinRadial.java index d0fa8f71..22296066 100644 --- a/jsprit-core/src/main/java/algorithms/RuinRadial.java +++ b/jsprit-core/src/main/java/algorithms/RuinRadial.java @@ -82,10 +82,6 @@ final class RuinRadial implements RuinStrategy { private JobDistance jobDistance; - private JobRemover jobRemover; - - private VehicleRouteUpdater routeUpdater; - public void setRandom(Random random) { this.random = random; } @@ -154,6 +150,7 @@ final class RuinRadial implements RuinStrategy { } public Collection ruin(Collection vehicleRoutes, Job targetJob, int nOfJobs2BeRemoved){ + ruinStarts(vehicleRoutes); List unassignedJobs = new ArrayList(); TreeSet tree = distanceNodeTree.get(targetJob.getId()); Iterator descendingIterator = tree.descendingIterator(); @@ -165,18 +162,32 @@ final class RuinRadial implements RuinStrategy { counter++; boolean removed = false; for (VehicleRoute route : vehicleRoutes) { - removed = jobRemover.removeJobWithoutTourUpdate(job, route); + removed = route.getTourActivities().removeJob(job);; if (removed) { + jobRemoved(job,route); break; } } } - for(VehicleRoute route : vehicleRoutes){ - routeUpdater.updateRoute(route); - } + ruinEnds(vehicleRoutes); return unassignedJobs; } + private void ruinEnds(Collection vehicleRoutes) { + // TODO Auto-generated method stub + + } + + private void jobRemoved(Job job, VehicleRoute route) { + // TODO Auto-generated method stub + + } + + private void ruinStarts(Collection vehicleRoutes) { + // TODO Auto-generated method stub + + } + private Job pickRandomJob() { int totNuOfJobs = vrp.getJobs().values().size(); int randomIndex = random.nextInt(totNuOfJobs); diff --git a/jsprit-core/src/main/java/algorithms/RuinRandom.java b/jsprit-core/src/main/java/algorithms/RuinRandom.java index 6fcba2f0..31c78483 100644 --- a/jsprit-core/src/main/java/algorithms/RuinRandom.java +++ b/jsprit-core/src/main/java/algorithms/RuinRandom.java @@ -73,11 +73,9 @@ final class RuinRandom implements RuinStrategy { */ @Override public Collection ruin(Collection vehicleRoutes) { - List unassignedJobs = new ArrayList(); int nOfJobs2BeRemoved = selectNuOfJobs2BeRemoved(); ruin(vehicleRoutes, nOfJobs2BeRemoved, unassignedJobs); - return unassignedJobs; }