diff --git a/jsprit-core/src/main/java/jsprit/core/algorithm/box/ConcurrentInsertionNoiseMaker.java b/jsprit-core/src/main/java/jsprit/core/algorithm/box/ConcurrentInsertionNoiseMaker.java new file mode 100644 index 00000000..1c681224 --- /dev/null +++ b/jsprit-core/src/main/java/jsprit/core/algorithm/box/ConcurrentInsertionNoiseMaker.java @@ -0,0 +1,61 @@ +package jsprit.core.algorithm.box; + +import jsprit.core.algorithm.listener.IterationStartsListener; +import jsprit.core.problem.VehicleRoutingProblem; +import jsprit.core.problem.constraint.SoftActivityConstraint; +import jsprit.core.problem.misc.JobInsertionContext; +import jsprit.core.problem.solution.VehicleRoutingProblemSolution; +import jsprit.core.problem.solution.route.activity.TourActivity; +import jsprit.core.util.RandomNumberGeneration; + +import java.util.Collection; +import java.util.Random; + +/** + * Created by schroeder on 16/01/15. + */ +class ConcurrentInsertionNoiseMaker implements SoftActivityConstraint, IterationStartsListener { + + private final double noiseProbability; + + private boolean makeNoise = false; + + private double noiseLevel = 0.1; + + private Random random = RandomNumberGeneration.newInstance(); + + private Random[] randomArray; + + private double maxCosts; + + ConcurrentInsertionNoiseMaker(VehicleRoutingProblem vrp, double maxCosts, double noiseLevel, double noiseProbability) { + this.noiseLevel = noiseLevel; + this.noiseProbability = noiseProbability; + this.maxCosts = maxCosts; + randomArray = new Random[vrp.getNuActivities() + 2]; + for (int i = 0; i < randomArray.length; i++) { + Random r = new Random(); + r.setSeed(random.nextLong()); + randomArray[i] = r; + } + } + + @Override + public void informIterationStarts(int i, VehicleRoutingProblem problem, Collection solutions) { + if (random.nextDouble() < noiseProbability) { + makeNoise = true; + } else makeNoise = false; + } + + @Override + public double getCosts(JobInsertionContext iFacts, TourActivity prevAct, TourActivity newAct, TourActivity nextAct, double prevActDepTime) { + if (makeNoise) { + return noiseLevel * maxCosts * randomArray[newAct.getIndex()].nextDouble(); + } + return 0; + } + + public void setRandom(Random random) { + this.random = random; + } +} diff --git a/jsprit-core/src/main/java/jsprit/core/algorithm/box/InsertionNoiseMaker.java b/jsprit-core/src/main/java/jsprit/core/algorithm/box/InsertionNoiseMaker.java deleted file mode 100644 index a03b8632..00000000 --- a/jsprit-core/src/main/java/jsprit/core/algorithm/box/InsertionNoiseMaker.java +++ /dev/null @@ -1,91 +0,0 @@ -package jsprit.core.algorithm.box; - -import jsprit.core.algorithm.listener.IterationStartsListener; -import jsprit.core.problem.Location; -import jsprit.core.problem.VehicleRoutingProblem; -import jsprit.core.problem.constraint.SoftActivityConstraint; -import jsprit.core.problem.job.Job; -import jsprit.core.problem.job.Service; -import jsprit.core.problem.job.Shipment; -import jsprit.core.problem.misc.JobInsertionContext; -import jsprit.core.problem.solution.VehicleRoutingProblemSolution; -import jsprit.core.problem.solution.route.activity.TourActivity; -import jsprit.core.util.RandomNumberGeneration; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Random; - -/** - * Created by schroeder on 16/01/15. - */ -class InsertionNoiseMaker implements SoftActivityConstraint, IterationStartsListener { - - private final double noiseProbability; - - private boolean makeNoise = false; - - private VehicleRoutingProblem vrp; - - double maxCosts = 0.; - - private double noiseLevel = 0.1; - - private Random random = RandomNumberGeneration.getRandom(); - - public InsertionNoiseMaker(VehicleRoutingProblem vrp, double noiseLevel, double noiseProbability) { - this.vrp = vrp; - this.noiseLevel = noiseLevel; - this.noiseProbability = noiseProbability; - determineMaxCosts(vrp); - } - - //@ToDo refactor determining max costs to allow skipping this - private void determineMaxCosts(VehicleRoutingProblem vrp) { - double max = 0.; - for (Job i : vrp.getJobs().values()) { - List fromLocations = getLocations(i); - for (Job j : vrp.getJobs().values()) { - List toLocations = getLocations(j); - for (Location iLoc : fromLocations) { - for (Location jLoc : toLocations) { - max = Math.max(max, vrp.getTransportCosts().getTransportCost(iLoc, jLoc, 0, null, vrp.getVehicles().iterator().next())); - } - } - } - } - maxCosts = max; - } - - private List getLocations(Job j) { - List locs = new ArrayList(); - if (j instanceof Service) { - locs.add(((Service) j).getLocation()); - } else if (j instanceof Shipment) { - locs.add(((Shipment) j).getPickupLocation()); - locs.add(((Shipment) j).getDeliveryLocation()); - } - return locs; - } - - @Override - public void informIterationStarts(int i, VehicleRoutingProblem problem, Collection solutions) { - if (random.nextDouble() < noiseProbability) { - makeNoise = true; - } else makeNoise = false; - } - - @Override - public double getCosts(JobInsertionContext iFacts, TourActivity prevAct, TourActivity newAct, TourActivity nextAct, double prevActDepTime) { - if (makeNoise) { - return noiseLevel * maxCosts * random.nextDouble(); - } - return 0; - } - - - public void setRandom(Random random) { - this.random = random; - } -} diff --git a/jsprit-core/src/main/java/jsprit/core/algorithm/box/Jsprit.java b/jsprit-core/src/main/java/jsprit/core/algorithm/box/Jsprit.java index be52e916..3ea705e3 100644 --- a/jsprit-core/src/main/java/jsprit/core/algorithm/box/Jsprit.java +++ b/jsprit-core/src/main/java/jsprit/core/algorithm/box/Jsprit.java @@ -309,14 +309,29 @@ public class Jsprit { constraintManager = new ConstraintManager(vrp, stateManager); } + if (noThreads == null) { + noThreads = toInteger(getProperty(Parameter.THREADS.toString())); + } + if (noThreads > 1) { + if (es == null) { + setupExecutorInternally = true; + es = Executors.newFixedThreadPool(noThreads); + } + } + double noiseLevel = toDouble(getProperty(Parameter.INSERTION_NOISE_LEVEL.toString())); double noiseProbability = toDouble(getProperty(Parameter.INSERTION_NOISE_PROB.toString())); - final InsertionNoiseMaker noiseMaker = new InsertionNoiseMaker(vrp, noiseLevel, noiseProbability); - noiseMaker.setRandom(random); - constraintManager.addConstraint(noiseMaker); JobNeighborhoods jobNeighborhoods = new JobNeighborhoodsFactory().createNeighborhoods(vrp, new AvgServiceAndShipmentDistance(vrp.getTransportCosts()), (int) (vrp.getJobs().values().size() * 0.5)); jobNeighborhoods.initialise(); + final double maxCosts = jobNeighborhoods.getMaxDistance(); + + IterationStartsListener noiseConfigurator; + + ConcurrentInsertionNoiseMaker noiseMaker = new ConcurrentInsertionNoiseMaker(vrp, maxCosts, noiseLevel, noiseProbability); + noiseMaker.setRandom(random); + constraintManager.addConstraint(noiseMaker); + noiseConfigurator = noiseMaker; RuinRadial radial = new RuinRadial(vrp, vrp.getJobs().size(), jobNeighborhoods); radial.setRandom(random); @@ -357,7 +372,7 @@ public class Jsprit { public double makeNoise() { if (random.nextDouble() < toDouble(getProperty(Parameter.RUIN_WORST_NOISE_PROB.toString()))) { return toDouble(getProperty(Parameter.RUIN_WORST_NOISE_LEVEL.toString())) - * noiseMaker.maxCosts * random.nextDouble(); + * maxCosts * random.nextDouble(); } else return 0.; } }); @@ -374,15 +389,7 @@ public class Jsprit { AbstractInsertionStrategy regret; final RegretInsertion.DefaultScorer scorer; - if (noThreads == null) { - noThreads = toInteger(getProperty(Parameter.THREADS.toString())); - } - if (noThreads > 1) { - if (es == null) { - setupExecutorInternally = true; - es = Executors.newFixedThreadPool(noThreads); - } - } + if (es != null) { RegretInsertionConcurrent regretInsertion = (RegretInsertionConcurrent) new InsertionBuilder(vrp, fm, stateManager, constraintManager) .setInsertionStrategy(InsertionBuilder.Strategy.REGRET) @@ -435,7 +442,7 @@ public class Jsprit { } }; - SolutionCostCalculator objectiveFunction = getObjectiveFunction(vrp, noiseMaker.maxCosts); + SolutionCostCalculator objectiveFunction = getObjectiveFunction(vrp, maxCosts); SearchStrategy radial_regret = new SearchStrategy(Strategy.RADIAL_REGRET.toString(), new SelectBest(), schrimpfAcceptance, objectiveFunction); radial_regret.addModule(new RuinAndRecreateModule(Strategy.RADIAL_REGRET.toString(), regret, radial)); @@ -483,7 +490,7 @@ public class Jsprit { VehicleRoutingAlgorithm vra = prettyBuilder.build(); vra.addListener(schrimpfThreshold); - vra.addListener(noiseMaker); + vra.addListener(noiseConfigurator); vra.addListener(noise); vra.addListener(clusters); vra.addListener(new RuinBreaks()); diff --git a/jsprit-core/src/main/java/jsprit/core/algorithm/ruin/JobNeighborhoods.java b/jsprit-core/src/main/java/jsprit/core/algorithm/ruin/JobNeighborhoods.java index d475cc16..3b2e579d 100644 --- a/jsprit-core/src/main/java/jsprit/core/algorithm/ruin/JobNeighborhoods.java +++ b/jsprit-core/src/main/java/jsprit/core/algorithm/ruin/JobNeighborhoods.java @@ -13,4 +13,6 @@ public interface JobNeighborhoods { public void initialise(); + public double getMaxDistance(); + } diff --git a/jsprit-core/src/main/java/jsprit/core/algorithm/ruin/JobNeighborhoodsImpl.java b/jsprit-core/src/main/java/jsprit/core/algorithm/ruin/JobNeighborhoodsImpl.java index f0139f90..4bb0b043 100644 --- a/jsprit-core/src/main/java/jsprit/core/algorithm/ruin/JobNeighborhoodsImpl.java +++ b/jsprit-core/src/main/java/jsprit/core/algorithm/ruin/JobNeighborhoodsImpl.java @@ -22,6 +22,8 @@ class JobNeighborhoodsImpl implements JobNeighborhoods { private JobDistance jobDistance; + private double maxDistance = 0.; + public JobNeighborhoodsImpl(VehicleRoutingProblem vrp, JobDistance jobDistance) { super(); this.vrp = vrp; @@ -58,6 +60,11 @@ class JobNeighborhoodsImpl implements JobNeighborhoods { calculateDistancesFromJob2Job(); } + @Override + public double getMaxDistance() { + return 0; + } + private void calculateDistancesFromJob2Job() { logger.debug("preprocess distances between locations ..."); StopWatch stopWatch = new StopWatch(); @@ -79,6 +86,7 @@ class JobNeighborhoodsImpl implements JobNeighborhoods { for (Job j : vrp.getJobs().values()) { if (i == j) continue; double distance = jobDistance.getDistance(i, j); + if (distance > maxDistance) maxDistance = distance; ReferencedJob refNode = new ReferencedJob(j, distance); treeSet.add(refNode); nuOfDistancesStored++; diff --git a/jsprit-core/src/main/java/jsprit/core/algorithm/ruin/JobNeighborhoodsImplWithCapRestriction.java b/jsprit-core/src/main/java/jsprit/core/algorithm/ruin/JobNeighborhoodsImplWithCapRestriction.java index 07340c90..8288bc8e 100644 --- a/jsprit-core/src/main/java/jsprit/core/algorithm/ruin/JobNeighborhoodsImplWithCapRestriction.java +++ b/jsprit-core/src/main/java/jsprit/core/algorithm/ruin/JobNeighborhoodsImplWithCapRestriction.java @@ -24,12 +24,14 @@ class JobNeighborhoodsImplWithCapRestriction implements JobNeighborhoods { private int capacity; + private double maxDistance = 0.; + public JobNeighborhoodsImplWithCapRestriction(VehicleRoutingProblem vrp, JobDistance jobDistance, int capacity) { super(); this.vrp = vrp; this.jobDistance = jobDistance; this.capacity = capacity; - logger.debug("intialise {}", this); + logger.debug("initialize {}", this); } @Override @@ -64,6 +66,11 @@ class JobNeighborhoodsImplWithCapRestriction implements JobNeighborhoods { calculateDistancesFromJob2Job(); } + @Override + public double getMaxDistance() { + return maxDistance; + } + private void calculateDistancesFromJob2Job() { logger.debug("preprocess distances between locations ..."); StopWatch stopWatch = new StopWatch(); @@ -85,6 +92,7 @@ class JobNeighborhoodsImplWithCapRestriction implements JobNeighborhoods { for (Job j : vrp.getJobs().values()) { if (i == j) continue; double distance = jobDistance.getDistance(i, j); + if (distance > maxDistance) maxDistance = distance; ReferencedJob refNode = new ReferencedJob(j, distance); if (treeSet.size() < capacity) { treeSet.add(refNode); diff --git a/jsprit-core/src/main/java/jsprit/core/algorithm/state/UpdateVehicleDependentPracticalTimeWindows.java b/jsprit-core/src/main/java/jsprit/core/algorithm/state/UpdateVehicleDependentPracticalTimeWindows.java index 57a5b3a5..5e97668e 100644 --- a/jsprit-core/src/main/java/jsprit/core/algorithm/state/UpdateVehicleDependentPracticalTimeWindows.java +++ b/jsprit-core/src/main/java/jsprit/core/algorithm/state/UpdateVehicleDependentPracticalTimeWindows.java @@ -97,8 +97,8 @@ public class UpdateVehicleDependentPracticalTimeWindows implements RouteVisitor, double potentialLatestArrivalTimeAtCurrAct = latestArrTimeAtPrevAct - transportCosts.getBackwardTransportTime(activity.getLocation(), prevLocation, latestArrTimeAtPrevAct, route.getDriver(), vehicle) - activity.getOperationTime(); double latestArrivalTime = Math.min(activity.getTheoreticalLatestOperationStartTime(), potentialLatestArrivalTimeAtCurrAct); - if(latestArrivalTime < activity.getTheoreticalEarliestOperationStartTime()){ - stateManager.putTypedInternalRouteState(route,vehicle,InternalStates.SWITCH_NOT_FEASIBLE,true); + if (latestArrivalTime < activity.getTheoreticalEarliestOperationStartTime()) { + stateManager.putTypedInternalRouteState(route, vehicle, InternalStates.SWITCH_NOT_FEASIBLE, true); } stateManager.putInternalTypedActivityState(activity, vehicle, InternalStates.LATEST_OPERATION_START_TIME, latestArrivalTime); latest_arrTimes_at_prevAct[vehicle.getVehicleTypeIdentifier().getIndex()] = latestArrivalTime; diff --git a/jsprit-core/src/main/java/jsprit/core/problem/constraint/SwitchNotFeasible.java b/jsprit-core/src/main/java/jsprit/core/problem/constraint/SwitchNotFeasible.java index d923b84c..c0ad04a2 100644 --- a/jsprit-core/src/main/java/jsprit/core/problem/constraint/SwitchNotFeasible.java +++ b/jsprit-core/src/main/java/jsprit/core/problem/constraint/SwitchNotFeasible.java @@ -7,7 +7,7 @@ import jsprit.core.problem.misc.JobInsertionContext; /** * Created by schroeder on 19/09/15. */ -public class SwitchNotFeasible implements HardRouteConstraint{ +public class SwitchNotFeasible implements HardRouteConstraint { private StateManager stateManager; @@ -17,8 +17,9 @@ public class SwitchNotFeasible implements HardRouteConstraint{ @Override public boolean fulfilled(JobInsertionContext insertionContext) { - Boolean notFeasible = stateManager.getRouteState(insertionContext.getRoute(),insertionContext.getNewVehicle(), InternalStates.SWITCH_NOT_FEASIBLE,Boolean.class); - if(notFeasible == null || insertionContext.getRoute().getVehicle().getVehicleTypeIdentifier().equals(insertionContext.getNewVehicle().getVehicleTypeIdentifier())) return true; + Boolean notFeasible = stateManager.getRouteState(insertionContext.getRoute(), insertionContext.getNewVehicle(), InternalStates.SWITCH_NOT_FEASIBLE, Boolean.class); + if (notFeasible == null || insertionContext.getRoute().getVehicle().getVehicleTypeIdentifier().equals(insertionContext.getNewVehicle().getVehicleTypeIdentifier())) + return true; else return !notFeasible; } diff --git a/jsprit-core/src/main/java/jsprit/core/problem/constraint/TimeWindowConstraint.java b/jsprit-core/src/main/java/jsprit/core/problem/constraint/TimeWindowConstraint.java index b708dcf5..ac7d256e 100644 --- a/jsprit-core/src/main/java/jsprit/core/problem/constraint/TimeWindowConstraint.java +++ b/jsprit-core/src/main/java/jsprit/core/problem/constraint/TimeWindowConstraint.java @@ -107,7 +107,7 @@ class TimeWindowConstraint implements HardActivityConstraint { routingCosts.getBackwardTransportTime(nextActLocation, newAct.getLocation(), latestArrTimeAtNextAct, iFacts.getNewDriver(), iFacts.getNewVehicle()) - newAct.getOperationTime()); /* - * |--- prevAct ---| + * |--- prevAct ---| * |--- vehicle's arrival @newAct * latest arrival of vehicle @newAct ---| */ diff --git a/jsprit-core/src/main/java/jsprit/core/problem/solution/route/activity/TourActivities.java b/jsprit-core/src/main/java/jsprit/core/problem/solution/route/activity/TourActivities.java index 768559a0..5217a85b 100644 --- a/jsprit-core/src/main/java/jsprit/core/problem/solution/route/activity/TourActivities.java +++ b/jsprit-core/src/main/java/jsprit/core/problem/solution/route/activity/TourActivities.java @@ -66,36 +66,20 @@ public class TourActivities { } } - - public static TourActivities emptyTour() { - return new TourActivities(); - } - private final ArrayList tourActivities = new ArrayList(); private final Set jobs = new HashSet(); - private final Set activities = new HashSet(); - private ReverseActivityIterator backward; private TourActivities(TourActivities tour2copy) { for (TourActivity tourAct : tour2copy.getActivities()) { TourActivity newAct = tourAct.duplicate(); this.tourActivities.add(newAct); - addToActivitySet(newAct); addJob(newAct); } } - private void addToActivitySet(TourActivity newAct) { - activities.add(newAct); - } - - private void removeFromActivitySet(TourActivity act) { - activities.remove(act); - } - public TourActivities() { } @@ -148,7 +132,6 @@ public class TourActivities { if (c instanceof JobActivity) { if (job.equals(((JobActivity) c).getJob())) { tourActivities.remove(c); - removeFromActivitySet(c); activityRemoved = true; } } @@ -163,8 +146,9 @@ public class TourActivities { * @param activity to be looked up * @return true if this contains specified activity, false otherwise */ + @Deprecated public boolean hasActivity(TourActivity activity) { - return activities.contains(activity); + return tourActivities.contains(activity); } /** @@ -185,7 +169,6 @@ public class TourActivities { for (TourActivity act : acts) { if (act == activity) { tourActivities.remove(act); - removeFromActivitySet(act); actRemoved = true; } else { if (act instanceof JobActivity && job != null) { @@ -228,7 +211,6 @@ public class TourActivities { } else if (insertionIndex >= tourActivities.size()) { tourActivities.add(act); } - addToActivitySet(act); addJob(act); } @@ -243,7 +225,6 @@ public class TourActivities { if (tourActivities.contains(act)) throw new IllegalStateException("act " + act + " already in tour. cannot add act twice."); tourActivities.add(act); - addToActivitySet(act); addJob(act); } diff --git a/jsprit-core/src/main/java/jsprit/core/util/FastVehicleRoutingTransportCostsMatrix.java b/jsprit-core/src/main/java/jsprit/core/util/FastVehicleRoutingTransportCostsMatrix.java index 6bff4a03..8209d8b1 100644 --- a/jsprit-core/src/main/java/jsprit/core/util/FastVehicleRoutingTransportCostsMatrix.java +++ b/jsprit-core/src/main/java/jsprit/core/util/FastVehicleRoutingTransportCostsMatrix.java @@ -119,7 +119,7 @@ public class FastVehicleRoutingTransportCostsMatrix extends AbstractForwardVehic * * @return */ - public double[][][] getMatrix(){ + public double[][][] getMatrix() { return matrix; } diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/MeetTimeWindowConstraint_IT.java b/jsprit-core/src/test/java/jsprit/core/algorithm/MeetTimeWindowConstraint_IT.java index 0c0e5e23..4160b166 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/MeetTimeWindowConstraint_IT.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/MeetTimeWindowConstraint_IT.java @@ -560,7 +560,7 @@ public class MeetTimeWindowConstraint_IT { VehicleRoutingAlgorithm algorithm = Jsprit.Builder.newInstance(vrp).buildAlgorithm(); algorithm.setMaxIterations(1000); VehicleRoutingProblemSolution solution = Solutions.bestOf(algorithm.searchSolutions()); - for(VehicleRoute r : solution.getRoutes()){ + for (VehicleRoute r : solution.getRoutes()) { assertTrue(r.getVehicle().getEarliestDeparture() <= r.getDepartureTime()); assertTrue(r.getVehicle().getLatestArrival() >= r.getEnd().getArrTime()); } @@ -576,7 +576,7 @@ public class MeetTimeWindowConstraint_IT { VehicleRoutingAlgorithm algorithm = new SchrimpfFactory().createAlgorithm(vrp); algorithm.setMaxIterations(1000); VehicleRoutingProblemSolution solution = Solutions.bestOf(algorithm.searchSolutions()); - for(VehicleRoute r : solution.getRoutes()){ + for (VehicleRoute r : solution.getRoutes()) { assertTrue(r.getVehicle().getEarliestDeparture() <= r.getDepartureTime()); assertTrue(r.getVehicle().getLatestArrival() >= r.getEnd().getArrTime()); } @@ -592,20 +592,20 @@ public class MeetTimeWindowConstraint_IT { VehicleRoutingAlgorithm algorithm = new GreedySchrimpfFactory().createAlgorithm(vrp); algorithm.setMaxIterations(1000); VehicleRoutingProblemSolution solution = Solutions.bestOf(algorithm.searchSolutions()); - for(VehicleRoute r : solution.getRoutes()){ + for (VehicleRoute r : solution.getRoutes()) { assertTrue(r.getVehicle().getEarliestDeparture() <= r.getDepartureTime()); assertTrue(r.getVehicle().getLatestArrival() >= r.getEnd().getArrTime()); } } - + private FastVehicleRoutingTransportCostsMatrix createMatrix() throws IOException { BufferedReader reader = new BufferedReader(new FileReader(new File("src/test/resources/matrix.txt"))); String line; - FastVehicleRoutingTransportCostsMatrix.Builder builder = FastVehicleRoutingTransportCostsMatrix.Builder.newInstance(11,false); - while((line = reader.readLine()) != null){ + FastVehicleRoutingTransportCostsMatrix.Builder builder = FastVehicleRoutingTransportCostsMatrix.Builder.newInstance(11, false); + while ((line = reader.readLine()) != null) { String[] split = line.split("\t"); - builder.addTransportDistance(Integer.parseInt(split[0]),Integer.parseInt(split[1]),Double.parseDouble(split[2])); + builder.addTransportDistance(Integer.parseInt(split[0]), Integer.parseInt(split[1]), Double.parseDouble(split[2])); builder.addTransportTime(Integer.parseInt(split[0]), Integer.parseInt(split[1]), Double.parseDouble(split[3])); } return builder.build(); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_IT.java b/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_IT.java index 576b6f69..2630deef 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_IT.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_IT.java @@ -167,7 +167,7 @@ public class RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_IT { } String[] lineTokens = line.split(","); /* - * build service + * build service */ Service service = Service.Builder.newInstance(lineTokens[0]).addSizeDimension(0, Integer.parseInt(lineTokens[1])) .setLocation(Location.newInstance(lineTokens[0])).build(); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_withTimeAndDistanceCosts_IT.java b/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_withTimeAndDistanceCosts_IT.java index ea33b2ed..257d9505 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_withTimeAndDistanceCosts_IT.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_withTimeAndDistanceCosts_IT.java @@ -167,7 +167,7 @@ public class RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_withTimeAndD } String[] lineTokens = line.split(","); /* - * build service + * build service */ Service service = Service.Builder.newInstance(lineTokens[0]).addSizeDimension(0, Integer.parseInt(lineTokens[1])) .setLocation(Location.newInstance(lineTokens[0])).build(); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollection_IT.java b/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollection_IT.java index f7a0e897..d791e01c 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollection_IT.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollection_IT.java @@ -115,7 +115,7 @@ public class RefuseCollection_IT { vrpBuilder.addVehicle(bigVehicle); /* - * create cost-matrix + * create cost-matrix */ VehicleRoutingTransportCostsMatrix.Builder matrixBuilder = VehicleRoutingTransportCostsMatrix.Builder.newInstance(true); /* diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestLocalActivityInsertionCostsCalculator.java b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestLocalActivityInsertionCostsCalculator.java index 2ce126d9..f29135b1 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestLocalActivityInsertionCostsCalculator.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestLocalActivityInsertionCostsCalculator.java @@ -409,7 +409,7 @@ public class TestLocalActivityInsertionCostsCalculator { //new: 50 - 50 = 0 /* - activity start time delay at next act = start-time-old - start-time-new is always bigger than subsequent waiting time savings + activity start time delay at next act = start-time-old - start-time-new is always bigger than subsequent waiting time savings */ /* old = 10 + 30 + 10 = 50 diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestMixedServiceAndShipmentsProblemOnRouteLevel.java b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestMixedServiceAndShipmentsProblemOnRouteLevel.java index f8be1d75..1447467a 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestMixedServiceAndShipmentsProblemOnRouteLevel.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestMixedServiceAndShipmentsProblemOnRouteLevel.java @@ -109,7 +109,7 @@ public class TestMixedServiceAndShipmentsProblemOnRouteLevel { VehicleType vehicleType = vehicleTypeBuilder.build(); /* - * get a vehicle-builder and build a vehicle located at (10,10) with type "vehicleType" + * get a vehicle-builder and build a vehicle located at (10,10) with type "vehicleType" */ Builder vehicleBuilder = VehicleImpl.Builder.newInstance("vehicle"); vehicleBuilder.setStartLocation(Location.newInstance(10, 10)); diff --git a/jsprit-examples/src/main/java/jsprit/examples/ConfigureAlgorithmInCodeInsteadOfPerXml.java b/jsprit-examples/src/main/java/jsprit/examples/ConfigureAlgorithmInCodeInsteadOfPerXml.java index 4b53bbff..fdcd503d 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/ConfigureAlgorithmInCodeInsteadOfPerXml.java +++ b/jsprit-examples/src/main/java/jsprit/examples/ConfigureAlgorithmInCodeInsteadOfPerXml.java @@ -87,7 +87,7 @@ public class ConfigureAlgorithmInCodeInsteadOfPerXml { Collection solutions = algorithm.searchSolutions(); /* - * get the best + * get the best */ VehicleRoutingProblemSolution bestSolution = Solutions.bestOf(solutions); diff --git a/jsprit-examples/src/main/java/jsprit/examples/EnRoutePickupAndDeliveryWithMultipleDepotsAndOpenRoutesExample.java b/jsprit-examples/src/main/java/jsprit/examples/EnRoutePickupAndDeliveryWithMultipleDepotsAndOpenRoutesExample.java index 8df37967..ca8e357e 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/EnRoutePickupAndDeliveryWithMultipleDepotsAndOpenRoutesExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/EnRoutePickupAndDeliveryWithMultipleDepotsAndOpenRoutesExample.java @@ -126,7 +126,7 @@ public class EnRoutePickupAndDeliveryWithMultipleDepotsAndOpenRoutesExample { VehicleRoutingAlgorithm algorithm = VehicleRoutingAlgorithms.readAndCreateAlgorithm(problem, "input/algorithmConfig.xml"); // algorithm.setMaxIterations(30000); /* - * and search a solution + * and search a solution */ Collection solutions = algorithm.searchSolutions(); diff --git a/jsprit-examples/src/main/java/jsprit/examples/MultipleDepotExample.java b/jsprit-examples/src/main/java/jsprit/examples/MultipleDepotExample.java index 689a8241..f558893b 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/MultipleDepotExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/MultipleDepotExample.java @@ -91,7 +91,7 @@ public class MultipleDepotExample { VehicleRoutingProblem vrp = vrpBuilder.build(); /* - * plot to see how the problem looks like + * plot to see how the problem looks like */ // SolutionPlotter.plotVrpAsPNG(vrp, "output/problem01.png", "p01"); diff --git a/jsprit-examples/src/main/java/jsprit/examples/MultipleDepotExample2.java b/jsprit-examples/src/main/java/jsprit/examples/MultipleDepotExample2.java index 34110427..246a4589 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/MultipleDepotExample2.java +++ b/jsprit-examples/src/main/java/jsprit/examples/MultipleDepotExample2.java @@ -97,7 +97,7 @@ public class MultipleDepotExample2 { VehicleRoutingProblem vrp = vrpBuilder.build(); /* - * plot to see how the problem looks like + * plot to see how the problem looks like */ // SolutionPlotter.plotVrpAsPNG(vrp, "output/problem08.png", "p08"); diff --git a/jsprit-examples/src/main/java/jsprit/examples/MultipleDepotWithInitialRoutesExample.java b/jsprit-examples/src/main/java/jsprit/examples/MultipleDepotWithInitialRoutesExample.java index 3c98c7c3..9743bd6f 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/MultipleDepotWithInitialRoutesExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/MultipleDepotWithInitialRoutesExample.java @@ -62,7 +62,7 @@ public class MultipleDepotWithInitialRoutesExample { */ VehicleRoutingProblem vrp = vrpBuilder.build(); /* - * since job (service) 26 and 44 are already planned in initial route and thus static AND sequence is fixed they + * since job (service) 26 and 44 are already planned in initial route and thus static AND sequence is fixed they * should not be in jobMap anymore (only variable jobs are in jobMap) */ assert !vrp.getJobs().containsKey("26") : "strange. service 26 should not be part of the problem"; diff --git a/jsprit-examples/src/main/java/jsprit/examples/PickupAndDeliveryExample.java b/jsprit-examples/src/main/java/jsprit/examples/PickupAndDeliveryExample.java index 21cb5d4c..e7fd1091 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/PickupAndDeliveryExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/PickupAndDeliveryExample.java @@ -72,7 +72,7 @@ public class PickupAndDeliveryExample { VehicleRoutingAlgorithm vra = VehicleRoutingAlgorithms.readAndCreateAlgorithm(vrp, "input/algorithmConfig_solomon.xml"); vra.getAlgorithmListeners().addListener(new AlgorithmSearchProgressChartListener("output/sol_progress.png")); /* - * Solve the problem. + * Solve the problem. * * */ diff --git a/jsprit-examples/src/main/java/jsprit/examples/PickupAndDeliveryExample2.java b/jsprit-examples/src/main/java/jsprit/examples/PickupAndDeliveryExample2.java index 149bef37..6a279ccd 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/PickupAndDeliveryExample2.java +++ b/jsprit-examples/src/main/java/jsprit/examples/PickupAndDeliveryExample2.java @@ -78,7 +78,7 @@ public class PickupAndDeliveryExample2 { Collection solutions = vra.searchSolutions(); /* - * Retrieve best solution. + * Retrieve best solution. */ VehicleRoutingProblemSolution solution = new SelectBest().selectSolution(solutions); diff --git a/jsprit-examples/src/main/java/jsprit/examples/PickupAndDeliveryOpenExample.java b/jsprit-examples/src/main/java/jsprit/examples/PickupAndDeliveryOpenExample.java index 402e01fd..c9a19b31 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/PickupAndDeliveryOpenExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/PickupAndDeliveryOpenExample.java @@ -69,7 +69,7 @@ public class PickupAndDeliveryOpenExample { VehicleRoutingAlgorithm vra = VehicleRoutingAlgorithms.readAndCreateAlgorithm(vrp, "input/algorithmConfig_open.xml"); vra.getAlgorithmListeners().addListener(new AlgorithmSearchProgressChartListener("output/sol_progress.png")); /* - * Solve the problem. + * Solve the problem. * * */ diff --git a/jsprit-examples/src/main/java/jsprit/examples/RefuseCollectionExample.java b/jsprit-examples/src/main/java/jsprit/examples/RefuseCollectionExample.java index 5a0f09db..2b1cc3a9 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/RefuseCollectionExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/RefuseCollectionExample.java @@ -110,7 +110,7 @@ public class RefuseCollectionExample { } String[] lineTokens = line.split(","); /* - * build service + * build service */ Service service = Service.Builder.newInstance(lineTokens[0]).addSizeDimension(0, Integer.parseInt(lineTokens[1])).setLocation(Location.newInstance(lineTokens[0])).build(); /* diff --git a/jsprit-examples/src/main/java/jsprit/examples/RefuseCollectionWithFastMatrixExample.java b/jsprit-examples/src/main/java/jsprit/examples/RefuseCollectionWithFastMatrixExample.java index 7790f7e0..ee813647 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/RefuseCollectionWithFastMatrixExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/RefuseCollectionWithFastMatrixExample.java @@ -109,7 +109,7 @@ public class RefuseCollectionWithFastMatrixExample { } String[] lineTokens = line.split(","); /* - * build service + * build service */ Service service = Service.Builder.newInstance(lineTokens[0]) .addSizeDimension(0, Integer.parseInt(lineTokens[1])) diff --git a/jsprit-examples/src/main/java/jsprit/examples/ServicePickupsWithMultipleDepotsExample.java b/jsprit-examples/src/main/java/jsprit/examples/ServicePickupsWithMultipleDepotsExample.java index 152af745..76c796cf 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/ServicePickupsWithMultipleDepotsExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/ServicePickupsWithMultipleDepotsExample.java @@ -109,7 +109,7 @@ public class ServicePickupsWithMultipleDepotsExample { Collection solutions = algorithm.searchSolutions(); /* - * get the best + * get the best */ VehicleRoutingProblemSolution bestSolution = Solutions.bestOf(solutions); diff --git a/jsprit-examples/src/main/java/jsprit/examples/SimpleDepotBoundedPickupAndDeliveryExample.java b/jsprit-examples/src/main/java/jsprit/examples/SimpleDepotBoundedPickupAndDeliveryExample.java index 48088b25..4d9d5e77 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SimpleDepotBoundedPickupAndDeliveryExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SimpleDepotBoundedPickupAndDeliveryExample.java @@ -88,7 +88,7 @@ public class SimpleDepotBoundedPickupAndDeliveryExample { Collection solutions = algorithm.searchSolutions(); /* - * get the best + * get the best */ VehicleRoutingProblemSolution bestSolution = Solutions.bestOf(solutions); diff --git a/jsprit-examples/src/main/java/jsprit/examples/SimpleEnRoutePickupAndDeliveryExample.java b/jsprit-examples/src/main/java/jsprit/examples/SimpleEnRoutePickupAndDeliveryExample.java index 42ac6980..b0c17bc3 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SimpleEnRoutePickupAndDeliveryExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SimpleEnRoutePickupAndDeliveryExample.java @@ -93,7 +93,7 @@ public class SimpleEnRoutePickupAndDeliveryExample { Collection solutions = algorithm.searchSolutions(); /* - * get the best + * get the best */ VehicleRoutingProblemSolution bestSolution = Solutions.bestOf(solutions); diff --git a/jsprit-examples/src/main/java/jsprit/examples/SimpleEnRoutePickupAndDeliveryOpenRoutesExample.java b/jsprit-examples/src/main/java/jsprit/examples/SimpleEnRoutePickupAndDeliveryOpenRoutesExample.java index 0c36ea70..1ed6a833 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SimpleEnRoutePickupAndDeliveryOpenRoutesExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SimpleEnRoutePickupAndDeliveryOpenRoutesExample.java @@ -93,7 +93,7 @@ public class SimpleEnRoutePickupAndDeliveryOpenRoutesExample { Collection solutions = algorithm.searchSolutions(); /* - * get the best + * get the best */ VehicleRoutingProblemSolution bestSolution = Solutions.bestOf(solutions); diff --git a/jsprit-examples/src/main/java/jsprit/examples/SimpleEnRoutePickupAndDeliveryWithDepotBoundedDeliveriesExample.java b/jsprit-examples/src/main/java/jsprit/examples/SimpleEnRoutePickupAndDeliveryWithDepotBoundedDeliveriesExample.java index 5b3245b7..ed649d82 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SimpleEnRoutePickupAndDeliveryWithDepotBoundedDeliveriesExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SimpleEnRoutePickupAndDeliveryWithDepotBoundedDeliveriesExample.java @@ -97,7 +97,7 @@ public class SimpleEnRoutePickupAndDeliveryWithDepotBoundedDeliveriesExample { VehicleRoutingProblem problem = vrpBuilder.build(); /* - * build the algorithm + * build the algorithm */ VehicleRoutingAlgorithmBuilder vraBuilder = new VehicleRoutingAlgorithmBuilder(problem, "input/algorithmConfig.xml"); vraBuilder.addCoreConstraints(); diff --git a/jsprit-examples/src/main/java/jsprit/examples/SimpleExample.java b/jsprit-examples/src/main/java/jsprit/examples/SimpleExample.java index 754f32b4..912145ce 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SimpleExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SimpleExample.java @@ -93,7 +93,7 @@ public class SimpleExample { Collection solutions = algorithm.searchSolutions(); /* - * get the best + * get the best */ VehicleRoutingProblemSolution bestSolution = Solutions.bestOf(solutions); diff --git a/jsprit-examples/src/main/java/jsprit/examples/SimpleExampleOpenRoutes.java b/jsprit-examples/src/main/java/jsprit/examples/SimpleExampleOpenRoutes.java index f1e5bdb0..f6fc2e4e 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SimpleExampleOpenRoutes.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SimpleExampleOpenRoutes.java @@ -87,7 +87,7 @@ public class SimpleExampleOpenRoutes { Collection solutions = algorithm.searchSolutions(); /* - * get the best + * get the best */ VehicleRoutingProblemSolution bestSolution = Solutions.bestOf(solutions); diff --git a/jsprit-examples/src/main/java/jsprit/examples/SimpleExampleWithSkills.java b/jsprit-examples/src/main/java/jsprit/examples/SimpleExampleWithSkills.java index 860c7206..9521763c 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SimpleExampleWithSkills.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SimpleExampleWithSkills.java @@ -115,7 +115,7 @@ public class SimpleExampleWithSkills { Collection solutions = algorithm.searchSolutions(); /* - * get the best + * get the best */ VehicleRoutingProblemSolution bestSolution = Solutions.bestOf(solutions); diff --git a/jsprit-examples/src/main/java/jsprit/examples/SimpleVRPWithBackhaulsExample.java b/jsprit-examples/src/main/java/jsprit/examples/SimpleVRPWithBackhaulsExample.java index 48677180..a831be8b 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SimpleVRPWithBackhaulsExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SimpleVRPWithBackhaulsExample.java @@ -103,7 +103,7 @@ public class SimpleVRPWithBackhaulsExample { SolutionPrinter.print(bestSolution); /* - * plot + * plot */ Plotter plotter = new Plotter(problem, bestSolution); plotter.setLabel(Label.SIZE); diff --git a/jsprit-examples/src/main/java/jsprit/examples/SolomonExample.java b/jsprit-examples/src/main/java/jsprit/examples/SolomonExample.java index 5c996c42..faf7aa8c 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SolomonExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SolomonExample.java @@ -74,7 +74,7 @@ public class SolomonExample { Collection solutions = vra.searchSolutions(); /* - * Retrieve best solution. + * Retrieve best solution. */ VehicleRoutingProblemSolution solution = new SelectBest().selectSolution(solutions); diff --git a/jsprit-examples/src/main/java/jsprit/examples/SolomonExampleWithSpecifiedVehicleEndLocations.java b/jsprit-examples/src/main/java/jsprit/examples/SolomonExampleWithSpecifiedVehicleEndLocations.java index d71b2c5a..1cda7c02 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SolomonExampleWithSpecifiedVehicleEndLocations.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SolomonExampleWithSpecifiedVehicleEndLocations.java @@ -77,7 +77,7 @@ public class SolomonExampleWithSpecifiedVehicleEndLocations { // vra.setPrematureBreak(100); vra.getAlgorithmListeners().addListener(new AlgorithmSearchProgressChartListener("output/sol_progress.png")); /* - * Solve the problem. + * Solve the problem. * * */ diff --git a/jsprit-examples/src/main/java/jsprit/examples/SolomonExampleWithSpecifiedVehicleEndLocationsWithoutTWs.java b/jsprit-examples/src/main/java/jsprit/examples/SolomonExampleWithSpecifiedVehicleEndLocationsWithoutTWs.java index 423dcbe3..7b6e0688 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SolomonExampleWithSpecifiedVehicleEndLocationsWithoutTWs.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SolomonExampleWithSpecifiedVehicleEndLocationsWithoutTWs.java @@ -77,7 +77,7 @@ public class SolomonExampleWithSpecifiedVehicleEndLocationsWithoutTWs { // vra.setPrematureBreak(100); // vra.getAlgorithmListeners().addListener(new AlgorithmSearchProgressChartListener("output/sol_progress.png")); /* - * Solve the problem. + * Solve the problem. * * */ diff --git a/jsprit-examples/src/main/java/jsprit/examples/SolomonOpenExample.java b/jsprit-examples/src/main/java/jsprit/examples/SolomonOpenExample.java index dcb2579d..bd61439b 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SolomonOpenExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SolomonOpenExample.java @@ -69,7 +69,7 @@ public class SolomonOpenExample { // vra.setPrematureBreak(100); // vra.getAlgorithmListeners().addListener(new AlgorithmSearchProgressChartListener("output/sol_progress.png")); /* - * Solve the problem. + * Solve the problem. * * */ diff --git a/jsprit-examples/src/main/java/jsprit/examples/SolomonR101Example.java b/jsprit-examples/src/main/java/jsprit/examples/SolomonR101Example.java index da14cc52..c52f2c29 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SolomonR101Example.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SolomonR101Example.java @@ -68,7 +68,7 @@ public class SolomonR101Example { vra.setMaxIterations(20000); // vra.setPrematureBreak(100); vra.getAlgorithmListeners().addListener(new AlgorithmSearchProgressChartListener("output/sol_progress.png")); - /* + /* * Solve the problem. * * diff --git a/jsprit-examples/src/main/java/jsprit/examples/SolomonWithRegretInsertionExample.java b/jsprit-examples/src/main/java/jsprit/examples/SolomonWithRegretInsertionExample.java index e938130f..e7082f2c 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SolomonWithRegretInsertionExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SolomonWithRegretInsertionExample.java @@ -81,7 +81,7 @@ public class SolomonWithRegretInsertionExample { Collection solutions = vra.searchSolutions(); /* - * Retrieve best solution. + * Retrieve best solution. */ VehicleRoutingProblemSolution solution = new SelectBest().selectSolution(solutions); diff --git a/jsprit-examples/src/main/java/jsprit/examples/TransportOfDisabledPeople.java b/jsprit-examples/src/main/java/jsprit/examples/TransportOfDisabledPeople.java index 70d563af..445ab930 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/TransportOfDisabledPeople.java +++ b/jsprit-examples/src/main/java/jsprit/examples/TransportOfDisabledPeople.java @@ -186,7 +186,7 @@ public class TransportOfDisabledPeople { algorithm.setPrematureAlgorithmTermination(new IterationWithoutImprovementTermination(100)); /* - * and search a solution + * and search a solution */ Collection solutions = algorithm.searchSolutions(); diff --git a/jsprit-examples/src/main/java/jsprit/examples/VRPWithBackhaulsExample.java b/jsprit-examples/src/main/java/jsprit/examples/VRPWithBackhaulsExample.java index 762b101b..56278929 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/VRPWithBackhaulsExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/VRPWithBackhaulsExample.java @@ -77,7 +77,7 @@ public class VRPWithBackhaulsExample { VehicleRoutingAlgorithm vra = vraBuilder.build(); vra.getAlgorithmListeners().addListener(new AlgorithmSearchProgressChartListener("output/sol_progress.png")); /* - * Solve the problem. + * Solve the problem. * * */ diff --git a/jsprit-examples/src/main/java/jsprit/examples/VRPWithBackhaulsExample2.java b/jsprit-examples/src/main/java/jsprit/examples/VRPWithBackhaulsExample2.java index d7df50a5..ea3205dc 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/VRPWithBackhaulsExample2.java +++ b/jsprit-examples/src/main/java/jsprit/examples/VRPWithBackhaulsExample2.java @@ -105,7 +105,7 @@ public class VRPWithBackhaulsExample2 { Collection solutions = vra.searchSolutions(); /* - * Retrieve best solution. + * Retrieve best solution. */ VehicleRoutingProblemSolution solution = new SelectBest().selectSolution(solutions);