diff --git a/jsprit-core/src/main/java/algorithms/Gendreau.java b/jsprit-core/src/main/java/algorithms/Gendreau.java index 183b9a1e..3413a318 100644 --- a/jsprit-core/src/main/java/algorithms/Gendreau.java +++ b/jsprit-core/src/main/java/algorithms/Gendreau.java @@ -32,11 +32,11 @@ import java.util.Set; import org.apache.log4j.Logger; import util.RandomNumberGeneration; -import algorithms.RuinStrategy.RuinListener; import basics.Job; import basics.VehicleRoutingProblem; import basics.VehicleRoutingProblemSolution; import basics.algo.InsertionListener; +import basics.algo.RuinListener; import basics.algo.SearchStrategyModule; import basics.algo.SearchStrategyModuleListener; import basics.route.TourActivity; diff --git a/jsprit-core/src/main/java/algorithms/RuinAndRecreateModule.java b/jsprit-core/src/main/java/algorithms/RuinAndRecreateModule.java index 2868d525..23741a97 100644 --- a/jsprit-core/src/main/java/algorithms/RuinAndRecreateModule.java +++ b/jsprit-core/src/main/java/algorithms/RuinAndRecreateModule.java @@ -23,10 +23,10 @@ package algorithms; import java.util.Collection; import util.RouteUtils; -import algorithms.RuinStrategy.RuinListener; import basics.Job; import basics.VehicleRoutingProblemSolution; import basics.algo.InsertionListener; +import basics.algo.RuinListener; import basics.algo.SearchStrategyModule; import basics.algo.SearchStrategyModuleListener; diff --git a/jsprit-core/src/main/java/algorithms/RuinListeners.java b/jsprit-core/src/main/java/algorithms/RuinListeners.java index f9be7c42..ca885c5f 100644 --- a/jsprit-core/src/main/java/algorithms/RuinListeners.java +++ b/jsprit-core/src/main/java/algorithms/RuinListeners.java @@ -24,8 +24,8 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import algorithms.RuinStrategy.RuinListener; import basics.Job; +import basics.algo.RuinListener; import basics.route.VehicleRoute; class RuinListeners { diff --git a/jsprit-core/src/main/java/algorithms/RuinRadial.java b/jsprit-core/src/main/java/algorithms/RuinRadial.java index 68368ac4..bf7704f4 100644 --- a/jsprit-core/src/main/java/algorithms/RuinRadial.java +++ b/jsprit-core/src/main/java/algorithms/RuinRadial.java @@ -29,6 +29,7 @@ import util.RandomNumberGeneration; import util.StopWatch; import basics.Job; import basics.VehicleRoutingProblem; +import basics.algo.RuinListener; import basics.route.VehicleRoute; diff --git a/jsprit-core/src/main/java/algorithms/RuinRandom.java b/jsprit-core/src/main/java/algorithms/RuinRandom.java index 3695a2dd..c4e5dfe3 100644 --- a/jsprit-core/src/main/java/algorithms/RuinRandom.java +++ b/jsprit-core/src/main/java/algorithms/RuinRandom.java @@ -23,6 +23,7 @@ import org.apache.log4j.Logger; import util.RandomNumberGeneration; import basics.Job; import basics.VehicleRoutingProblem; +import basics.algo.RuinListener; import basics.route.VehicleRoute; diff --git a/jsprit-core/src/main/java/algorithms/RuinStrategy.java b/jsprit-core/src/main/java/algorithms/RuinStrategy.java index 0670ba5a..e96c1ed4 100644 --- a/jsprit-core/src/main/java/algorithms/RuinStrategy.java +++ b/jsprit-core/src/main/java/algorithms/RuinStrategy.java @@ -15,6 +15,7 @@ package algorithms; import java.util.Collection; import basics.Job; +import basics.algo.RuinListener; import basics.route.VehicleRoute; @@ -28,39 +29,6 @@ import basics.route.VehicleRoute; public interface RuinStrategy { - /** - * Listener that listens to the ruin-process. It informs whoever is interested about start, end and about a removal of a job. - * - * @author schroeder - * - */ - public static interface RuinListener { - - /** - * informs about ruin-start. - * - * @param routes - */ - public void ruinStarts(Collection routes); - - /** - * informs about ruin-end. - * - * @param routes - * @param unassignedJobs - */ - public void ruinEnds(Collection routes, Collection unassignedJobs); - - /** - * informs if a {@link Job} has been removed from a {@link VehicleRoute}. - * - * @param job - * @param fromRoute - */ - public void removed(Job job, VehicleRoute fromRoute); - - } - /** * Ruins a current solution, i.e. a collection of vehicle-routes and * returns a collection of removed and thus unassigned jobs. diff --git a/jsprit-core/src/main/java/algorithms/StateManagerImpl.java b/jsprit-core/src/main/java/algorithms/StateManagerImpl.java index e0383803..c72a1108 100644 --- a/jsprit-core/src/main/java/algorithms/StateManagerImpl.java +++ b/jsprit-core/src/main/java/algorithms/StateManagerImpl.java @@ -26,12 +26,18 @@ import java.util.HashMap; import java.util.Map; import basics.Job; +import basics.VehicleRoutingProblem; +import basics.VehicleRoutingProblemSolution; +import basics.algo.InsertionEndsListener; +import basics.algo.InsertionListener; import basics.algo.InsertionStartsListener; +import basics.algo.IterationStartsListener; import basics.algo.JobInsertedListener; +import basics.algo.RuinListener; import basics.route.TourActivity; import basics.route.VehicleRoute; -class StateManagerImpl implements StateManager, InsertionStartsListener, JobInsertedListener { +public class StateManagerImpl implements StateManager, IterationStartsListener, RuinListener, InsertionStartsListener, JobInsertedListener, InsertionEndsListener { static class StatesImpl implements States{ @@ -152,4 +158,33 @@ class StateManagerImpl implements StateManager, InsertionStartsListener, JobInse public void addRouteVisitor(RouteVisitor routeVisitor){ routeVisitors.add(routeVisitor); } + + @Override + public void informIterationStarts(int i, VehicleRoutingProblem problem, Collection solutions) { + clear(); + } + + @Override + public void ruinStarts(Collection routes) { + // TODO Auto-generated method stub + + } + + @Override + public void ruinEnds(Collection routes, Collection unassignedJobs) { + // TODO Auto-generated method stub + + } + + @Override + public void removed(Job job, VehicleRoute fromRoute) { + // TODO Auto-generated method stub + + } + + @Override + public void informInsertionEnds(Collection vehicleRoutes) { + // TODO Auto-generated method stub + + } } diff --git a/jsprit-core/src/main/java/algorithms/StateUpdates.java b/jsprit-core/src/main/java/algorithms/StateUpdates.java index a0cdf286..ca899ae2 100644 --- a/jsprit-core/src/main/java/algorithms/StateUpdates.java +++ b/jsprit-core/src/main/java/algorithms/StateUpdates.java @@ -29,7 +29,6 @@ import org.apache.log4j.Logger; import algorithms.BackwardInTimeListeners.BackwardInTimeListener; import algorithms.ForwardInTimeListeners.ForwardInTimeListener; -import algorithms.RuinStrategy.RuinListener; import algorithms.StateManager.StateImpl; import basics.Delivery; import basics.Job; @@ -42,6 +41,7 @@ import basics.algo.InsertionStartsListener; import basics.algo.IterationEndsListener; import basics.algo.IterationStartsListener; import basics.algo.JobInsertedListener; +import basics.algo.RuinListener; import basics.algo.VehicleRoutingAlgorithmListener; import basics.costs.ForwardTransportCost; import basics.costs.ForwardTransportTime; diff --git a/jsprit-core/src/main/java/basics/algo/RuinListener.java b/jsprit-core/src/main/java/basics/algo/RuinListener.java new file mode 100644 index 00000000..bb75ca78 --- /dev/null +++ b/jsprit-core/src/main/java/basics/algo/RuinListener.java @@ -0,0 +1,39 @@ +package basics.algo; + +import java.util.Collection; + +import basics.Job; +import basics.route.VehicleRoute; + +/** + * Listener that listens to the ruin-process. It informs whoever is interested about start, end and about a removal of a job. + * + * @author schroeder + * + */ +public interface RuinListener extends SearchStrategyModuleListener{ + + /** + * informs about ruin-start. + * + * @param routes + */ + public void ruinStarts(Collection routes); + + /** + * informs about ruin-end. + * + * @param routes + * @param unassignedJobs + */ + public void ruinEnds(Collection routes, Collection unassignedJobs); + + /** + * informs if a {@link Job} has been removed from a {@link VehicleRoute}. + * + * @param job + * @param fromRoute + */ + public void removed(Job job, VehicleRoute fromRoute); + +} \ No newline at end of file diff --git a/jsprit-core/src/test/java/algorithms/TestAlgorithmReader.java b/jsprit-core/src/test/java/algorithms/TestAlgorithmReader.java index 949cdfa3..99f9bdd4 100644 --- a/jsprit-core/src/test/java/algorithms/TestAlgorithmReader.java +++ b/jsprit-core/src/test/java/algorithms/TestAlgorithmReader.java @@ -46,6 +46,7 @@ import basics.Job; import basics.VehicleRoutingAlgorithm; import basics.VehicleRoutingProblem; import basics.VehicleRoutingProblemSolution; +import basics.algo.RuinListener; import basics.algo.SearchStrategy; import basics.algo.SearchStrategyModule; import basics.algo.SearchStrategyModuleListener;