mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
enable serialize vehicles
This commit is contained in:
parent
c0218b3927
commit
dfd9d47b18
3 changed files with 14 additions and 9 deletions
|
|
@ -42,6 +42,7 @@ import com.graphhopper.jsprit.core.problem.solution.route.activity.BreakActivity
|
||||||
import com.graphhopper.jsprit.core.problem.solution.route.activity.TourActivity;
|
import com.graphhopper.jsprit.core.problem.solution.route.activity.TourActivity;
|
||||||
import com.graphhopper.jsprit.core.problem.vehicle.FiniteFleetManagerFactory;
|
import com.graphhopper.jsprit.core.problem.vehicle.FiniteFleetManagerFactory;
|
||||||
import com.graphhopper.jsprit.core.problem.vehicle.InfiniteFleetManagerFactory;
|
import com.graphhopper.jsprit.core.problem.vehicle.InfiniteFleetManagerFactory;
|
||||||
|
import com.graphhopper.jsprit.core.problem.vehicle.Vehicle;
|
||||||
import com.graphhopper.jsprit.core.problem.vehicle.VehicleFleetManager;
|
import com.graphhopper.jsprit.core.problem.vehicle.VehicleFleetManager;
|
||||||
import com.graphhopper.jsprit.core.util.NoiseMaker;
|
import com.graphhopper.jsprit.core.util.NoiseMaker;
|
||||||
import com.graphhopper.jsprit.core.util.RandomNumberGeneration;
|
import com.graphhopper.jsprit.core.util.RandomNumberGeneration;
|
||||||
|
|
@ -460,10 +461,13 @@ public class Jsprit {
|
||||||
private VehicleRoutingAlgorithm create(final VehicleRoutingProblem vrp) {
|
private VehicleRoutingAlgorithm create(final VehicleRoutingProblem vrp) {
|
||||||
ini(vrp);
|
ini(vrp);
|
||||||
if (vehicleFleetManager == null) {
|
if (vehicleFleetManager == null) {
|
||||||
|
Set<Vehicle> vehicles = new HashSet<>();
|
||||||
|
vehicles.addAll(vrp.getVehicles());
|
||||||
if (vrp.getFleetSize().equals(VehicleRoutingProblem.FleetSize.INFINITE)) {
|
if (vrp.getFleetSize().equals(VehicleRoutingProblem.FleetSize.INFINITE)) {
|
||||||
vehicleFleetManager = new InfiniteFleetManagerFactory(vrp.getVehicles()).createFleetManager();
|
vehicleFleetManager = new InfiniteFleetManagerFactory(vehicles).createFleetManager();
|
||||||
} else {
|
} else {
|
||||||
FiniteFleetManagerFactory finiteFleetManagerFactory = new FiniteFleetManagerFactory(vrp.getVehicles());
|
|
||||||
|
FiniteFleetManagerFactory finiteFleetManagerFactory = new FiniteFleetManagerFactory(vehicles);
|
||||||
finiteFleetManagerFactory.setRandom(random);
|
finiteFleetManagerFactory.setRandom(random);
|
||||||
vehicleFleetManager = finiteFleetManagerFactory.createFleetManager();
|
vehicleFleetManager = finiteFleetManagerFactory.createFleetManager();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,16 +41,14 @@ import com.graphhopper.jsprit.core.problem.solution.SolutionCostCalculator;
|
||||||
import com.graphhopper.jsprit.core.problem.solution.VehicleRoutingProblemSolution;
|
import com.graphhopper.jsprit.core.problem.solution.VehicleRoutingProblemSolution;
|
||||||
import com.graphhopper.jsprit.core.problem.solution.route.VehicleRoute;
|
import com.graphhopper.jsprit.core.problem.solution.route.VehicleRoute;
|
||||||
import com.graphhopper.jsprit.core.problem.vehicle.FiniteFleetManagerFactory;
|
import com.graphhopper.jsprit.core.problem.vehicle.FiniteFleetManagerFactory;
|
||||||
|
import com.graphhopper.jsprit.core.problem.vehicle.Vehicle;
|
||||||
import com.graphhopper.jsprit.core.problem.vehicle.VehicleFleetManager;
|
import com.graphhopper.jsprit.core.problem.vehicle.VehicleFleetManager;
|
||||||
import com.graphhopper.jsprit.core.reporting.SolutionPrinter;
|
import com.graphhopper.jsprit.core.reporting.SolutionPrinter;
|
||||||
import com.graphhopper.jsprit.core.util.Solutions;
|
import com.graphhopper.jsprit.core.util.Solutions;
|
||||||
import com.graphhopper.jsprit.instance.reader.CordeauReader;
|
import com.graphhopper.jsprit.instance.reader.CordeauReader;
|
||||||
import com.graphhopper.jsprit.util.Examples;
|
import com.graphhopper.jsprit.util.Examples;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class BuildAlgorithmFromScratch {
|
public class BuildAlgorithmFromScratch {
|
||||||
|
|
||||||
|
|
@ -129,8 +127,9 @@ public class BuildAlgorithmFromScratch {
|
||||||
|
|
||||||
|
|
||||||
public static VehicleRoutingAlgorithm createAlgorithm(final VehicleRoutingProblem vrp) {
|
public static VehicleRoutingAlgorithm createAlgorithm(final VehicleRoutingProblem vrp) {
|
||||||
|
Set<Vehicle> vehicles = new HashSet<>();
|
||||||
VehicleFleetManager fleetManager = new FiniteFleetManagerFactory(vrp.getVehicles()).createFleetManager();
|
vehicles.addAll(vrp.getVehicles());
|
||||||
|
VehicleFleetManager fleetManager = new FiniteFleetManagerFactory(vehicles).createFleetManager();
|
||||||
StateManager stateManager = new StateManager(vrp);
|
StateManager stateManager = new StateManager(vrp);
|
||||||
ConstraintManager constraintManager = new ConstraintManager(vrp, stateManager);
|
ConstraintManager constraintManager = new ConstraintManager(vrp, stateManager);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -667,7 +667,9 @@ public class VehicleRoutingAlgorithms {
|
||||||
return new InfiniteFleetManagerFactory(vrp.getVehicles()).createFleetManager();
|
return new InfiniteFleetManagerFactory(vrp.getVehicles()).createFleetManager();
|
||||||
|
|
||||||
} else if (vrp.getFleetSize().equals(FleetSize.FINITE)) {
|
} else if (vrp.getFleetSize().equals(FleetSize.FINITE)) {
|
||||||
return new FiniteFleetManagerFactory(vrp.getVehicles()).createFleetManager();
|
Set<Vehicle> vehicles = new HashSet<>();
|
||||||
|
vehicles.addAll(vrp.getVehicles());
|
||||||
|
return new FiniteFleetManagerFactory(vehicles).createFleetManager();
|
||||||
}
|
}
|
||||||
throw new IllegalStateException("fleet size can only be infinite or finite. " +
|
throw new IllegalStateException("fleet size can only be infinite or finite. " +
|
||||||
"makes sure your config file contains one of these options");
|
"makes sure your config file contains one of these options");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue