osmandapp / OsmAnd

OsmAnd
https://osmand.net
Other
4.67k stars 1.02k forks source link

Feature request: 'Travelling Salesman' touring routing #20604

Open mikehgentry opened 2 months ago

mikehgentry commented 2 months ago

Describe the idea

Now that the routing engine is getting faster, it'd be nice to have a 'Travelling Salesman' routing mode, which optimises for the lowest cost route between a given set of points.

I'm well aware that this can become horrendously computationally expensive, but I could still see it being useful for a small number of points over relatively short distances (say, walking around an unfamiliar city to various tourist destinations), maybe with a warning popup that you should plug your device in and not expect any miracles when you start it running.

Expected behaviour

Give OsmAnd a series of destinations. It calculates routes between them in all orders, then gives you the lowest cost route. It'd be a very strong bonus if you could force a given point to occupy a position on the list, for example saying "I want to visit points A B C D and E, I want to stop for lunch at F half way through, and finish at G - what's the best route?"

Alternatives you've considered

n/a

Context

Edit: In the classic Travelling Salesman problem you can only visit each node once.

https://en.wikipedia.org/wiki/Travelling_salesman_problem

I don't really see that as a requirement, but perhaps an optional check box (or slider or something) to penalise retracing your steps would be good.

pebogufi commented 2 months ago

Open navigation options | intermediate destinations | sort Try "door to door"

mikehgentry commented 2 months ago

Thanks, that is pretty useful (and I hadn't found it!)

As far as I can tell that's sorting via straight line distances, rather than route cost, so it isn't exactly the same as the request. But it's half way there!