In cases where the quantity of shipment is larger than capacity of largest vehicle the shipment is not served. In reality larger shipment is broken into smaller pieces and are served by multiple trucks. Is there a optimized way to break shipment into more than one piece and serve by multiple truck and also optimize it.

Let me add my 2 cents worth comment on this problem:

You can either:

a) Optimise the problem by changing the core of Jsprit or use another more general purpose optimiser that can also solve VRP problems. This is not necessarily difficult, but will require a reasonable amount of time and effort.

or

b) You can just use Jsprit with â€śhuman assisted heuristicâ€ť.

The choice would obviously depend on how much a very good solution is worth to you.

My guess is that a â€śhuman assisted heuristicâ€ť like described below could very well give you a good enough solution:

Manually test different choices and compare the results:

One choice would be to divide the loads into equal parts so that each vehicle has some â€śspareâ€ť capacity

Another choice would be to divide the loads into the biggest load that can fit into one vehicle and a smaller load. (Or a number of bigger loads with a small last load).

Based on this, one could have a separate â€śmaster optimiserâ€ť that optimises the â€śsize of the piecesâ€ť, cascading to Jsprit â€śslave optimiserâ€ť that will solve the different optimisation problems, each with a fixed â€śpieces distributionâ€ť.

If there is only one load that is too big for the largest vehicle, then a simple Newton-Raphson based algorithm, written in Java in Jsprit environment might do the trick. (I know Newton-Raphson assumes a smooth function it is obviously not valid, but because itâ€™s very simple it might be worth a try. NR does sometimes work even though the function is not smooth.)

Thanks Pieter for your suggestions.

We were working on a similar line ( Using Jsprit with a human assisted heuristic), but our problem has non-uniforms vehicles. i.e trucks of different loads. In such case optimal division of package will depend on problem and other constraint and changing core of Jspirit is not an option for us.

So in absence of any other better option we have to go ahead with method suggested by you.

@pieter @Bhoumik_Shah Can you please elaborate more on

Based on this, one could have a separate â€śmaster optimiserâ€ť that optimises the â€śsize of the piecesâ€ť, cascading to Jsprit â€śslave optimiserâ€ť that will solve the different optimisation problems, each with a fixed â€śpieces distributionâ€ť.

If there is only one load that is too big for the largest vehicle, then a simple Newton-Raphson based algorithm, written in Java in Jsprit environment might do the trick.

Any sample or approach would be great help.

Thanks