1
0
Fork 0
mirror of https://github.com/graphhopper/jsprit.git synced 2020-01-24 07:45:05 +01:00

add Getters to get constraints

This commit is contained in:
Stefan Schroeder 2013-12-03 15:18:46 +01:00
parent 3bf977784e
commit 257c0a6ebe
3 changed files with 31 additions and 2 deletions

View file

@ -1,8 +1,9 @@
package jsprit.core.problem.constraint;
import java.util.ArrayList;
import java.util.Collection;
import org.apache.log4j.Logger;
import java.util.Collections;
import java.util.List;
import jsprit.core.problem.VehicleRoutingProblem;
import jsprit.core.problem.VehicleRoutingProblem.Constraint;
@ -10,6 +11,8 @@ import jsprit.core.problem.misc.JobInsertionContext;
import jsprit.core.problem.solution.route.activity.TourActivity;
import jsprit.core.problem.solution.route.state.RouteAndActivityStateGetter;
import org.apache.log4j.Logger;
public class ConstraintManager implements HardActivityStateLevelConstraint, HardRouteStateLevelConstraint{
public static enum Priority {
@ -96,4 +99,11 @@ public class ConstraintManager implements HardActivityStateLevelConstraint, Hard
return actLevelConstraintManager.fulfilled(iFacts, prevAct, newAct, nextAct, prevActDepTime);
}
public Collection<jsprit.core.problem.constraint.Constraint> getConstraints(){
List<jsprit.core.problem.constraint.Constraint> constraints = new ArrayList<jsprit.core.problem.constraint.Constraint>();
constraints.addAll(actLevelConstraintManager.getAllConstraints());
constraints.addAll(routeLevelConstraintManager.getConstraints());
return Collections.unmodifiableCollection(constraints);
}
}

View file

@ -2,6 +2,8 @@ package jsprit.core.problem.constraint;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import jsprit.core.problem.constraint.ConstraintManager.Priority;
import jsprit.core.problem.misc.JobInsertionContext;
@ -28,6 +30,20 @@ class HardActivityLevelConstraintManager implements HardActivityStateLevelConstr
}
}
Collection<HardActivityStateLevelConstraint> getCriticalConstraints(){ return Collections.unmodifiableCollection(criticalConstraints); }
Collection<HardActivityStateLevelConstraint> getHighPrioConstraints(){ return Collections.unmodifiableCollection(highPrioConstraints); }
Collection<HardActivityStateLevelConstraint> getLowPrioConstraints(){ return Collections.unmodifiableCollection(lowPrioConstraints); }
Collection<HardActivityStateLevelConstraint> getAllConstraints(){
List<HardActivityStateLevelConstraint> c = new ArrayList<HardActivityStateLevelConstraint>();
c.addAll(criticalConstraints);
c.addAll(highPrioConstraints);
c.addAll(lowPrioConstraints);
return Collections.unmodifiableCollection(c);
}
@Override
public ConstraintsStatus fulfilled(JobInsertionContext iFacts, TourActivity prevAct, TourActivity newAct, TourActivity nextAct, double prevActDepTime) {
ConstraintsStatus notFulfilled = null;

View file

@ -2,6 +2,7 @@ package jsprit.core.problem.constraint;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import jsprit.core.problem.misc.JobInsertionContext;
@ -13,6 +14,8 @@ class HardRouteLevelConstraintManager implements HardRouteStateLevelConstraint {
public void addConstraint(HardRouteStateLevelConstraint constraint){
hardConstraints.add(constraint);
}
Collection<HardRouteStateLevelConstraint> getConstraints(){ return Collections.unmodifiableCollection(hardConstraints); }
@Override
public boolean fulfilled(JobInsertionContext insertionContext) {