1
0
Fork 0
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:
hilaminster 2019-10-23 19:16:04 +03:00
parent c0218b3927
commit dfd9d47b18
3 changed files with 14 additions and 9 deletions

View file

@ -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.vehicle.FiniteFleetManagerFactory;
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.util.NoiseMaker;
import com.graphhopper.jsprit.core.util.RandomNumberGeneration;
@ -460,10 +461,13 @@ public class Jsprit {
private VehicleRoutingAlgorithm create(final VehicleRoutingProblem vrp) {
ini(vrp);
if (vehicleFleetManager == null) {
Set<Vehicle> vehicles = new HashSet<>();
vehicles.addAll(vrp.getVehicles());
if (vrp.getFleetSize().equals(VehicleRoutingProblem.FleetSize.INFINITE)) {
vehicleFleetManager = new InfiniteFleetManagerFactory(vrp.getVehicles()).createFleetManager();
vehicleFleetManager = new InfiniteFleetManagerFactory(vehicles).createFleetManager();
} else {
FiniteFleetManagerFactory finiteFleetManagerFactory = new FiniteFleetManagerFactory(vrp.getVehicles());
FiniteFleetManagerFactory finiteFleetManagerFactory = new FiniteFleetManagerFactory(vehicles);
finiteFleetManagerFactory.setRandom(random);
vehicleFleetManager = finiteFleetManagerFactory.createFleetManager();
}

View file

@ -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.route.VehicleRoute;
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.reporting.SolutionPrinter;
import com.graphhopper.jsprit.core.util.Solutions;
import com.graphhopper.jsprit.instance.reader.CordeauReader;
import com.graphhopper.jsprit.util.Examples;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.*;
public class BuildAlgorithmFromScratch {
@ -129,8 +127,9 @@ public class BuildAlgorithmFromScratch {
public static VehicleRoutingAlgorithm createAlgorithm(final VehicleRoutingProblem vrp) {
VehicleFleetManager fleetManager = new FiniteFleetManagerFactory(vrp.getVehicles()).createFleetManager();
Set<Vehicle> vehicles = new HashSet<>();
vehicles.addAll(vrp.getVehicles());
VehicleFleetManager fleetManager = new FiniteFleetManagerFactory(vehicles).createFleetManager();
StateManager stateManager = new StateManager(vrp);
ConstraintManager constraintManager = new ConstraintManager(vrp, stateManager);

View file

@ -667,7 +667,9 @@ public class VehicleRoutingAlgorithms {
return new InfiniteFleetManagerFactory(vrp.getVehicles()).createFleetManager();
} 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. " +
"makes sure your config file contains one of these options");