mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
clean redundant files
This commit is contained in:
parent
0cd8101e89
commit
463d87b30b
1 changed files with 0 additions and 198 deletions
|
|
@ -1,198 +0,0 @@
|
||||||
/*******************************************************************************
|
|
||||||
* Copyright (C) 2013 Stefan Schroeder
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
|
||||||
* License as published by the Free Software Foundation; either
|
|
||||||
* version 3.0 of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This library is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
|
||||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
******************************************************************************/
|
|
||||||
package algorithms;
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
//
|
|
||||||
///**
|
|
||||||
// *
|
|
||||||
// * @author stefan schroeder
|
|
||||||
// *
|
|
||||||
// */
|
|
||||||
//
|
|
||||||
//final class BestInsertionConcurrent implements InsertionStrategy{
|
|
||||||
//
|
|
||||||
// public static BestInsertionConcurrent newInstance(RouteAlgorithm routeAlgorithm, ExecutorService executor, int nuOfThreads){
|
|
||||||
// return new BestInsertionConcurrent(routeAlgorithm, executor, nuOfThreads);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// static class Batch {
|
|
||||||
// List<VehicleRoute> routes = new ArrayList<VehicleRoute>();
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private static Logger logger = Logger.getLogger(BestInsertionConcurrent.class);
|
|
||||||
//
|
|
||||||
// private Random random = RandomNumberGeneration.getRandom();
|
|
||||||
//
|
|
||||||
// private RouteAlgorithm routeAlgorithm;
|
|
||||||
//
|
|
||||||
//// private ExecutorService executor;
|
|
||||||
//
|
|
||||||
// private int nuOfBatches;
|
|
||||||
//
|
|
||||||
// private ExecutorCompletionService<Insertion> completionService;
|
|
||||||
//
|
|
||||||
// public void setRandom(Random random) {
|
|
||||||
// this.random = random;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private BestInsertionConcurrent(RouteAlgorithm routeAlgorithm, ExecutorService executor, int nuOfThreads) {
|
|
||||||
// super();
|
|
||||||
// this.routeAlgorithm = routeAlgorithm;
|
|
||||||
//// this.executor = executor;
|
|
||||||
// logger.info("initialise " + this);
|
|
||||||
// this.nuOfBatches = nuOfThreads;
|
|
||||||
// completionService = new ExecutorCompletionService<Insertion>(executor);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public String toString() {
|
|
||||||
// return "[name=concurrentBestInsertion]";
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void insertJobs(Collection<VehicleRoute> vehicleRoutes, Collection<Job> unassignedJobs) {
|
|
||||||
// List<Job> unassignedJobList = new ArrayList<Job>(unassignedJobs);
|
|
||||||
// Collections.shuffle(unassignedJobList, random);
|
|
||||||
//// informInsertionStarts(vehicleRoutes,unassignedJobs.size());
|
|
||||||
// int inserted = 0;
|
|
||||||
// for(final Job unassignedJob : unassignedJobList){
|
|
||||||
// VehicleRoute insertIn = null;
|
|
||||||
// Insertion bestInsertion = null;
|
|
||||||
// double bestInsertionCost = Double.MAX_VALUE;
|
|
||||||
//
|
|
||||||
// List<Batch> batches = distributeRoutes(vehicleRoutes,nuOfBatches);
|
|
||||||
//
|
|
||||||
// for(final Batch batch : batches){
|
|
||||||
// completionService.submit(new Callable<Insertion>() {
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public Insertion call() throws Exception {
|
|
||||||
// return getBestInsertion(batch,unassignedJob);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// try{
|
|
||||||
// for(int i=0;i<batches.size();i++){
|
|
||||||
// Future<Insertion> futureIData = completionService.take();
|
|
||||||
// Insertion insertion = futureIData.get();
|
|
||||||
// if(insertion == null) continue;
|
|
||||||
// if(insertion.getInsertionData().getInsertionCost() < bestInsertionCost){
|
|
||||||
// bestInsertion = insertion;
|
|
||||||
// bestInsertionCost = insertion.getInsertionData().getInsertionCost();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// catch(InterruptedException e){
|
|
||||||
// Thread.currentThread().interrupt();
|
|
||||||
// }
|
|
||||||
// catch (ExecutionException e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// logger.error(e.getCause().toString());
|
|
||||||
// System.exit(1);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if(bestInsertion != null){
|
|
||||||
//// informBeforeJobInsertion(unassignedJob, bestInsertion.getInsertionData(), bestInsertion.getRoute());
|
|
||||||
// insertIn = bestInsertion.getRoute();
|
|
||||||
//// logger.debug("insert job="+unassignedJob+" at index=" + bestInsertion.getInsertionData().getInsertionIndex() + " delta cost=" + bestInsertion.getInsertionData().getInsertionCost());
|
|
||||||
// routeAlgorithm.insertJob(unassignedJob, bestInsertion.getInsertionData(), bestInsertion.getRoute());
|
|
||||||
// }
|
|
||||||
// else {
|
|
||||||
//// VehicleRoute newRoute = VehicleRoute.emptyRoute();
|
|
||||||
//// InsertionData bestI = routeAlgorithm.calculateBestInsertion(newRoute, unassignedJob, Double.MAX_VALUE);
|
|
||||||
//// if(bestI instanceof InsertionData.NoInsertionFound)
|
|
||||||
// throw new IllegalStateException("given the vehicles, could not create a valid solution.\n\tthe reason might be" +
|
|
||||||
// " inappropriate vehicle capacity.\n\tthe job that does not fit in any vehicle anymore is \n\t" + unassignedJob);
|
|
||||||
//// insertIn = newRoute;
|
|
||||||
//// informBeforeJobInsertion(unassignedJob,bestI,newRoute);
|
|
||||||
//// routeAlgorithm.insertJob(unassignedJob,bestI,newRoute);
|
|
||||||
//// vehicleRoutes.add(newRoute);
|
|
||||||
// }
|
|
||||||
// inserted++;
|
|
||||||
//// informJobInserted((unassignedJobList.size()-inserted), unassignedJob, insertIn);
|
|
||||||
// }
|
|
||||||
//// informInsertionEndsListeners(vehicleRoutes);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private Insertion getBestInsertion(Batch batch, Job unassignedJob) {
|
|
||||||
// Insertion bestInsertion = null;
|
|
||||||
// double bestInsertionCost = Double.MAX_VALUE;
|
|
||||||
// for(VehicleRoute vehicleRoute : batch.routes){
|
|
||||||
// InsertionData iData = routeAlgorithm.calculateBestInsertion(vehicleRoute, unassignedJob, bestInsertionCost);
|
|
||||||
// if(iData instanceof NoInsertionFound) continue;
|
|
||||||
// if(iData.getInsertionCost() < bestInsertionCost){
|
|
||||||
// bestInsertion = new Insertion(vehicleRoute,iData);
|
|
||||||
// bestInsertionCost = iData.getInsertionCost();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// return bestInsertion;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private List<Batch> distributeRoutes(Collection<VehicleRoute> vehicleRoutes, int nuOfBatches) {
|
|
||||||
// List<Batch> batches = new ArrayList<Batch>();
|
|
||||||
// for(int i=0;i<nuOfBatches;i++) batches.add(new Batch());
|
|
||||||
// /*
|
|
||||||
// * if route.size < nuOfBatches add as much routes as empty batches are available
|
|
||||||
// * else add one empty route anyway
|
|
||||||
// */
|
|
||||||
//// if(vehicleRoutes.size()<nuOfBatches){
|
|
||||||
//// int nOfNewRoutes = nuOfBatches-vehicleRoutes.size();
|
|
||||||
//// for(int i=0;i<nOfNewRoutes;i++){
|
|
||||||
//// vehicleRoutes.add(VehicleRoute.emptyRoute());
|
|
||||||
//// }
|
|
||||||
//// }
|
|
||||||
//// else{
|
|
||||||
// vehicleRoutes.add(VehicleRoute.emptyRoute());
|
|
||||||
//// }
|
|
||||||
// /*
|
|
||||||
// * distribute routes to batches equally
|
|
||||||
// */
|
|
||||||
// int count = 0;
|
|
||||||
// for(VehicleRoute route : vehicleRoutes){
|
|
||||||
// if(count == nuOfBatches) count=0;
|
|
||||||
// batches.get(count).routes.add(route);
|
|
||||||
// count++;
|
|
||||||
// }
|
|
||||||
// return batches;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void removeListener(InsertionListener insertionListener) {
|
|
||||||
// // TODO Auto-generated method stub
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public Collection<InsertionListener> getListeners() {
|
|
||||||
// // TODO Auto-generated method stub
|
|
||||||
// return null;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void addListener(InsertionListener insertionListener) {
|
|
||||||
// // TODO Auto-generated method stub
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue