diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a6e0123..46e08d35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ Change-log - countless improvements of javadocs jsprit-core +- renaming of core.problem.constraint.HardActivityStateLevelConstraint into HardActivityConstraint +- renaming of core.problem.constraint.HardRouteStateLevelConstraint into HardRouteConstraint - StateFactory.createId(String name) moved to core.algorithm.state.StateManager.createStateId(String name) - StateFactory moved from core.problem.solution.route.state.StateFactory to core.algorithm.state.InternalStates - StateId moved from core.problem.route.state.StateFactory.StateId to core.algorithm.state.StateId @@ -18,12 +20,15 @@ Change-log - StateManager.addDefault... methods do not exists anymore. Client must now decide what to do when state does not exist. - deprecated core.problem.VehicleRoutingProblem.Builder.addVehicle(Vehicle v) and added core.problem.VehicleRoutingProblem.Builder.addVehicle(AbstractVehicle v) - deprecated core.problem.VehicleRoutingProblem.Builder.addJob(Job j) and added core.problem.VehicleRoutingProblem.Builder.addJob(AbstractJob j) +- this [example](https://github.com/jsprit/jsprit/blob/master/jsprit-examples/src/main/java/jsprit/examples/MultipleProductsWithLoadConstraintExample.java) might make migrating from v1.3.1 to v1.4 easier (since both versions are implemented - v1.3.1 was commented out) - bugfix [#107](https://github.com/jsprit/jsprit/issues/107) - bugfix [#109](https://github.com/jsprit/jsprit/issues/109) - bugfix [#111](https://github.com/jsprit/jsprit/issues/111) - bugfix [#112](https://github.com/jsprit/jsprit/issues/112) - bugfix [#114](https://github.com/jsprit/jsprit/issues/114) +- bugfix [#126](https://github.com/jsprit/jsprit/issues/126) +- bugfix [#128](https://github.com/jsprit/jsprit/issues/128) **v1.3.1** @ 2014-06-14 diff --git a/WHATS_NEW.md b/WHATS_NEW.md index 2957c18d..714cd5f0 100644 --- a/WHATS_NEW.md +++ b/WHATS_NEW.md @@ -5,6 +5,8 @@ WHATS NEW 2014-09-? new release **v1.4.0** +v1.4 breaks your code! Look at [changelog](https://github.com/jsprit/jsprit/blob/master/CHANGELOG.md) to migrate from v1.3.1 to v1.4. + SKILLS Skills can now be included easily (see for example https://github.com/jsprit/jsprit/blob/master/jsprit-examples/src/main/java/jsprit/examples/SolomonWithSkillsExample.java). @@ -56,6 +58,30 @@ This, however, easily enables you to define objective functions that maximizes p Thus, if you already use your own custom objective function, you need to manually adapt it and add penalties for unassigned jobs. + LIFO and FIFO CONSTRAINTS + +You can now retrieve additional information about related activities from JobInsertionContext (see https://github.com/jsprit/jsprit/issues/127). + +If one deals with shipments then two activities will be inserted: pickupShipment and deliverShipment. + +If you implement core.problem.constraint.SoftActivityContraint and core.problem.constraint.HardActivityStateLevelConstraint and thus + +public double getCosts(JobInsertionContext iFacts, TourActivity prevAct, TourActivity newAct, TourActivity nextAct, double prevActDepTime); + +and + +public ConstraintsStatus fulfilled(JobInsertionContext iFacts, TourActivity prevAct, TourActivity newAct, TourActivity nextAct, double prevActDepTime); + +you can now retrieve additional information from iFacts. If newAct is "deliverShipment" then + +iFacts.getRelatedActivityContext(); + +provides arrivalTime, endTime and potentialInsertionIndex of the related "pickupShipment" (see javadoc of ActivityContext). + +This allows you to easily implement LIFO and FIFO constraints (since you now know where the pickup activity will be inserted). + + + ------------------------------ 2014-08-20 jsprit has a mailing list (https://groups.google.com/group/jsprit-mailing-list)