Give all cars their unique craftsmanship. Any pre-authorized orders must be defined in the new task with the skill requirement of the vehicle to which they were originally assigned (that is, in the previous decision before the new order). Only the new order is included in the problem without first defining the driverโs skill (in addition to the โrealโ skill requirements that he can carry).
Jsprit is smart when choosing vehicles to insert orders (it will pre-filter your fleet for each new insert so that it reduces its capabilities before calculating insert costs). Therefore, even if you do not download an existing solution, but instead start the solution cycle again, as if it were a completely new problem, your previously resolved orders will quickly (one insert cycle for the order) return to the cars that they should be included in; every old order can only ever switch to one car.
EDIT:
Jsprit is not deprecated beyond the scope of one problem. What you want to do requires something superfluous, which is state, so you need something extra to control this and pass data to jsprit accordingly. You can then โgrabโ existing hard constraints in the jsprit core to convey a new state.
source share