Skip to main content

What is the best way to calculate the most efficient way for a garbage truck to travel on a road network in such a way that it covers both sides of the road. So it needs to travel each road in both directions and cul-de-sacs just once (around). Is there an example of someone having done this? The standard way calculates from point a to b but doesn't take into account street sides.

Thanks

I doubt that FME's NetworkCostCalculator transformer will be help you with this complex problem. The methodology will depend on what you want to optimize - fuel consumption, shortest route, most pick-up within a given time, etc. Also, what constraints there might be with dump locations, driver times, etc. It's really a linear Programming (LP) analysis, or perhaps a graphing problem. There are quite a few good references if you search for "route optimization for solid waste collection" or something similar. FME does include the RCaller transformer and there are several R packages for solving optimization and LP problems related to the travelling salesman problem - so those might be worth investigation.


You might like to try the ArcGISOnlineRouter transformer using house location points as stops, but you would be limited to 150 stops per route, which isn't many but might be what a truck can handle before being filled. If you can tackle the coding the asynchronous service handles 10,000 stops at a time. This all requires ArcGIS Online service credits.


I'm just going to post this quickly here - our chief scientist at Safe came up with this solution. I haven't tried it myself - in fact I've barely looked to see how it works - but I wanted to get it online to you asap. Assuming it works as expected, it will probably get a knowledge base article or blog post by itself in the near future.

garbagerouter.fmw

nb: I think he created it in the latest FME2017 beta, meaning you'll get a warning if you open it in anything older. If you need to, you could install the beta and open it there just to see how it works and then copy/recreate it in 2016


I'm just going to post this quickly here - our chief scientist at Safe came up with this solution. I haven't tried it myself - in fact I've barely looked to see how it works - but I wanted to get it online to you asap. Assuming it works as expected, it will probably get a knowledge base article or blog post by itself in the near future.

garbagerouter.fmw

nb: I think he created it in the latest FME2017 beta, meaning you'll get a warning if you open it in anything older. If you need to, you could install the beta and open it there just to see how it works and then copy/recreate it in 2016

Oh, he said...

 

A quick-and-dirty example of how you could do it using the ShortestPathFinder. I had to duplicate the network, in the reverse direction, to force it to go both ways. Notice that if you change the input data, you will need to change the ShortestPathFinder parameters so that it has settings that more suit your case around how hard to try, how long to take, and when to stop at a "good enough" solution

 


Thank you for your suggestions. The garbagerouter.fmw looks really promising. I will test with a larger sample today. Thanks so much!


Hello @magdakosior​ and @mark2atsafe​ did you ever solve this with FME? The workbench mentioned above is not available to download but would be great to have a look at what was done to avoid reinventing the wheel :)


Hello @magdakosior​ and @mark2atsafe​ did you ever solve this with FME? The workbench mentioned above is not available to download but would be great to have a look at what was done to avoid reinventing the wheel :)

Hi @deanhowell​ the workspace is now available above on Mark's reply 🙂


Hi @deanhowell​ the workspace is now available above on Mark's reply 🙂

Thanks @daraghatsafe​ very much appreciated :)


Reply