mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
relax api
This commit is contained in:
parent
cba6a759e0
commit
a51abf6302
10 changed files with 83 additions and 38 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ import util.RandomNumberGeneration;
|
|||
import util.StopWatch;
|
||||
import basics.Job;
|
||||
import basics.VehicleRoutingProblem;
|
||||
import basics.algo.RuinListener;
|
||||
import basics.route.VehicleRoute;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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<VehicleRoute> routes);
|
||||
|
||||
/**
|
||||
* informs about ruin-end.
|
||||
*
|
||||
* @param routes
|
||||
* @param unassignedJobs
|
||||
*/
|
||||
public void ruinEnds(Collection<VehicleRoute> routes, Collection<Job> 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.
|
||||
|
|
|
|||
|
|
@ -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<VehicleRoutingProblemSolution> solutions) {
|
||||
clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void ruinStarts(Collection<VehicleRoute> routes) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void ruinEnds(Collection<VehicleRoute> routes, Collection<Job> unassignedJobs) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removed(Job job, VehicleRoute fromRoute) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void informInsertionEnds(Collection<VehicleRoute> vehicleRoutes) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
39
jsprit-core/src/main/java/basics/algo/RuinListener.java
Normal file
39
jsprit-core/src/main/java/basics/algo/RuinListener.java
Normal file
|
|
@ -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<VehicleRoute> routes);
|
||||
|
||||
/**
|
||||
* informs about ruin-end.
|
||||
*
|
||||
* @param routes
|
||||
* @param unassignedJobs
|
||||
*/
|
||||
public void ruinEnds(Collection<VehicleRoute> routes, Collection<Job> unassignedJobs);
|
||||
|
||||
/**
|
||||
* informs if a {@link Job} has been removed from a {@link VehicleRoute}.
|
||||
*
|
||||
* @param job
|
||||
* @param fromRoute
|
||||
*/
|
||||
public void removed(Job job, VehicleRoute fromRoute);
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue