Chinese Postman Problem Solver

I have updated OSM data by setting a name on the small road parts around the roundabout.
OSM_Corrected

Now the topology should be better and results to a better generated route (i.e. smaller)
Note that if you plan to use an algorithm like the CPP Solver the efficiency of the results (i.e. the lengh of the generated route compared to the length of the streets) will rely on a very good topology and a good acquisition on crossing data. I had a quick look at the python code, although I am not a programmer i saw it uses a networkx package function to calculate things like “maxcardinality” of nodes" so a higher cardinality should maybe results to more efficient routes.

Also to avoid long calculation time , a good Idea would be to have a strong selection of the streets limited to a certain distance. : the user could point a starting mark and an approximative run distance, then a first pass could select a set of streets in the area : uncovered streets could have a better weight, also choosing nodes could result in a better execution of the solver and a minimum of distance overhead.
My tests convinced me that maybe a solver may need more highways than your standard overpass streets query and a slightly different query with more highways types like “footways” or “pathways” that can provide the necessary links or path to have an efficient route.
Without those links, you would be missing nodes and therefore “cardinality” resulting in larger distance :missing_links
(in example above, the railway would be difficult to cross without exluded “highways” and generate longer running routes.

1 Like