mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
Compare commits
No commits in common. "e4b5bbf5fa6ee3787de411eb5652db635852a193" and "267775d25282c60d2ee3a80b36b0687e4be4d9f6" have entirely different histories.
e4b5bbf5fa
...
267775d252
4 changed files with 13 additions and 23 deletions
|
|
@ -21,7 +21,6 @@ package com.graphhopper.jsprit.core.algorithm.recreate;
|
|||
import com.graphhopper.jsprit.core.problem.constraint.ConstraintManager;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.HardActivityConstraint;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.HardActivityConstraint.ConstraintsStatus;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.HardConstraint;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.HardRouteConstraint;
|
||||
import com.graphhopper.jsprit.core.problem.misc.JobInsertionContext;
|
||||
import com.graphhopper.jsprit.core.problem.solution.route.activity.TourActivity;
|
||||
|
|
@ -46,17 +45,17 @@ abstract class AbstractInsertionCalculator implements JobInsertionCostsCalculato
|
|||
return null;
|
||||
}
|
||||
|
||||
ConstraintsStatus fulfilled(JobInsertionContext iFacts, TourActivity prevAct, TourActivity newAct, TourActivity nextAct, double prevActDepTime, Collection<HardConstraint> failedActivityConstraints, ConstraintManager constraintManager) {
|
||||
ConstraintsStatus fulfilled(JobInsertionContext iFacts, TourActivity prevAct, TourActivity newAct, TourActivity nextAct, double prevActDepTime, Collection<String> failedActivityConstraints, ConstraintManager constraintManager) {
|
||||
ConstraintsStatus notFulfilled = null;
|
||||
List<HardConstraint> failed = new ArrayList<>();
|
||||
List<String> failed = new ArrayList<>();
|
||||
for (HardActivityConstraint c : constraintManager.getCriticalHardActivityConstraints()) {
|
||||
ConstraintsStatus status = c.fulfilled(iFacts, prevAct, newAct, nextAct, prevActDepTime);
|
||||
if (status.equals(ConstraintsStatus.NOT_FULFILLED_BREAK)) {
|
||||
failedActivityConstraints.add(c);
|
||||
failedActivityConstraints.add(c.getClass().getSimpleName());
|
||||
return status;
|
||||
} else {
|
||||
if (status.equals(ConstraintsStatus.NOT_FULFILLED)) {
|
||||
failed.add(c);
|
||||
failed.add(c.getClass().getSimpleName());
|
||||
notFulfilled = status;
|
||||
}
|
||||
}
|
||||
|
|
@ -69,11 +68,11 @@ abstract class AbstractInsertionCalculator implements JobInsertionCostsCalculato
|
|||
for (HardActivityConstraint c : constraintManager.getHighPrioHardActivityConstraints()) {
|
||||
ConstraintsStatus status = c.fulfilled(iFacts, prevAct, newAct, nextAct, prevActDepTime);
|
||||
if (status.equals(ConstraintsStatus.NOT_FULFILLED_BREAK)) {
|
||||
failedActivityConstraints.add(c);
|
||||
failedActivityConstraints.add(c.getClass().getSimpleName());
|
||||
return status;
|
||||
} else {
|
||||
if (status.equals(ConstraintsStatus.NOT_FULFILLED)) {
|
||||
failed.add(c);
|
||||
failed.add(c.getClass().getSimpleName());
|
||||
notFulfilled = status;
|
||||
}
|
||||
}
|
||||
|
|
@ -86,7 +85,7 @@ abstract class AbstractInsertionCalculator implements JobInsertionCostsCalculato
|
|||
for (HardActivityConstraint constraint : constraintManager.getLowPrioHardActivityConstraints()) {
|
||||
ConstraintsStatus status = constraint.fulfilled(iFacts, prevAct, newAct, nextAct, prevActDepTime);
|
||||
if (status.equals(ConstraintsStatus.NOT_FULFILLED_BREAK) || status.equals(ConstraintsStatus.NOT_FULFILLED)) {
|
||||
failedActivityConstraints.add(constraint);
|
||||
failedActivityConstraints.add(constraint.getClass().getSimpleName());
|
||||
return status;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ package com.graphhopper.jsprit.core.algorithm.recreate;
|
|||
import com.graphhopper.jsprit.core.problem.JobActivityFactory;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.ConstraintManager;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.HardActivityConstraint.ConstraintsStatus;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.HardConstraint;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.SoftActivityConstraint;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.SoftRouteConstraint;
|
||||
import com.graphhopper.jsprit.core.problem.cost.VehicleRoutingActivityCosts;
|
||||
|
|
@ -109,7 +108,7 @@ final class ServiceInsertionCalculator extends AbstractInsertionCalculator {
|
|||
InsertionData noInsertion = checkRouteContraints(insertionContext, constraintManager);
|
||||
if (noInsertion != null) return noInsertion;
|
||||
|
||||
Collection<HardConstraint> failedActivityConstraints = new ArrayList<>();
|
||||
Collection<String> failedActivityConstraints = new ArrayList<>();
|
||||
|
||||
/*
|
||||
check soft constraints at route level
|
||||
|
|
@ -168,9 +167,7 @@ final class ServiceInsertionCalculator extends AbstractInsertionCalculator {
|
|||
}
|
||||
if(insertionIndex == InsertionData.NO_INDEX) {
|
||||
InsertionData emptyInsertionData = new InsertionData.NoInsertionFound();
|
||||
for (HardConstraint c : failedActivityConstraints) {
|
||||
emptyInsertionData.addFailedConstrainName(c.getClass().getSimpleName());
|
||||
}
|
||||
emptyInsertionData.getFailedConstraintNames().addAll(failedActivityConstraints);
|
||||
return emptyInsertionData;
|
||||
}
|
||||
InsertionData insertionData = new InsertionData(bestCost, InsertionData.NO_INDEX, insertionIndex, newVehicle, newDriver);
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ package com.graphhopper.jsprit.core.algorithm.recreate;
|
|||
import com.graphhopper.jsprit.core.problem.JobActivityFactory;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.ConstraintManager;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.HardActivityConstraint.ConstraintsStatus;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.HardConstraint;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.SoftActivityConstraint;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.SoftRouteConstraint;
|
||||
import com.graphhopper.jsprit.core.problem.cost.VehicleRoutingActivityCosts;
|
||||
|
|
@ -129,7 +128,7 @@ final class ShipmentInsertionCalculator extends AbstractInsertionCalculator {
|
|||
//pickupShipmentLoop
|
||||
List<TourActivity> activities = currentRoute.getTourActivities().getActivities();
|
||||
|
||||
List<HardConstraint> failedActivityConstraints = new ArrayList<>();
|
||||
List<String> failedActivityConstraints = new ArrayList<>();
|
||||
while (!tourEnd) {
|
||||
TourActivity nextAct;
|
||||
if (i < activities.size()) {
|
||||
|
|
@ -229,9 +228,7 @@ final class ShipmentInsertionCalculator extends AbstractInsertionCalculator {
|
|||
}
|
||||
if (pickupInsertionIndex == InsertionData.NO_INDEX) {
|
||||
InsertionData emptyInsertionData = new InsertionData.NoInsertionFound();
|
||||
for (HardConstraint failed : failedActivityConstraints) {
|
||||
emptyInsertionData.addFailedConstrainName(failed.getClass().getSimpleName());
|
||||
}
|
||||
emptyInsertionData.getFailedConstraintNames().addAll(failedActivityConstraints);
|
||||
return emptyInsertionData;
|
||||
}
|
||||
InsertionData insertionData = new InsertionData(bestCost, pickupInsertionIndex, deliveryInsertionIndex, newVehicle, newDriver);
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ package com.graphhopper.jsprit.core.algorithm.recreate;
|
|||
import com.graphhopper.jsprit.core.problem.JobActivityFactory;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.ConstraintManager;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.HardActivityConstraint.ConstraintsStatus;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.HardConstraint;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.SoftActivityConstraint;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.SoftRouteConstraint;
|
||||
import com.graphhopper.jsprit.core.problem.cost.VehicleRoutingActivityCosts;
|
||||
|
|
@ -147,7 +146,7 @@ public final class ShipmentInsertionCalculatorFlex extends AbstractInsertionCalc
|
|||
//pickupShipmentLoop
|
||||
List<TourActivity> activities = currentRoute.getTourActivities().getActivities();
|
||||
|
||||
List<HardConstraint> failedActivityConstraints = new ArrayList<>();
|
||||
List<String> failedActivityConstraints = new ArrayList<>();
|
||||
while (!tourEnd) {
|
||||
TourActivity nextAct;
|
||||
if (i < activities.size()) {
|
||||
|
|
@ -253,9 +252,7 @@ public final class ShipmentInsertionCalculatorFlex extends AbstractInsertionCalc
|
|||
|
||||
if (pickupInsertionIndex == InsertionData.NO_INDEX) {
|
||||
InsertionData emptyInsertionData = new InsertionData.NoInsertionFound();
|
||||
for (HardConstraint failed : failedActivityConstraints) {
|
||||
emptyInsertionData.addFailedConstrainName(failed.getClass().getSimpleName());
|
||||
}
|
||||
emptyInsertionData.getFailedConstraintNames().addAll(failedActivityConstraints);
|
||||
return emptyInsertionData;
|
||||
}
|
||||
InsertionData insertionData = new InsertionData(bestCost, pickupInsertionIndex, deliveryInsertionIndex, newVehicle, newDriver);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue