Comment les fournisseurs de cartes (tels que Google ou Yahoo! Maps) suggèrent-ils des itinéraires?
Je veux dire, ils ont probablement des données du monde réel sous une certaine forme, y compris certainement les distances mais aussi peut-être des choses comme les vitesses de conduite, la présence de trottoirs, les horaires des trains, etc. Mais supposons que les données soient dans un format plus simple, disons un très grand graphique dirigé avec des poids d'arête reflétant les distances. Je veux pouvoir calculer rapidement des directions d'un point arbitraire à un autre. Parfois ces points seront rapprochés (au sein d'une même ville) tandis que parfois ils seront éloignés (cross-country).
Les algorithmes graphiques comme l'algorithme de Dijkstra ne fonctionneront pas car le graphique est énorme. Heureusement, des algorithmes heuristiques comme A * fonctionneront probablement. Cependant, nos données sont très structurées, et peut-être qu'une sorte d'approche à plusieurs niveaux pourrait fonctionner? (Par exemple, stockez des directions précalculées entre certains points «clés» très éloignés, ainsi que certaines directions locales. Ensuite, les directions pour deux points éloignés impliqueront des directions locales vers un point clé, des directions globales vers un autre point clé, puis locales directions à nouveau.)
Quels algorithmes sont réellement utilisés dans la pratique?
PS. Cette question était motivée par la recherche de bizarreries dans les directions de cartographie en ligne. Contrairement à l'inégalité du triangle, Google Maps pense parfois que XZ prend plus de temps et est plus loin que l'utilisation d'un point intermédiaire comme dans XYZ . Mais peut-être que leurs directions de marche optimisent également pour un autre paramètre?
PPS. Voici une autre violation de l'inégalité du triangle qui suggère (pour moi) qu'ils utilisent une sorte d'approche à plusieurs niveaux: XZ contre XYZ . Le premier semble utiliser le boulevard de Sébastopol, même s'il est légèrement à l'écart.
Edit : Aucun de ces exemples ne semble plus fonctionner, mais les deux fonctionnaient au moment de la publication d'origine.