mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
reduce calling getSimpleName - related to #429
This commit is contained in:
parent
267775d252
commit
8ba60c061b
4 changed files with 26 additions and 13 deletions
|
|
@ -21,6 +21,7 @@ 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;
|
||||
|
|
@ -45,17 +46,17 @@ abstract class AbstractInsertionCalculator implements JobInsertionCostsCalculato
|
|||
return null;
|
||||
}
|
||||
|
||||
ConstraintsStatus fulfilled(JobInsertionContext iFacts, TourActivity prevAct, TourActivity newAct, TourActivity nextAct, double prevActDepTime, Collection<String> failedActivityConstraints, ConstraintManager constraintManager) {
|
||||
ConstraintsStatus fulfilled(JobInsertionContext iFacts, TourActivity prevAct, TourActivity newAct, TourActivity nextAct, double prevActDepTime, Collection<HardConstraint> failedActivityConstraints, ConstraintManager constraintManager) {
|
||||
ConstraintsStatus notFulfilled = null;
|
||||
List<String> failed = new ArrayList<>();
|
||||
List<HardConstraint> 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.getClass().getSimpleName());
|
||||
failedActivityConstraints.add(c);
|
||||
return status;
|
||||
} else {
|
||||
if (status.equals(ConstraintsStatus.NOT_FULFILLED)) {
|
||||
failed.add(c.getClass().getSimpleName());
|
||||
failed.add(c);
|
||||
notFulfilled = status;
|
||||
}
|
||||
}
|
||||
|
|
@ -68,11 +69,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.getClass().getSimpleName());
|
||||
failedActivityConstraints.add(c);
|
||||
return status;
|
||||
} else {
|
||||
if (status.equals(ConstraintsStatus.NOT_FULFILLED)) {
|
||||
failed.add(c.getClass().getSimpleName());
|
||||
failed.add(c);
|
||||
notFulfilled = status;
|
||||
}
|
||||
}
|
||||
|
|
@ -85,7 +86,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.getClass().getSimpleName());
|
||||
failedActivityConstraints.add(constraint);
|
||||
return status;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ 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;
|
||||
|
|
@ -108,7 +109,7 @@ final class ServiceInsertionCalculator extends AbstractInsertionCalculator {
|
|||
InsertionData noInsertion = checkRouteContraints(insertionContext, constraintManager);
|
||||
if (noInsertion != null) return noInsertion;
|
||||
|
||||
Collection<String> failedActivityConstraints = new ArrayList<>();
|
||||
Collection<HardConstraint> failedActivityConstraints = new ArrayList<>();
|
||||
|
||||
/*
|
||||
check soft constraints at route level
|
||||
|
|
@ -167,7 +168,10 @@ final class ServiceInsertionCalculator extends AbstractInsertionCalculator {
|
|||
}
|
||||
if(insertionIndex == InsertionData.NO_INDEX) {
|
||||
InsertionData emptyInsertionData = new InsertionData.NoInsertionFound();
|
||||
emptyInsertionData.getFailedConstraintNames().addAll(failedActivityConstraints);
|
||||
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,6 +20,7 @@ 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;
|
||||
|
|
@ -128,7 +129,7 @@ final class ShipmentInsertionCalculator extends AbstractInsertionCalculator {
|
|||
//pickupShipmentLoop
|
||||
List<TourActivity> activities = currentRoute.getTourActivities().getActivities();
|
||||
|
||||
List<String> failedActivityConstraints = new ArrayList<>();
|
||||
List<HardConstraint> failedActivityConstraints = new ArrayList<>();
|
||||
while (!tourEnd) {
|
||||
TourActivity nextAct;
|
||||
if (i < activities.size()) {
|
||||
|
|
@ -228,7 +229,10 @@ final class ShipmentInsertionCalculator extends AbstractInsertionCalculator {
|
|||
}
|
||||
if (pickupInsertionIndex == InsertionData.NO_INDEX) {
|
||||
InsertionData emptyInsertionData = new InsertionData.NoInsertionFound();
|
||||
emptyInsertionData.getFailedConstraintNames().addAll(failedActivityConstraints);
|
||||
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,6 +20,7 @@ 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;
|
||||
|
|
@ -146,7 +147,7 @@ public final class ShipmentInsertionCalculatorFlex extends AbstractInsertionCalc
|
|||
//pickupShipmentLoop
|
||||
List<TourActivity> activities = currentRoute.getTourActivities().getActivities();
|
||||
|
||||
List<String> failedActivityConstraints = new ArrayList<>();
|
||||
List<HardConstraint> failedActivityConstraints = new ArrayList<>();
|
||||
while (!tourEnd) {
|
||||
TourActivity nextAct;
|
||||
if (i < activities.size()) {
|
||||
|
|
@ -252,7 +253,10 @@ public final class ShipmentInsertionCalculatorFlex extends AbstractInsertionCalc
|
|||
|
||||
if (pickupInsertionIndex == InsertionData.NO_INDEX) {
|
||||
InsertionData emptyInsertionData = new InsertionData.NoInsertionFound();
|
||||
emptyInsertionData.getFailedConstraintNames().addAll(failedActivityConstraints);
|
||||
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