|
POST
|
Hi Robert, You need to add the date to the default date setting for the layer. This would be done by in the network analyst window clicking on the little button next to the drop down of the layers (alternatively in the Table of Contents right click on the layer and select properties) and going to the analysis tab. Under Default Date switch it to Specific Date and chose the day that matches the time windows. Thanks, Heather
... View more
10-04-2017
10:03 AM
|
0
|
0
|
5130
|
|
POST
|
Hi Robert, The events could be collapsed but then the solver would see them all as needing to be visited by a fire truck at once even if they happened on separate days. I still think to use the VRP solver to model this you will need to do one day at a time for a layer. Our solver is really designed to handle less then 3000 orders at the very top end in a layer. Do you have that many in a particular day? If so you might need to think about natural barriers for breaking the problem by area. If this isn't sounding like it is solving the right problem for you, you might need to consider how to set up location-allocation problem and work with the idea that a particular location will handle the calls within a certain distance/time of the fire house. I'm not an expert on that solver but maybe the maximize capacitated coverage would work for you. I can reach out to someone that works more with that solver if this seems like a better path for you. You can read more at this page. If you scroll down to the problem types section it will describe them for you. Location-allocation analysis—Help | ArcGIS Desktop Thanks, Heather
... View more
10-04-2017
10:00 AM
|
0
|
0
|
5130
|
|
POST
|
Hi Robert, The VRP Solver would work best at a per day modeling. Once you get a set up you are happy with you could get a model builder or python script to make a layer for each day of the year and then look at the aggregates for seeing how the changes you make affect over the long term. 150,000 points is definitely too much for one VRP solve though. Heather
... View more
10-03-2017
10:07 AM
|
0
|
4
|
5130
|
|
POST
|
Hi Robert, For getting started with the VRP solver you can work through the following tutorial. It will help you understand how the pieces fit together. Exercise 7: Servicing a set of orders with a fleet of vehicles—Help | ArcGIS Desktop As for your specifics. Using historical data makes a lot of sense for simulating out a day of 911 responses. You are correct in thinking the fire houses should be modeled as the depots and the calls would be the orders. The vehicles are then modeled as routes. The routes need a starting and ending depot specified so in your case you would create a route for each truck and then separate out the trucks to the fire stations by identifying which depot they start and end their day. Once you get things set up you can start moving the trucks to different fire stations and see how the work gets moved around from one simulation to the next. With the historical data from one day, I think you would need to use the time windows on the orders to signify what time of day that phone call came in and needed to be taken care off. You mention that on a particular day you don't know when the calls will come which is okay in this case because you are wanting to simulate a day that has already occurred and so you want the times to match that particular day. This is probably not the right tool as it is currently designed to help with solving the dispatching problem in a live setting. Besides the time windows that you mentioned another thing you should add in is the service time for the incidents. This would be how long the fire truck was at the location. This will help model how long that vehicle is busy and unable to go to a different location. I'm definitely not in the fire fighting business but some aspects of this problem that I can think of that might make the modeling more difficult are as follows. I believe it is fairly common for the fire truck to go to one incident and then back to the fire house waiting for the next call to come in. To account for the going back to the fire house you can make the fire houses as route renewals also and then specify a capacity of one for the routes and give each order a pickup quantity of one. This would make the fire trucks have to get "re-supplied" between calls and go back to the firehouse to match the way they typically operate. Another concern is if a fire is big enough to need more then one fire truck to respond at a time you would need to model in the number of trucks that were needed as separate orders with the same time window and service time at the same location. In this case each order would have the delivery quantity that would max out a fire trucks capacity and so several routes would go to that location at the same time. A lot to think about but give it a try and let me know how it goes and if you have more questions. Heather
... View more
10-03-2017
08:23 AM
|
1
|
6
|
5130
|
|
POST
|
Can you generate directions and see if it has you going passed the stop and making a U-turn to go back to it? Or generate a route just from location 3 to 1 and see if it has the same geometry that goes passed the location? I have a feeling it has to do with the curb approach and that the answer matches the input instead of starting in the wrong location. Heather
... View more
08-02-2017
04:59 PM
|
0
|
2
|
3228
|
|
POST
|
Hi Leo, I can't tell from just the pictures but it looks as if it might be a result of a curb approach and u-turn policy set up. It could be that the route actually starts at location 1 but when looping back around to that same location the stop is now on the left hand side of the vehicle and so if the curb approach is set to right side and the u-turn policy is set to only at intersections then to get back to that position it would have to go to the next intersection and make a u-turn and then drive back to the location so that it is now on the right hand side. Heather
... View more
08-02-2017
09:21 AM
|
0
|
6
|
3228
|
|
POST
|
Hi David, I see what you are after now. I think your best bet for capturing the amount of time that they are on the bus is to use the ArriveTime from both orders in the order pair. This shouldn't take a lot of effort since you are using python code to automate the process and can just as easily get both orders' information as apposed to just one in the pair with the search cursors. A thing you might want to look into with the order pairs is the layer property Excess Transit Time. You have three options (low, medium, and high) for this and depending on what you choose influences how the solver thinks about the time on the vehicle between stops of the pairs. If your business model is more shared ride van style then the default of Medium is probably good, but if you are wanting to minimize the extra time someone is on the bus then you might consider setting that to High. Heather Moe
... View more
07-21-2017
02:28 PM
|
0
|
0
|
452
|
|
POST
|
Hi David, For the max order count portion of your discussion, it is really about what problem are you trying to solve. If you want to make the solver lean more towards balanced work loads for your buses then the metrics that you described would make sense because they cap each truck's order count sooner. This could lead to longer distances/times for the entire problem though. The option I suggested allows each route to have more stops (off coarse you still need to limit it to the capacity of the buses if it isn't captured in the capacity of the routes). By giving more allowed stops to the routes the solver has more freedom to be able to capture all of the orders in an area with just one bus instead of having to send two into the area. This can create solutions that have shorter overall distances and times but could potentially leave that last required bus with very little work. This is more a business decision at this point of figuring out what works best for your problem and look at the results you get from some test cases and see what makes the most sense. As for the discussion on the passenger's wait time, I'm not sure I fully understand what you are asking. Do the passenger's have time windows in your model? If so you can use the ViolationTime field to see if any of the time windows were not meet. If you aren't running with time windows in the model, there is an output field in the orders fc for the ArriveTime which shows when the route is scheduled to get to each order. You could extract this and compare it to the time you have for each passenger. You ask "Does it make sense to use the default times it allocates or should I determine when orders are put in myself?" I'm not sure what you are asking here. The only thing I can come up with is that you could give orders a time window to get the solver to be at the orders within a certain time frame but I'm not sure if that is what you are trying to ask. Thanks, Heather Moe
... View more
07-21-2017
12:40 PM
|
0
|
2
|
3820
|
|
POST
|
Hi David, The only thought for explaining this is that based on the distances between the orders and the distance too and from the depot that three routes simply requires more travel time because of how the routes have to be separated to get to all of the orders and then back to the depot. Another option for how you determine the max order count could be to do the number of orders / (the number of buses minus one) and then either round down to the nearest whole number or if it comes out to be a whole number subtract one. This would allow the most flexibility of orders per route while still forcing all buses to be used. That said I don't see anything wrong with the options that you have tried and it seems like you have things up and running well so if none of these thoughts help you understand why the solver behavior spiked at that point it could just be that because we use a heuristic that maybe that particular set of parameters just doesn't perform as well as the others. Although we try to make our heuristic work well for as many different scenarios as possible its just not possible to make it perfect for all. Hope this helps, Heather
... View more
07-21-2017
08:46 AM
|
0
|
4
|
3820
|
|
POST
|
The VRP Solver is set up to take lots of extra routes and then only use what is necessary to most efficiently solve the problem. If you are wanting all of the routes to be used you can change whichever max value for the routes that makes sense for limiting them. One that makes sense intuitively without knowing you exact problem is to limit the max order count so that in order to fulfill all of the orders every route needs to be used. So, for example, if you have 50 orders and 5 routes you could say that each route has a max order count of 12 and then it will force the solver to use all 5 routes to service all 50 orders. Another option could be to solve the problem once and see what the total time used for all of the routes and then limit the Max Total Time for a second solve so again all of the routes are needed. So, for example, if for the first solve three out of the five routes were used and for all three routes a total of three hours were needed to service all of the orders then each route could be given a Max Total Time of 40 mins for the next solve and it should force all five of them to be used. A similar approach can be used for distance. The time and distance options would allow for more flexibility in the number of orders each route could go to but it wouldn’t necessarily guarantee all the routes would be used. It would depend on the way the rest of the problem was modeled and the times and distances between orders but should work for a majority of cases. Heather
... View more
07-20-2017
08:46 AM
|
1
|
7
|
3820
|
|
POST
|
Hello Amy, The time windows within the VRP solver (including breaks) indicated within which times the vehicle needs to arrive at the location (or start the break). It does not indicate when it needs to be finished with it. If you have to be completely finished with an order within your time window the best way to model this is to take what the time windows are for you and subtract the service time from the ending and use this shorted time window for the VRP solver, therefore ensuring that the order will be completed by the time window that you have as a business constraint. So to walk through the example you gave. If you have a time window of 8 am to noon in which the order needs to be completely serviced and a 20 minute service time. You would subtract 20 minutes from noon giving you 11:40 am. You would then put into the VRP solver a time window of 8 am to 11:40 am for this order. Let me know if you have more questions on this. Heather
... View more
07-13-2017
08:04 AM
|
1
|
1
|
1120
|
|
POST
|
Hello Artur, You can use revenue to give the trees priority. So for your 2016 trees (High priority) give them a revenue of 10, your 2015 trees (middle priority) a revenue of 5 and your 2014 trees (low priority) a revenue of 1. Try this out and see how the results look for you. Depending on how you have the rest of it modeled you might need to changed things a little so play around with the number some. Priority works best when you have a max of three levels modeled so don't get too carried away with different revenue values. What version of the software are you using? We made some updates in 10.5 to better support this. Thanks, Heather
... View more
06-08-2017
07:52 AM
|
1
|
1
|
2459
|
|
POST
|
Hi Sarah, You have definitely hit on the short coming of any heuristic. It works well for a lot of different cases but isn't guaranteed to always do so. With the VRP solver using a heuristic that is also the case here and unfortunately it sounds like you have hit some of those cases where it is not performing as well as you would like. A suggestion to try to help get more areas where the problem will solve satisfactorily with the VRP solver is to break it into smaller problems. The solver works better with cases under 1500 orders, but that said super high density is always a challenge for the solver since it does not do arc routing (routing to cover every street). Another option you could try to get better results is to pre-process the data so that orders on the same street segment are contracted into a "super" order and the number of real orders that it represents is shown using the pickup or delivery quantity. Heather
... View more
06-01-2017
04:57 PM
|
0
|
0
|
2940
|
|
POST
|
Hi Sarah, You could try route zones for the different salesman. That would keep them within a region. The other option is to use seed points. That tends to give better clustered results without having to predesignate areas for the different salesman.
... View more
05-30-2017
07:11 AM
|
0
|
2
|
2940
|
|
POST
|
Hi Sarah, I'm not sure if this will work for you but you could try using location allocation solver with the maximize capacitated coverage problem type. Load in your locations you are trying to block into 50 order groups as the demand points. Since you know how many demand points you are adding you know how many chunks of 50 you want to make and can make that the Facilities count for the problem with a capacity of 50. The one portion that you wouldn't have naturally is locations for those possible facilities. The location allocation solver will accept more facilities then you are wanting to group too and will pick the best ones though so if you add in double or triple the number of facilities then what you are wanting in groupings (you would have to play with that a little to determine how many would be needed) and have them distributed throughout the region it should help group them into chunks of 50. You could try creating a dense grid of the facility points or possibly scaling the density to the density of the demand points. I did a quick test of this using the sample data you provided and it seemed to work okay for me but takes awhile. One restriction though is the number of facilities to choose is maxed at 100 so you would need to scale the problem to fit that. An idea for that is to start at the corners and section off groupings of 50 since in the sample you are only 5 or 6 over that limit. Or you could split the problem in half along some boundary that makes since like maybe a major highway or river. Out of curiosity, what is your use case that you need to break the VRP problems down to have exactly 50 orders for the solver?
... View more
05-16-2017
05:32 PM
|
0
|
2
|
3307
|
| 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 |
a week ago
|