Sommaire des algorithmes de recherche de chemins coopérative Équipe Pathfinder Michael Brunelle Marc Michaud Dominique Ruest Département dinformatique Université de Sherbrooke
Hypothèses Domaine discret :Domaine discret : –La carte est donnée sous forme de grille divisées en cellules pouvant être libre ou occupée. –Les agents occupent une seule cellule à la fois (un agent ne peut pas être entre deux cellule). –Les déplacements sont instantanés, c.-à-d. que la vitesse de tous les agents est dexactement une case par unité de temps. Actions permises :Actions permises : –Déplacement dans 4 (ou 8?) directions –Rester immobile (Wait)
Plan LRA*(…LRA*(… CA* (Coopetive A*)CA* (Coopetive A*) HCA* ( Hierarchical …HCA* ( Hierarchical … WHCA*(...WHCA*(... FAR( …FAR( …
Local Repair A* (LRA*) Nest pas coopératifNest pas coopératif A* a été conçu à la base pour fonctionner avec un seul agentA* a été conçu à la base pour fonctionner avec un seul agent LRA* recalcule au complet le chemin lorsquune collision est imminenteLRA* recalcule au complet le chemin lorsquune collision est imminente Inefficace lors de situations difficilesInefficace lors de situations difficiles –Grand nombre dagents –Carte avec circulation restreinte Malgré tous ses défauts, il est lalgorithme le plus utilisé dans les jeuxMalgré tous ses défauts, il est lalgorithme le plus utilisé dans les jeux
Cooperative A* (CA*) Une recherche par agentUne recherche par agent Un agent peut rester sur place pendant un tour (wait move)Un agent peut rester sur place pendant un tour (wait move) La distance de Manhattan peut être utilisée comme heuristique même sil est recommandé dutiliser une autre méthode.La distance de Manhattan peut être utilisée comme heuristique même sil est recommandé dutiliser une autre méthode.
Cooperative A* (CA*) Utilise les coordonnées de lespace-temps (x,y,t) qui sont enregistrés dans une table de réservationUtilise les coordonnées de lespace-temps (x,y,t) qui sont enregistrés dans une table de réservation
Cooperative A* (CA*) Certains problèmes ne peuvent être résolus par CA*.Certains problèmes ne peuvent être résolus par CA*.
Hierarchical Cooperative A* (HCA*) Amélioration de CA* en utilisant une meilleure heuristique : Reverse Resumable A* (RRA*)Amélioration de CA* en utilisant une meilleure heuristique : Reverse Resumable A* (RRA*) –RRA est une recherche A* modifiée pour partir du but vers le point de départ de lagent –Utilise la distance de Manhattan comme heuristique Abstraction en utilisant seulement deux dimensions (x,y) en ignorant les autres agentsAbstraction en utilisant seulement deux dimensions (x,y) en ignorant les autres agents
Windowed Hierarchical Cooperative A* (WHCA*) Amélioration de HCA* en utilisant une fenêtre pour vérifier les interactions avec les autres agents.Amélioration de HCA* en utilisant une fenêtre pour vérifier les interactions avec les autres agents. –Calculs répartis tout au long des mouvements –Coopératif seulement dans la fenêtre Comme HCA*, WHCA* utilise RRA* comme heuristique.Comme HCA*, WHCA* utilise RRA* comme heuristique. Priorité dynamique, chaque agent va avoir une priorité plus haute pour une courte période de temps.Priorité dynamique, chaque agent va avoir une priorité plus haute pour une courte période de temps. Un agent rendu à sa destination continue de calculer des chemins dans sa fenêtre pour les cas où il faudrait quil se déplace pour quun autre agent arrive à destination.Un agent rendu à sa destination continue de calculer des chemins dans sa fenêtre pour les cas où il faudrait quil se déplace pour quun autre agent arrive à destination.
Flow Annotation Replanning (FAR) Abstraction en utilisant des restrictions sur les directions que peuvent prendre les agentsAbstraction en utilisant des restrictions sur les directions que peuvent prendre les agents –Une ligne et une colonne complète ont la même direction Réduction du facteur de branchementRéduction du facteur de branchement Réduction du risque de collision entre les agentsRéduction du risque de collision entre les agents –Alternance entre les directions à chaque ligne/colonne Réparation locale au lieu dune replanification complète lors dune collisionRéparation locale au lieu dune replanification complète lors dune collision Utilisation dA* sur le graphe annotéUtilisation dA* sur le graphe annoté Faible demande de temps CPU et de mémoireFaible demande de temps CPU et de mémoire Utilise les déplacements en diagonale seulement lorsque cest nécessaireUtilise les déplacements en diagonale seulement lorsque cest nécessaire Minimise le plus possible les changements de direction afin de réduire le risque de collisionsMinimise le plus possible les changements de direction afin de réduire le risque de collisions Pour un fenêtrage de k, il faut que lagent puisse réserver ses k cases davance avant de pouvoir bouger, sauf sil lui en faut moins pour arriver à destination.Pour un fenêtrage de k, il faut que lagent puisse réserver ses k cases davance avant de pouvoir bouger, sauf sil lui en faut moins pour arriver à destination.
Flow Annotation Replanning (FAR) ConnectivitéConnectivité –Certaines arrêtes du graphe sont bidirectionnelles pour éviter dêtre confiné dans une case sans sorties
Flow Annotation Replanning (FAR) Étreinte fatale (deadlock)Étreinte fatale (deadlock) –Heuristique de densité des nœuds. –Déplacement dun agent du nœud critique