mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
Merge branch 'ImproveRouteLevelSearch'
Conflicts: jsprit-core/src/main/java/algorithms/MarginalsCalculus.java jsprit-core/src/main/java/algorithms/MarginalsCalculusTriangleInequality.java
This commit is contained in:
commit
a97a99497b
45 changed files with 281 additions and 294 deletions
|
|
@ -60,7 +60,7 @@ public class BuildCVRPAlgoFromScratchTest {
|
|||
return true;
|
||||
}
|
||||
};
|
||||
MarginalsCalculus marginalCalculus = new MarginalsCalculusTriangleInequality(vrp.getTransportCosts(), vrp.getActivityCosts(), hardActLevelConstraint);
|
||||
ActivityInsertionCostsCalculator marginalCalculus = new LocalActivityInsertionCostsCalculator(vrp.getTransportCosts(), vrp.getActivityCosts(), hardActLevelConstraint);
|
||||
CalculatesServiceInsertion serviceInsertion = new CalculatesServiceInsertion(vrp.getTransportCosts(), marginalCalculus, new HardConstraints.HardLoadConstraint(stateManager));
|
||||
|
||||
VehicleFleetManager fleetManager = new InfiniteVehicles(vrp.getVehicles());
|
||||
|
|
|
|||
|
|
@ -22,9 +22,6 @@ import org.apache.log4j.Logger;
|
|||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import util.Solutions;
|
||||
import algorithms.BackwardInTimeListeners.BackwardInTimeListener;
|
||||
import algorithms.ForwardInTimeListeners.ForwardInTimeListener;
|
||||
import algorithms.HardConstraints.HardActivityLevelConstraintManager;
|
||||
import algorithms.StateManager.StateImpl;
|
||||
import algorithms.StateUpdates.UpdateActivityTimes;
|
||||
|
|
@ -40,18 +37,11 @@ import basics.VehicleRoutingAlgorithm;
|
|||
import basics.VehicleRoutingProblem;
|
||||
import basics.VehicleRoutingProblemSolution;
|
||||
import basics.algo.InsertionStartsListener;
|
||||
import basics.algo.IterationStartsListener;
|
||||
import basics.algo.JobInsertedListener;
|
||||
import basics.algo.SearchStrategy;
|
||||
import basics.algo.SearchStrategyManager;
|
||||
import basics.algo.SolutionCostCalculator;
|
||||
import basics.io.VrpXMLReader;
|
||||
import basics.io.VrpXMLWriter;
|
||||
import basics.route.DeliveryActivity;
|
||||
import basics.route.End;
|
||||
import basics.route.PickupActivity;
|
||||
import basics.route.Start;
|
||||
import basics.route.TourActivity;
|
||||
import basics.route.VehicleRoute;
|
||||
|
||||
public class BuildPDVRPAlgoFromScratchTest {
|
||||
|
|
@ -75,7 +65,7 @@ public class BuildPDVRPAlgoFromScratchTest {
|
|||
actLevelConstraintAccumulator.addConstraint(new HardConstraints.HardPickupAndDeliveryActivityLevelConstraint(stateManager));
|
||||
actLevelConstraintAccumulator.addConstraint(new HardConstraints.HardTimeWindowActivityLevelConstraint(stateManager, vrp.getTransportCosts()));
|
||||
|
||||
MarginalsCalculus marginalCalculus = new MarginalsCalculusTriangleInequality(vrp.getTransportCosts(), vrp.getActivityCosts(), actLevelConstraintAccumulator);
|
||||
ActivityInsertionCostsCalculator marginalCalculus = new LocalActivityInsertionCostsCalculator(vrp.getTransportCosts(), vrp.getActivityCosts(), actLevelConstraintAccumulator);
|
||||
|
||||
CalculatesServiceInsertion serviceInsertion = new CalculatesServiceInsertion(vrp.getTransportCosts(), marginalCalculus, new HardConstraints.HardPickupAndDeliveryLoadConstraint(stateManager));
|
||||
// CalculatesServiceInsertion serviceInsertion = new CalculatesServiceInsertion(vrp.getTransportCosts(), marginalCalculus, new HardConstraints.HardLoadConstraint(stateManager));
|
||||
|
|
|
|||
|
|
@ -17,11 +17,10 @@
|
|||
package algorithms;
|
||||
|
||||
import basics.costs.VehicleRoutingActivityCosts;
|
||||
import basics.costs.VehicleRoutingActivityCosts.Time;
|
||||
import basics.route.Driver;
|
||||
import basics.route.TourActivity;
|
||||
import basics.route.Vehicle;
|
||||
import basics.route.TourActivity.JobActivity;
|
||||
import basics.route.Vehicle;
|
||||
|
||||
|
||||
public class ExampleActivityCostFunction implements VehicleRoutingActivityCosts{
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ public class GendreauPostOptTest {
|
|||
|
||||
activityCosts = new ExampleActivityCostFunction();
|
||||
|
||||
CalculatesServiceInsertion standardServiceInsertion = new CalculatesServiceInsertion(cost, new MarginalsCalculusTriangleInequality(cost, activityCosts, new HardConstraints.HardTimeWindowActivityLevelConstraint(states, cost)), new HardConstraints.HardLoadConstraint(states));
|
||||
CalculatesServiceInsertion standardServiceInsertion = new CalculatesServiceInsertion(cost, new LocalActivityInsertionCostsCalculator(cost, activityCosts, new HardConstraints.HardTimeWindowActivityLevelConstraint(states, cost)), new HardConstraints.HardLoadConstraint(states));
|
||||
|
||||
CalculatesServiceInsertionConsideringFixCost withFixCost = new CalculatesServiceInsertionConsideringFixCost(standardServiceInsertion, states);
|
||||
withFixCost.setWeightOfFixCost(1.2);
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
******************************************************************************/
|
||||
package algorithms;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
|
|
|
|||
|
|
@ -21,8 +21,6 @@ import static org.junit.Assert.assertTrue;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.configuration.ConfigurationException;
|
||||
import org.apache.commons.configuration.XMLConfiguration;
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ public class TestCalculatesServiceInsertion {
|
|||
|
||||
ExampleActivityCostFunction activityCosts = new ExampleActivityCostFunction();
|
||||
|
||||
serviceInsertion = new CalculatesServiceInsertion(costs, new MarginalsCalculusTriangleInequality(costs, activityCosts, new HardConstraints.HardTimeWindowActivityLevelConstraint(states, costs)), new HardConstraints.HardLoadConstraint(states));
|
||||
serviceInsertion = new CalculatesServiceInsertion(costs, new LocalActivityInsertionCostsCalculator(costs, activityCosts, new HardConstraints.HardTimeWindowActivityLevelConstraint(states, costs)), new HardConstraints.HardLoadConstraint(states));
|
||||
|
||||
stateUpdater = new UpdateStates(states, costs, activityCosts);
|
||||
|
||||
|
|
|
|||
|
|
@ -143,14 +143,13 @@ public class TestCalculatesServiceInsertionOnRouteLevel {
|
|||
states = new StateManagerImpl();
|
||||
|
||||
ExampleActivityCostFunction activityCosts = new ExampleActivityCostFunction();
|
||||
serviceInsertion = new CalculatesServiceInsertionOnRouteLevel(costs,activityCosts);
|
||||
ActivityInsertionCostsCalculator actInsertionCostCalculator = new RouteLevelActivityInsertionCostsEstimator(costs, activityCosts, new HardConstraints.HardTimeWindowActivityLevelConstraint(states, costs), states);
|
||||
serviceInsertion = new CalculatesServiceInsertionOnRouteLevel(costs,activityCosts, new HardConstraints.HardLoadConstraint(states), actInsertionCostCalculator);
|
||||
serviceInsertion.setNuOfActsForwardLooking(4);
|
||||
serviceInsertion.setStates(states);
|
||||
|
||||
updateStates = new UpdateStates(states, costs, activityCosts);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public TourActivity getActivityMock(String id, double earliestOperationStart, double currCost){
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
******************************************************************************/
|
||||
package algorithms;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
|
|||
|
|
@ -28,8 +28,6 @@ import java.util.Random;
|
|||
|
||||
import org.junit.Test;
|
||||
|
||||
import algorithms.selectors.SelectRandomly;
|
||||
import basics.VehicleRoutingProblem;
|
||||
import basics.VehicleRoutingProblemSolution;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -27,9 +27,6 @@ import java.util.Random;
|
|||
|
||||
import org.junit.Test;
|
||||
|
||||
import basics.algo.SearchStrategy;
|
||||
import basics.algo.SearchStrategyManager;
|
||||
|
||||
|
||||
|
||||
public class SearchStrategyManagerTest {
|
||||
|
|
|
|||
|
|
@ -30,9 +30,6 @@ import algorithms.acceptors.SolutionAcceptor;
|
|||
import algorithms.selectors.SolutionSelector;
|
||||
import basics.VehicleRoutingProblem;
|
||||
import basics.VehicleRoutingProblemSolution;
|
||||
import basics.algo.SearchStrategy;
|
||||
import basics.algo.SearchStrategyModule;
|
||||
import basics.algo.SearchStrategyModuleListener;
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -30,10 +30,8 @@ import org.junit.Test;
|
|||
|
||||
import basics.Service;
|
||||
import basics.VehicleRoutingProblem;
|
||||
import basics.VehicleRoutingProblem.Builder;
|
||||
import basics.VehicleRoutingProblem.FleetComposition;
|
||||
import basics.VehicleRoutingProblem.FleetSize;
|
||||
import basics.io.VrpXMLReader;
|
||||
import basics.route.Vehicle;
|
||||
|
||||
public class VrpReaderV2Test {
|
||||
|
|
|
|||
|
|
@ -27,19 +27,16 @@ import org.junit.Test;
|
|||
|
||||
import basics.Service;
|
||||
import basics.VehicleRoutingProblem;
|
||||
import basics.VehicleRoutingProblemSolution;
|
||||
import basics.VehicleRoutingProblem.Builder;
|
||||
import basics.VehicleRoutingProblem.FleetComposition;
|
||||
import basics.VehicleRoutingProblem.FleetSize;
|
||||
import basics.io.VrpXMLReader;
|
||||
import basics.io.VrpXMLWriter;
|
||||
import basics.VehicleRoutingProblemSolution;
|
||||
import basics.route.End;
|
||||
import basics.route.ServiceActivity;
|
||||
import basics.route.Start;
|
||||
import basics.route.Vehicle;
|
||||
import basics.route.VehicleImpl;
|
||||
import basics.route.VehicleRoute;
|
||||
import basics.route.VehicleType;
|
||||
import basics.route.VehicleTypeImpl;
|
||||
|
||||
public class VrpWriterV2Test {
|
||||
|
|
|
|||
|
|
@ -16,13 +16,12 @@
|
|||
******************************************************************************/
|
||||
package basics.route;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import basics.Service;
|
||||
import basics.Service.Builder;
|
||||
import basics.route.ServiceActivity;
|
||||
|
||||
public class ServiceActTest {
|
||||
|
||||
|
|
|
|||
|
|
@ -16,15 +16,14 @@
|
|||
******************************************************************************/
|
||||
package basics.route;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import basics.Service;
|
||||
import basics.Service.Builder;
|
||||
import basics.route.ServiceActivity;
|
||||
import basics.route.TourActivities;
|
||||
|
||||
|
||||
public class TestTour {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue