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

removed addConstraint in core.problem.VehicleRoutingProblem

This commit is contained in:
oblonski 2014-07-29 12:25:27 +02:00
parent 1f96eefc4d
commit b991793aba
10 changed files with 128 additions and 147 deletions

View file

@ -158,7 +158,7 @@ public class VehicleRoutingAlgorithmBuilder {
*/
public VehicleRoutingAlgorithm build() {
if(stateManager == null) stateManager = new StateManager(vrp);
if(constraintManager == null) constraintManager = new ConstraintManager(vrp,stateManager,vrp.getConstraints());
if(constraintManager == null) constraintManager = new ConstraintManager(vrp,stateManager);
//add core updater
stateManager.addStateUpdater(new UpdateEndLocationIfRouteIsOpen());
// stateManager.addStateUpdater(new OpenRouteStateVerifier());

View file

@ -471,7 +471,7 @@ public class VehicleRoutingAlgorithms {
* define constraints
*/
//constraint manager
ConstraintManager constraintManager = new ConstraintManager(vrp,stateManager,vrp.getConstraints());
ConstraintManager constraintManager = new ConstraintManager(vrp,stateManager);
constraintManager.addTimeWindowConstraint();
constraintManager.addLoadConstraint();
constraintManager.addSkillsConstraint();

View file

@ -102,9 +102,6 @@ public class VehicleRoutingProblem {
private Set<Vehicle> uniqueVehicles = new HashSet<Vehicle>();
@Deprecated
private Collection<jsprit.core.problem.constraint.Constraint> constraints = new ArrayList<jsprit.core.problem.constraint.Constraint>();
private JobActivityFactory jobActivityFactory = new JobActivityFactory() {
@Override
@ -500,20 +497,6 @@ public class VehicleRoutingProblem {
return Collections.unmodifiableCollection(vehicleTypes);
}
/**
* Adds constraint to problem.
*
* @param constraint constraint to be added
* @return this builder
* @deprecated use ConstraintManager instead
*/
@Deprecated
public Builder addConstraint(jsprit.core.problem.constraint.Constraint constraint){
//noinspection deprecation
constraints.add(constraint);
return this;
}
/**
* Adds penaltyVehicles, i.e. for every unique vehicle-location and type combination a penalty-vehicle is constructed having penaltyFactor times higher fixed and variable costs
* (see .addPenaltyVehicles(double penaltyFactor, double penaltyFixedCosts) if fixed costs = 0.0).
@ -615,12 +598,7 @@ public class VehicleRoutingProblem {
* An enum that indicates type of fleetSize. By default, it is INFINTE
*/
private final FleetSize fleetSize;
/**
* contains all constraints
*/
private final Collection<jsprit.core.problem.constraint.Constraint> constraints;
private final Locations locations;
private Map<Job,List<AbstractActivity>> activityMap;
@ -644,8 +622,6 @@ public class VehicleRoutingProblem {
this.initialVehicleRoutes = builder.initialRoutes;
this.transportCosts = builder.transportCosts;
this.activityCosts = builder.activityCosts;
//noinspection deprecation
this.constraints = builder.constraints;
this.locations = builder.getLocations();
this.activityMap = builder.activityMap;
this.nuActivities = builder.activityIndexCounter;
@ -719,18 +695,7 @@ public class VehicleRoutingProblem {
public VehicleRoutingActivityCosts getActivityCosts(){
return activityCosts;
}
/**
* Returns an unmodifiable collection of constraints.
*
* @return collection of constraints
* @deprecated use ConstraintManager instead
*/
@Deprecated
public Collection<jsprit.core.problem.constraint.Constraint> getConstraints(){
return Collections.unmodifiableCollection(constraints);
}
public Locations getLocations(){
return locations;
}
@ -743,14 +708,12 @@ public class VehicleRoutingProblem {
public JobActivityFactory getJobActivityFactory(){
return jobActivityFactory;
};
}
public List<AbstractActivity> copyAndGetActivities(Job job){
List<AbstractActivity> acts = new ArrayList<AbstractActivity>();
if(activityMap.containsKey(job)) {
for (AbstractActivity act : activityMap.get(job)) {
acts.add((AbstractActivity) act.duplicate());
}
for (AbstractActivity act : activityMap.get(job)) acts.add((AbstractActivity) act.duplicate());
}
return acts;
}

View file

@ -17,7 +17,6 @@
package jsprit.core.problem;
import jsprit.core.problem.VehicleRoutingProblem.FleetSize;
import jsprit.core.problem.constraint.Constraint;
import jsprit.core.problem.cost.AbstractForwardVehicleRoutingTransportCosts;
import jsprit.core.problem.cost.VehicleRoutingActivityCosts;
import jsprit.core.problem.driver.Driver;
@ -98,10 +97,10 @@ public class VehicleRoutingProblemTest {
VehicleTypeImpl type1 = mock(VehicleTypeImpl.class);
VehicleTypeImpl type2 = mock(VehicleTypeImpl.class);
Vehicle v1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("yo").setType(type1).build();
Vehicle v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("yo").setType(type1).build();
Vehicle v3 = VehicleImpl.Builder.newInstance("v3").setStartLocationId("yo").setType(type2).build();
Vehicle v4 = VehicleImpl.Builder.newInstance("v4").setStartLocationId("yo").setType(type2).build();
VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("yo").setType(type1).build();
VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("yo").setType(type1).build();
VehicleImpl v3 = VehicleImpl.Builder.newInstance("v3").setStartLocationId("yo").setType(type2).build();
VehicleImpl v4 = VehicleImpl.Builder.newInstance("v4").setStartLocationId("yo").setType(type2).build();
builder.addVehicle(v1).addVehicle(v2).addVehicle(v3).addVehicle(v4);
@ -234,16 +233,7 @@ public class VehicleRoutingProblemTest {
assertEquals(s2,vrp.getJobs().get("s2"));
}
@SuppressWarnings("deprecation")
@Test
public void whenConstraintsAdded_vrpShouldContainThem(){
Constraint c1 = mock(Constraint.class);
Constraint c2 = mock(Constraint.class);
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
builder.addConstraint(c1).addConstraint(c2);
VehicleRoutingProblem problem = builder.build();
assertEquals(2,problem.getConstraints().size());
}
@Test
public void whenSettingActivityCosts_vrpShouldContainIt(){