Quels sont les algorithmes de pointe pour la recherche de chemin sur une carte continue de la Terre?

14

Supposons que j'ai un vaisseau de surface autonome à énergie solaire quelque part dans les fjords de Norvège, fourni avec un ensemble de cartes assez récent, un récepteur GPS et aucun moyen de rétrograder des commandes détaillées de ma part. Ce navire doit atteindre, disons, l'île de Hainan le plus tôt possible.

  • Quels sont les algorithmes déterministes pour trouver une route maritime sur un globe?
  • Quelle est leur complexité en temps et en mémoire?

  • Puis-je, par exemple, utiliser A * après avoir transformé la carte du globe en un diagramme avec des polygones connectés (c'est-à-dire une triangulation de Delaunay sur une sphère / ellipsoïde) et quelles sont les autres approches possibles?

Les réponses devraient idéalement fournir des références à des articles avec discussion des questions susmentionnées.

Comme l'a souligné Rob Lang , les algorithmes doivent répondre aux critères habituels: en l'absence de contraintes de temps, conduire au chemin le plus court entre deux points sur les océans et les mers de la Terre, ou indiquer un échec de recherche de chemin sinon.

Il y a des sous-sujets intéressants ici (échange de temps de pré-calcul / stockage pour les calculs en ligne, fournissant des itinéraires légèrement sous-optimaux avant qu'une date limite ne se déclenche, etc.), mais ceux-ci sont accessoires au problème principal.

Chasseur de cerf
la source
1
@JDong - la navigation terrestre suit généralement les routes / routes, donc A * vient naturellement. Un graphique pré-construit est ce que j'utiliserais.
Deer Hunter
1
Ah, j'ai raté la partie critique de votre question: «continue». Dans ce cas, des champs vectoriels ou potentiels pourraient être prometteurs.
JDong
1
@RobLang - question modifiée.
Deer Hunter
1
Pour une route maritime, vous devrez prendre en compte le niveau de la mer, le vent et le débit d'eau. De quel type de navire parlons-nous? OpenSeaMap fournit quelques voies d'expédition. Si vous pouviez les utiliser, A * fonctionnerait. Je pense également que cette question est trop large pour cette version bêta.
PiTheNumber
1
Je pense que cette question est correcte si elle demande simplement les meilleurs algorithmes de recherche dynamique de chemin pour les espaces continus d'aujourd'hui. Je pourrais essayer de répondre à cette question plus tard dans la journée après quelques recherches.
JDong

Réponses:

7

L'exigence déterministe n'est pas si contraignante. Cela signifie simplement que votre véhicule est certain de l'état dans lequel il se trouve. Cela étant dit, vous voudrez probablement planifier des chemins d'une manière qui vous permette d'éviter les obstacles. La meilleure façon de voir cela se fait avec des planificateurs basés sur l'échantillonnage. Steven LaValle a écrit la ressource académique centrale sur ce sujet: Planning Algorithms .

L'algorithme RRT * fait partie des planificateurs qu'il décrit. Cet algorithme génère l'arbre de l'espace d'état avec des échantillons aléatoires et quelques heuristiques pour garantir la faisabilité (par exemple l'évitement d'obstacles) et l'optimalité. Les détails sur RRT * peuvent être trouvés dans le livre de LaValle, ou sur le site Web de Sertac Karaman . Le temps asymptotique et les caractéristiques de la mémoire sont décrits comme O (nlogn) à traiter et O (n) pour les requêtes. L'algorithme est linéaire, O (n), dans la complexité de l'espace aussi.

jdmartin86
la source
A voté pour les réf. Envisagera d'accepter en lisant le livre de LaValle et en vérifiant les trucs RRT *. Merci!
Deer Hunter
4

Pour votre examen ultérieur, les champs potentiels sont un choix intéressant et peu coûteux pour la recherche de chemins. Vous mettriez une forte charge à destination, et finalement l'agent arriverait à la charge. Un article plus technique de la Fondation internationale pour les agents autonomes et les systèmes multi-agents fournit plus d'informations.

Les champs vectoriels sont également une solution très bon marché, mais plus souvent utilisée pour la recherche de chemins multi-agents . Les champs vectoriels sont cependant très bons pour les zones ouvertes. Aucune des méthodes ci-dessus ne garantit cependant le chemin le plus court, sacrifiant le cheminement optimal pour une meilleure réponse dynamique.

Les approches combinées sont également efficaces, comme l'utilisation préalable de A * pour générer des points de cheminement et l'utilisation de champs vectoriels pour accéder à chaque point de cheminement. Cela donnera probablement un comportement beaucoup plus optimal à l'échelle macro.

Gardez cela à l'esprit au cas où vous acquérez une armée de robots de natation.

JDong
la source