mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
add priorities to constraints
This commit is contained in:
parent
6099a315ee
commit
8010e0f2c2
1 changed files with 13 additions and 4 deletions
|
|
@ -1,10 +1,15 @@
|
|||
package algorithms;
|
||||
|
||||
import basics.VehicleRoutingProblem;
|
||||
import basics.VehicleRoutingProblem.Constraint;
|
||||
import basics.route.TourActivity;
|
||||
|
||||
public class ConstraintManager implements HardActivityStateLevelConstraint, HardRouteStateLevelConstraint{
|
||||
|
||||
public static enum Priority {
|
||||
CRITICAL, HIGH, LOW
|
||||
}
|
||||
|
||||
private HardActivityLevelConstraintManager actLevelConstraintManager = new HardActivityLevelConstraintManager();
|
||||
|
||||
private HardRouteLevelConstraintManager routeLevelConstraintManager = new HardRouteLevelConstraintManager();
|
||||
|
|
@ -24,7 +29,7 @@ public class ConstraintManager implements HardActivityStateLevelConstraint, Hard
|
|||
|
||||
public void addTimeWindowConstraint(){
|
||||
if(!timeWindowConstraintsSet){
|
||||
addConstraint(new TimeWindowConstraint(stateManager, vrp.getTransportCosts()));
|
||||
addConstraint(new TimeWindowConstraint(stateManager, vrp.getTransportCosts()),Priority.HIGH);
|
||||
stateManager.addActivityVisitor(new TimeWindowUpdater(stateManager, vrp.getTransportCosts()));
|
||||
timeWindowConstraintsSet = true;
|
||||
}
|
||||
|
|
@ -32,8 +37,12 @@ public class ConstraintManager implements HardActivityStateLevelConstraint, Hard
|
|||
|
||||
public void addLoadConstraint(){
|
||||
if(!loadConstraintsSet){
|
||||
if(vrp.getProblemConstraints().contains(Constraint.DELIVERIES_FIRST)){
|
||||
addConstraint(new ServiceBackhaulConstraint(),Priority.HIGH);
|
||||
}
|
||||
addConstraint(new PickupAndDeliverShipmentLoadActivityLevelConstraint(stateManager),Priority.CRITICAL);
|
||||
addConstraint(new ServiceLoadRouteLevelConstraint(stateManager));
|
||||
addConstraint(new ServiceLoadActivityLevelConstraint(stateManager));
|
||||
addConstraint(new ServiceLoadActivityLevelConstraint(stateManager),Priority.LOW);
|
||||
UpdateLoads updateLoads = new UpdateLoads(stateManager);
|
||||
stateManager.addActivityVisitor(updateLoads);
|
||||
stateManager.addListener(updateLoads);
|
||||
|
|
@ -43,8 +52,8 @@ public class ConstraintManager implements HardActivityStateLevelConstraint, Hard
|
|||
}
|
||||
}
|
||||
|
||||
public void addConstraint(HardActivityStateLevelConstraint actLevelConstraint){
|
||||
actLevelConstraintManager.addConstraint(actLevelConstraint);
|
||||
public void addConstraint(HardActivityStateLevelConstraint actLevelConstraint, Priority priority){
|
||||
actLevelConstraintManager.addConstraint(actLevelConstraint,priority);
|
||||
}
|
||||
|
||||
public void addConstraint(HardRouteStateLevelConstraint routeLevelConstraint){
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue