I’m trying to use the Vehicle Routing Problem to create a strategy for making deliveries. I’ve built a working network dataset. I have depots, orders, and routes set up. But it seems like it has a serious limitation regarding vehicle capacity vs delivery requirements.
Background Information:
- If my truck capacity is higher than the individual delivery amounts, the analysis works as intended.
- If my truck capacity is higher than the individual delivery amounts, but the total delivery amount is higher than the truck capacity, the truck will return to the depot to refill as needed (using Route Renewal Table). This works as intended.
- If my truck capacity is lower than the individual delivery amounts, the analysis skips those delivery locations.
- I currently have no limitations on the amount of time nor distance for transport, delivering, loading, etc.
What I’d like:
- Have the analysis realize that one truck can go to the same order location more than once to fulfill the delivery amount.
- For example, my truck has a capacity of 1 unit. The delivery location requires 3 units. I’d like the analysis to realize the truck can make that delivery with 3 trips.
- Setting up the depot as an available Route Renewal point does not alleviate the issue.
- Have the analysis allow more than one truck to go to a delivery location to fulfill the delivery
- For example, if I have 3 trucks, each with a capacity of 1 unit, I’d like to send all 3 trucks to a location if it requires 3 units delivered.
- If the location only requires 2 units, let's send 2 trucks there and send the 3rd truck elsewhere
- Normally, sending multiple trucks to make a single delivery would probably not be ideal, but in my case, it is absolutely necessary to deal with the quantities of goods to be delivered within my timeframe.
My (Untested) Ideas:
- Set up multiple routes to emulate multiple trucks:
- Route 1 has a capacity of 1 unit (therefore 1 truck), and will only service Orders requiring fewer than 1 unit
- Route 2 has a capacity of 2 units (therefore 2 trucks), and will only service Orders requiring 1 to 2 units
- and so forth
- Use Generate Points along Line Tool to create Order locations:
- A bit of background information again: the delivery locations are actually lines along which multiple deliveries will be made, but I'm using the centroids of these lines as my Order locations for the purposes of the network analysis
- My idea is to generate points at regular intervals to represent the locations along the line where the deliveries will actually be made. So for a line requiring 4 units, I will generate 4 points along the line with a delivery quantity of 1 unit each.
- This would allow a single truck with a capacity of 1 unit to return to that delivery location 4 times rather than skipping it in the analysis.
Neither of these ideas will produce perfect results, and they'll require some post-analysis interpretation to manage the real-world deliveries of the goods. But I'm hoping they'll be close enough. I've wondered about using each DeliveryQuantity field to represent a different truck within the same route too, but haven't gone beyond surface thoughts with that.
It would be really nice if there was a Yes/No field in the orders to allow for return trips and/or multiple vehicles, but alas.
If anyone has any thoughts or suggestions about any of this, I’d really appreciate it. (Sorry this is a very long post)