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

add problemConstraints

This commit is contained in:
Stefan Schroeder 2013-09-02 17:21:09 +02:00
parent 4b8876b1c6
commit 0806d524e6

View file

@ -49,8 +49,16 @@ import basics.route.VehicleTypeImpl;
*/ */
public class VehicleRoutingProblem { public class VehicleRoutingProblem {
public static class VehicleRoutingProblemType { /**
* Overall problem constraints.
*
* <p>DELIIVERIES_FIRST corresponds to the vehicle routing problem with back hauls, i.e. before a vehicle is not entirely unloaded, no pickup can be made.
*
* @author stefan
*
*/
public enum Constraint {
DELIVERIES_FIRST
} }
/** /**
@ -85,6 +93,8 @@ public class VehicleRoutingProblem {
private FleetComposition fleetComposition = FleetComposition.HOMOGENEOUS; private FleetComposition fleetComposition = FleetComposition.HOMOGENEOUS;
private Collection<VehicleType> vehicleTypes; private Collection<VehicleType> vehicleTypes;
private Collection<Constraint> problemConstraints;
/** /**
* by default all locations are neighbors * by default all locations are neighbors
@ -103,6 +113,7 @@ public class VehicleRoutingProblem {
coordinates = new HashMap<String, Coordinate>(); coordinates = new HashMap<String, Coordinate>();
vehicleTypes = new ArrayList<VehicleType>(); vehicleTypes = new ArrayList<VehicleType>();
services = new ArrayList<Service>(); services = new ArrayList<Service>();
problemConstraints = new ArrayList<VehicleRoutingProblem.Constraint>();
} }
/** /**
@ -121,6 +132,7 @@ public class VehicleRoutingProblem {
} }
return id; return id;
} }
/** /**
* Returns the unmodifiable map of locations (mapped by their id). * Returns the unmodifiable map of locations (mapped by their id).
@ -149,6 +161,12 @@ public class VehicleRoutingProblem {
}; };
} }
public void addProblemConstraint(Constraint constraint){
if(!problemConstraints.contains(constraint)) problemConstraints.add(constraint);
}
/** /**
* Sets routing costs. * Sets routing costs.
* *
@ -391,6 +409,8 @@ public class VehicleRoutingProblem {
private FleetComposition fleetComposition; private FleetComposition fleetComposition;
private Collection<Constraint> problemConstraints;
private VehicleRoutingProblem(Builder builder) { private VehicleRoutingProblem(Builder builder) {
this.jobs = builder.jobs; this.jobs = builder.jobs;
this.fleetComposition = builder.fleetComposition; this.fleetComposition = builder.fleetComposition;
@ -400,6 +420,7 @@ public class VehicleRoutingProblem {
this.transportCosts = builder.transportCosts; this.transportCosts = builder.transportCosts;
this.activityCosts = builder.activityCosts; this.activityCosts = builder.activityCosts;
this.neighborhood = builder.neighborhood; this.neighborhood = builder.neighborhood;
this.problemConstraints = builder.problemConstraints;
log.info("initialise " + this); log.info("initialise " + this);
} }
@ -445,6 +466,14 @@ public class VehicleRoutingProblem {
return Collections.unmodifiableMap(jobs); return Collections.unmodifiableMap(jobs);
} }
/**
* Returns unmodifiable collection of problem-constraints.
*
* @return
*/
public Collection<Constraint> getProblemConstraints(){
return Collections.unmodifiableCollection(problemConstraints);
}
/** /**
* Returns the entire, unmodifiable collection of types. * Returns the entire, unmodifiable collection of types.