Recherche de chemins de carte similaires

9

Je recherche un algorithme qui, lorsqu'il est donné un itinéraire particulier sur une carte avec des attributs tels que l'inclinaison / la distance / la forme / etc., peut trouver un itinéraire similaire (en termes d'attributs) mais qui commence à un point différent ou dans une autre région du globe.

Évidemment, il sera impossible dans presque tous les cas de trouver un ajustement parfait, mais je suis à la recherche d'un système de "meilleure correspondance" avec une méthode de mesure de la similitude ainsi idéalement.

J'ai essayé de chercher, mais la plupart de mes requêtes posent des problèmes de correspondance de carte ou de similitude d'itinéraire pour les points GPS sur le même chemin. Je ne connais peut-être pas la terminologie correcte! Y a-t-il un nom pour ce problème? Quel algorithme puis-je utiliser pour résoudre ce problème?

Chris Foster
la source
1
Les "itinéraires" sont-ils limités à un réseau de lignes (route / chemin / etc)? Comment empêchez-vous l'algorithme de décider que l'itinéraire le plus proche est l'itinéraire source, mais juste un tout petit peu plus court / plus long?
Spacedman
1
"Similaire en termes d'attributs" est logique mais il est si vague qu'il permet un large éventail de solutions possibles. Pourriez-vous être plus précis?
whuber
@Spacedman Oui, les itinéraires sont limités à un réseau routier. L'intention est de prendre un itinéraire routier depuis, disons, la Chine et de trouver un chemin très similaire qui est proche, disons, de ma maison. Je ne suis pas sûr de la meilleure façon de mettre en œuvre cette contrainte.
Chris Foster
@whuber Désolé. Pour clarifier, avoir des pentes similaires (dans des zones similaires de l'itinéraire) et une distance totale similaire sont les plus importants.
Chris Foster

Réponses:

6

La correspondance des cartes est différente de ce que vous recherchez. Le mappage de carte est le moyen approprié de faire correspondre une observation GPS erronée au réseau de rues linéaire. Votre question n'a rien à voir non plus avec les points GPS. Parce que vous voulez comparer le modèle des routes statiques (non temporelles) et trouver les similaires. Ce que vous recherchez est fonction linéaire (au sens du SIG ne c. -à- apprentissage de la machine) correspondant . La littérature relative à la trace GPS est l'appariement de motifs spatio-temporels qui tombe sous la rubrique du "Trajectory (spatial temporal) Pattern Mining".

Pour plus d'informations, consultez le chapitre (Trajectory Pattern Mining) du livre " Computing with spatial trajectory ". Vous aurez beaucoup d'idées sur la façon de comparer et de contraster (c'est-à-dire via l'azimut, la longueur des segments, la sinuosité, la ligne de front, etc.) les différentes routes ou trajectoires.

Farid Cheraghi
la source
4

Votre question est basée sur des données vectorielles. Je pense cependant que vous êtes mieux servi à convertir la question en une analyse matricielle. Ce faisant, vous généraliserez également dans une certaine mesure votre question.

Un algorithme pour résoudre votre question serait le suivant:

  1. Pixellisez l'itinéraire d'origine et faites en sorte que chaque cellule porte des paramètres selon vos spécifications (inclinaison / distance / forme / etc.). La présence d'une route est également un paramètre. Cela devient une liste unidimensionnelle avec n objets -> liste de routage (n)

entrez la description de l'image ici

  1. Trouvez une zone de test où vous savez qu'il existe au moins une réplique de votre itinéraire d'origine. Pixellisez cette zone avec les mêmes paramètres que votre itinéraire d'origine. C'est raster a.

entrez la description de l'image ici

  1. Commencez avec la cellule 1,1 dans le raster a et parcourez le raster entier de manière ordonnée.
  2. Pour chaque cellule, une fonction est appelée. Cette fonction vérifie si la cellule correspond à la liste de routage (0), si c'est le cas, la même vérification est effectuée sur les cellules environnantes. Avec succès, la fonction continue de vérifier la cellule pour la liste de routage (1) et ainsi de suite. En cas de réussite jusqu'à la liste de routage (n), les coordonnées sont stockées en tant qu'itinéraire alternatif dans la liste de routage (n)
  3. Répétez jusqu'à ce que vous atteigniez le dernier pixel du raster.

entrez la description de l'image ici

Ci-dessus, vous verrez trois options pour les itinéraires en fonction des paramètres de la liste de routage.

De plus:

  • Les exemples de rasters ci-dessus sont mesurés selon un seul paramètre. Dans votre défi du monde réel, un pixel sera une combinaison de plusieurs paramètres.
  • Si j'avais cette tâche, j'essaierais d'écrire la fonction mentionnée ci-dessus de manière récursive. Cela serait plus efficace et résoudrait le problème des "pistes divergentes" - où vous avez plusieurs pistes alternatives avec le même point de départ.
  • Les virages de votre itinéraire ne sont pas considérés comme un problème. Cela signifie que les réponses sont une liste de pixels connectés dans le même ordre que votre itinéraire d'origine. Les rebondissements ne sont pas un problème. Vous devrez peut-être écrire l'algorithme pour que les routes auto-intersectées ne fassent pas partie de la solution.
  • Concevez l'algorithme de manière à pouvoir définir différents niveaux de tolérance pour les critères en jeu. Cela vous donnera plus de flexibilité.
  • Dans un cadre opérationnel, l'ensemble du processus peut être rendu plus efficace en filtrant la zone pour l'occurrence de pixels selon vos spécifications. S'ils ne sont pas là, la zone d'enquête est négative, il n'y a donc aucune raison d'utiliser le temps pour analyser la zone.
ragnvald
la source