|
POST
|
That data was very helpful for understanding this issue. At the fundamental level this is two problems, one which is assigning stores to routes (the Assignment Model) and then a routing problem to sequence the assigned orders. We do not specifically solve the assignment model but brainstormed a few ways that it could be approximated. Here are some options for determining which driver should visit each store. 1. Choose the day with the largest overall quantity and solve that day first. Then lock the orders to the specific drivers with either the assignment rule suggested above or using a specialty that pairs those routes and orders together and solve the next largest quantity day and so on until you have assigned all stores to a driver. 2. For the initial solve have a single order for each store and set the quantity value to the highest for that store location. That might be Monday's quantity for one store but Thursday's quantity for a different store. This first solve would give you the route assignments for each store. Then for each day of the week use specialties to require a store be visited by it's assigned route. This will give you the sequencing of orders for that day. 3. Similar to option 2 but instead of the highest quantity value add them all up and use the sum for the quantity of that location. Also set the route capacity to five times the normal capacity value. None of these options are perfect but hopefully one can work well enough for you to get some improved optimization for your problem.
... View more
08-17-2022
01:53 PM
|
0
|
0
|
1219
|
|
POST
|
This is a very interesting use case. We don't have methods that allow it to be solved with just a single solve but I have seen other periodic routing problems solved successfully with a series of solves. This requires solving for a portion of the problem and then locking those orders to the route and adding in the next part of the problem for another solve. For example The first solve of the problem could look at how to divide up the work that is done daily to the different drivers. This could be done with having one order for every location that has an every day visit requirement. For routes include just a single route for each of the drivers. Once this work is divided then the order locations that need to be visited periodically can be added into the problem and the routes expand to show the drivers and day of the week. With each successive solve the orders that are already routed are kept in the problem and given an AssignmentRule of PreserveRoute and the new ones that are to be assigned have an AssignmentRule of override. I'm not able to give too much more advice on the second portion of this yet, because it would depend on the requirements of the periodic routing. For the twice a week locations can they be visited any two days of the week or do you need a required separation between visits such as it could only be Monday/Thursday or Tuesday/Friday or would Monday/Tuesday be okay? Similar questions for the three times a week locations and four times a week locations. Once you have the different options listed out then you would be able to figure out how best to solve the second portion of the solve. For example if the twice a week locations must be either Monday/Thursday or Tuesday/Friday then you could solve the problem with just deciding if it will be visited on Monday or Tuesday. You would have routes for double the number of drivers (Driver1_Monday, Driver1_Tuesday, Driver2_Monday, Driver2_Tuesday, ...) TThe every day orders would be duplicated and given a route assignment matching the Monday and Tuesday routes for that driver it was assigned in the first solve. And the twice a week orders would be added into the problem with an assignment rule of override. This would allow the solver to divide up the work between the drivers and the days of the week. If it is assigned to Driver1_Monday then you know it will also be on Driver1_Thursday's route and so when solving for the next set you can include an order for that day and lock it to that route with the AssignmentRule.
... View more
08-12-2022
03:16 PM
|
0
|
2
|
1241
|
|
POST
|
When first opening a project in ArcGIS Pro the default network data source is typically the portal you are signed into which for you is likely ArcGIS Online. It will automatically swap to a local network dataset if you add one to the map or you can change it from the Network Data Source button on the dropdown before selecting which layer type you would like to model.
... View more
05-05-2022
07:50 AM
|
0
|
1
|
1160
|
|
POST
|
Is the VRP layer using a local network dataset (saved somewhere on file) or is it referencing ArcGIS Online? A quick way to check this within ArcGIS Pro is to look at the run button. Does the icon have the cloud with the play button or just the play button? If it is using ArcGIS Online, there is a known limitation of the Cumul fields not being returned from the services and so you will not see results for those fields. If it is using a local network dataset, check the travel mode settings and see if the distance impedance parameter is set.
... View more
04-29-2022
09:39 AM
|
1
|
3
|
1178
|
|
IDEA
|
The Fixed Location and Nearest Location ideas for breaks are very interesting. We will add these to the list of possible enhancements for our future improvements to VRP.
... View more
04-04-2022
09:25 AM
|
0
|
0
|
1545
|
|
IDEA
|
Allowing both a virtual start and a virtual end depot for a route is something on our enhancement plan. As we make updates to VRP we will be incorporating this change as well.
... View more
04-04-2022
09:23 AM
|
0
|
0
|
1186
|
|
POST
|
The last two error messages are the ones that need to be fixed. "Breaks (RouteName = "Route 1", Precedence = 1) and (RouteName = "Route 1", Precedence = 2) have overlapping time windows. Breaks (RouteName = "Route 2", Precedence = 1) and (RouteName = "Route 2", Precedence = 2) have overlapping time windows." The breaks need to be set up so that the time windows do not overlap. Breaks will start at any point within that time window and so having an overlap would mean both could be started at the exact same time.
... View more
03-02-2022
08:50 AM
|
1
|
1
|
2677
|
|
POST
|
This can be modeled using just a single route for the day and adding in a break for the route. If the break needs to start at exactly noon the you can use the time window fields for the break and indicate both TimeWindowStart and TimeWindowEnd as 12:00 pm and a 1 hour ServiceTime.
... View more
03-02-2022
08:20 AM
|
0
|
1
|
982
|
|
POST
|
Try adding a high value such as 1000 to FixedCost for each route. This would indicate to the solver that there is a cost to starting a new route and should help reduce the number of routes that are started.
... View more
03-02-2022
08:16 AM
|
0
|
1
|
719
|
|
POST
|
I can add this to our list of enhancement requests to consider. A bit of detail about the workflow or situation you are trying to accomplish with this would be helpful. Also, in your particular use case do you typically have multiple orders at the exact same location where that anchored first order might be at the same location as others such for school bus routing where several students start at a school and get dropped of back at their home bus stops. In the mean time you could perhaps use a short time window that starts at the beginning of the route start time to encourage the solver to go to that order first.
... View more
01-28-2022
03:48 PM
|
0
|
0
|
621
|
|
POST
|
Something you might try to get all of the routes to be used in the first solve is to set the MaxOrderCount just over the value of (total known orders)/(Number of vehicles). So in your above example you know you will have 240 stops and 50 drivers which when divided would be 4.8 stops per route. However, since you are using order pairs round that up to 6 and this should activate most if not all of the routes and it gives some flexibility for some routes to use the full 6 orders and others only have 4 to help with the optimization.
... View more
01-26-2022
05:22 PM
|
0
|
0
|
732
|
|
POST
|
Specialties would be the best option for modeling the requirements of this but an alternative that I can think of would be to solve the problem in stages with decreasing door size. So the first solve would be for the largest doors and only the orders that can fit only on those vehicles. Once those assignments are made then then switch there assignment rule to preserve route and add in the next set of vehicles that are a size smaller and the orders that can only fit on those trucks or ones with larger doors. The newly added orders should have an assignment rule of override. This would incrementally lock the orders to routes as you move to smaller sizes.
... View more
01-26-2022
10:56 AM
|
0
|
0
|
754
|
|
POST
|
One thought is you could have different "copies" of the routes with the various combinations of houses and trees to fit the scenarios you described above. The houses would be represented by the MaxOrderCount parameter on the route and the trees by the Capacity parameter. So if you have say 3 trucks available to you for the problem, you could set up three routes with a MaxOrderCount of 5 and Capacity of 10, another three routes with a MaxOrderCount of 4 and Capacity of 11, and three more with a MaxOrderCount of 3 and Capacity of 13. The solver will only use the number of routes needed for the problem so having extra routes shouldn't be a problem and it would allow the solver to decide what mix of MaxOrderCount and Capacity is best for the trucks. Having more then the actual number of trucks does make it possible that more routes will be used in the solution then you have vehicles. If you run into that for a problem you could experiment with the number of each route type that you present to the solver to see if it can find a solution with fewer routes going to more houses each.
... View more
12-20-2021
02:27 PM
|
0
|
0
|
588
|
|
POST
|
That is an interesting question. Off setting the stops slightly might change the OD enough to give a different solution but it is hard to really say why the answer changes so much from just the pictures. I would suggest opening a ticket with support so we can dive into this further.
... View more
11-29-2021
12:40 PM
|
0
|
0
|
781
|
|
POST
|
For order pairs, the first order must happen before the second order. This means that in you example you should never see the Depot1(Pickup)1 before its corresponding Order3(Pickup) since they are paired together with the order being the first of the pair. What you could see is Depot1(Delivery)1 --> Order3(Pickup) --> Depot1(Pickup)1 --> Order1(Delivery). A parameter that might be useful for you to adjust is called Transit Time Importance (found in the Advance section in ArcGIS Pro) or referred to as excess_transit_factor in the REST API. This will influence the allowable additional transit time between the first order and the second order. If you prefer the route go directly from the first order in the pair to the second then set this value to High, or if you want to allow extra time by picking up additional orders before going to the second order in the pair then set this value to Low. When set to Low the main focus is on creating an efficient route so the amount of time between the first and second order in the pair is less important. Medium tries to strike that balance between amount of time on the vehicle and overall efficiency of the route. Some other thoughts on how this could be handled depending on the size and complexity of the problem: 1. Using the specialties for corresponding to the starting depot and the ending depot with the orders having the matching designations. Then create duplicate routes at each starting depot for each of the possible ending depots. When given extra routes then are needed the solver should only pick-out the best needed routes for the solution. 2. Solve the delivery problem and the pickup problem in two different solves. For delivering to orders from a required start depot the routes can have a virtual ending depot. Similarly for picking up at the orders and delivering to a required end depot the routes can have a virtual start depot. Then once both problems are solved you can pair together the routes and then resolve to get an optimized sequencing with preserving the route.
... View more
11-28-2021
12:54 PM
|
0
|
0
|
771
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 05-31-2023 10:55 AM | |
| 1 | 02-23-2023 07:40 AM | |
| 1 | 04-29-2022 09:39 AM | |
| 1 | 03-02-2022 08:50 AM | |
| 1 | 11-04-2021 11:11 AM |
| Online Status |
Offline
|
| Date Last Visited |
Thursday
|