Comment faire une carte de fournisseurs (tels que Google ou Yahoo! Des cartes), de proposer des orientations?
Je veux dire, ils ont probablement des données du monde réel dans une certaine forme, certainement, y compris des distances, mais aussi peut-être des choses comme la vitesse de conduite, la présence de trottoirs, les horaires de train, etc. Mais supposons que les données sont dans un format plus simple, dire un très grand graphe orienté avec le bord de pondérations reflétant les distances. Je veux être en mesure de calculer les directions à partir d'un point arbitraire à un autre. Parfois, ces points seront proches (dans une ville), tandis que parfois, ils seront éloignés (cross-country).
Algorithmes de graphes comme l'algorithme de Dijkstra ne fonctionnera pas car le graphique est énorme. Heureusement, des algorithmes heuristiques comme Un* fonctionnera probablement. Cependant, nos données sont très structurés, et peut-être un certain genre d'approche pourrait fonctionner? (Par exemple, de stocker précalculées directions entre certaines "clés" des points éloignés, ainsi que certaines directions locales. Ensuite, les directions de deux loin des points d'impliquer les directions à l'un des points clés, des orientations globales à un autre point clé, puis directions locales de nouveau.)
Quels algorithmes sont effectivement utilisés dans la pratique?
PS. Cette question a été motivée par la constatation bizarreries dans la cartographie en ligne les directions. Contrairement au triangle inégalités, parfois Google Maps pense que X-Z prend plus de temps et est plus loin que l'utilisation d'un point intermédiaire comme dans X-Y-Z. Mais peut-être que leurs trajets à pied pour optimiser un autre paramètre, trop?
PPS. Voici une autre violation du triangle de l'inégalité qui suggère (pour moi) qu'ils utilisent un certain type d'approche à plusieurs niveaux: X-Z par rapport à X-Y-Z. Le premier semble utiliser éminent Boulevard de Sébastopol, même si c'est légèrement hors de la voie.
Edit: aucun de ces exemples semblent fonctionner, mais les deux ont fait à l'époque de l'original post.