I have been trying to customize some of the custom workflows on my VRP task. Some of the questions listed below, and any input regarding these would be appreciated.
1) How to force routes (i.e., drivers) take a break at a certain location? I realize that breaks are represented as non-spatial tables, but I was thinking to link an existing depot/order/renewal to make it a break place where drivers could actually get access to toilet and buy some food. So, let's say that if a driver is on a road for longer than 3 hours, he/she is supposed to take a break for 30min, but there only some points which should be visited then, like a cafe.
2) Does VRP solver "understands" that it is required to introduce a new route (i.e., car) in order to meet all the Orders' DeliveryQuanitities requirements? I have the Override value selected for the AssignmentRule field in the Orders layer (which if I got it right in this case shall introduce a new route). However, I just get the "capacities exceeded" message for the orders that are not served.
3) Is it possible to implement a following scenario? There are two cars, each has capacity of 100kg (I have created two Routes). They start at a depot at the same time empty (I have created one Depot). Then they have to load at the same depot with 100kg each (I have created an Order which is in the same place as Depot, set up the PickupQuantities to be 200kg). Then they have to drive to a shop where they have to deliver 100kg of the product each (I have created one Order with the DeliveryQuantities set up to 200kg). However, I receive the "capacities exceeded" message for this Order. The only solution I have found so far is to duplicate the Order where 200kg shall be delivered, so it will be two identical Orders with the DeliveryQuantities set up to 100kg each.
This resulted in having pairs which look a bit redundant to my view: Storage01 - Shop1 (from Storage01) Storage02 - Shop1 (from Storage01) Storage03 - Shop1 (from Storage01) Storage04 - Shop1 (from Storage01) etc.
VRP solver requires having unique names for every order, so I had to create dozens of coincident geographic points where each of them represent "Shop1 (from StorageNN)". Is there a way to tell the VRP solver that the orders (from storageNN) are going to actually just one paired ShopN?
Question 1): VRP solver does not support the pre-assigned spatial location for breaks because the solver tries to find the lowest cost location to take breaks. If you want use an existing location to make a break, you can create a regular order with the proper time window and the service time (break time) to represent the break. This way, the break will be similar to the time-window break. Since order service time is always paid time, the break created this way will be paid break. (Please click here for more information on breaks http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Vehicle_routing_problem_analysis/00470...)
Question 2): VRP solver will use more routes whenever it is necessary. You can see unassigned orders with Capacity Exceeded violation with some unused routes for many reasons. Based on your question 3), I guess your problem is caused by the order pickup/delivery quantity exceeding the vehicle capacity. Any order which exceeds the vehicle capacity has to be split into multiple orders in order to fit in the vehicle.
Question 3): It looks like you are delivering homogenous product. If that�??s the case, you do not need to use paired orders. You can just split the large order (200kg) into multiple small orders (two 100kg orders) and set the quantity to the order DeliveryQuantities. You don�??t need pickup orders because the solver will automatically use the start depot as the pickup location and it will load enough supply to meet the demand in the trip. (Please click here to watch a video for VRP solver http://video.arcgis.com/watch/686/vehicle-routing-problem-example-appliance-delivery)
I hope these answer your questions. Please let me know if you have more questions.