diff --git a/WHATS_NEW.md b/WHATS_NEW.md index 3a341d3f..dc267e0d 100644 --- a/WHATS_NEW.md +++ b/WHATS_NEW.md @@ -28,7 +28,16 @@ VehicleRoutingAlgorithm vra = vraBuilder.build(); UNASSIGNED JOB LIST -- new feature: unassigned job list +A solution can now consists of assigned and unassigned jobs. There are various reasons for unassigned jobs, e.g. +demand exceeds available capacity, the job cannot be served within driver's operation time or the job is just too costly to +serve it with your own fleet. + +Note that jsprit uses "soft" approach to deal with unassigned jobs, i.e. each unassigned job will be penalyzed in the objective function +(see default objective https://github.com/jsprit/jsprit/blob/master/jsprit-core/src/main/java/jsprit/core/algorithm/VariablePlusFixedSolutionCostCalculatorFactory.java [line 55]). +If you omit penalyzing them, you probably end up with a solution consisting solely of unassigned jobs (the less the better in terms of total costs). +This, however, easily enables you to define objective functions that maximizes profits. + +Thus, if you already use your own custom objective function, you need to manually adapt it and add penalties for unassigned jobs. STATEMANAGER