A* Pathfinding

Download Report

Transcript A* Pathfinding

Intelligence Artificielle
Steve Gury
[email protected]
Agenda






Historique
Réseau de neurones
Algorithmes génétiques
MinMax
Algorithme de recherche de chemin
Machines à états
Historique


Terme inventé par John McCarthy en 1956
Définition: Programmes informatiques qui
résolvent des problèmes qui sont habituellement
résolus par des processus mentaux de haut niveau
Historique



Ne pas confondre avec le domaine de
l’intelligence artificielle forte
Le système est capable de produire un
comportement intelligent, mais aussi
d’éprouver une conscience de soi
SkyNet
Historique

Turing initia le concept en 1950


Article « Computing Machinery and Intelligence »
Test de Turing
Différentes Techniques et
leurs applications

Méthodes complexes



Réseaux de neurones
Algorithmes génétiques
Simplifications + heuristiques



MinMax
PathFinding
Machine à état
Agenda






Historique
Réseau de neurones
Algorithmes génétiques
MinMax
Algorithme de recherche de chemin
Machines à états
Réseau de neurones



Imite le fonctionnement
des neurones du
cerveau
Assemble les
neurones en couche
Différentes fonctions
de seuillage


Linéaires
Non linéaires
Réseaux de neurones


Assemblage en réseaux +/- complexes
Utilisations:


Apprentissage + sollicitation (prise de décision)
Segmentation
Exemple d’application

Attaque conditionnée sur jeu de stratégie





Apprentissage



Nombre d’unités en renfort
Nombre et niveau des opposants
Distance à la base
...
Une fois pour toute
En cours de jeu
Sollicitation en jeu
Agenda






Historique
Réseau de neurones
Algorithmes génétiques
MinMax
Algorithme de recherche de chemin
Machines à états
Algorithme génétique


Inspiré de l’évolution des espèces
Idée: Trouver un optimum général en
modifiant une solution existante à un
problème
Algorithme génétique
Ex: Trouver l’altitude maximale de cette
courbe définie par z = f(x,y)
 Point initial (x0,y0) aléatoire
 Petite variation
 Ajout d’erreur
(évite les extremums locaux)

Algorithme génétique


Problème du temps de convergence
Aucune garantie d’avoir un maximum
Exemple d’application



Simulation de systèmes vivants
Gestion de l’apprentissage par renaissance
Ex:


Creatures 1,2 & 3
Docking Station
Agenda






Historique
Réseau de neurones
Algorithmes génétiques
MinMax
Algorithme de recherche de chemin
Machines à états
MinMax

Idée: Prendre une décision en supposant que
l’adversaire va choisir le choix le plus optimal
pour lui
5
3
12
3
5
10
8
5
2
10
11
2
Application du MinMax

Prise de décision dans des jeux à logique
simple



Jeu de carte simple
Jeu de type « échec »
Optimisation avec l’élagage alpha-béta de
l’arbre de décision (McCarthy)
Agenda






Historique
Réseau de neurones
Algorithmes génétiques
MinMax
Algorithme de recherche de chemin
Machines à états
Pathfinding: A*



Algorithme de recherche de chemin entre
deux noeuds d’un graphe
Algorithme simple et rapide mais ne
garantissant pas l’optimalité de la solution
Algorithme majoritairement utilisé dans les
jeux vidéo
Pathfinding: A*


Exemple: On part du point vert pour aller au
point rouge
On ne peut pas marcher sur les cases bleues
Pathfinding: A*

Pour chaque dalle on considère les cases
adjacentes en éliminant les cases inaccessibles

On attribue une note F à chaque case, F étant la
somme du coût pour aller jusqu’à cette case
(noté G) et de l’estimation du coût restant à
parcourir (noté H)
F=G+H
Pathfinding: A*



Dans cet exemple, on attribue un poid différent
entre un déplacement vertical/horizontal (10) et
un déplacement en diagonal (14 ~sqrt(2))
Les déplacements en diagonal seront permis si
et seulement si les deux cases adjacentes à la
diagonale sont libres
Nous utiliserons la méthode « de Manhattan »
pour estimer fonction H, ie. le nombre de cases
horizontales et verticales pour atteindre la
destination
Pathfinding: A*
Pathfinding: A*
Pathfinding: A*
Pathfinding: A*
Pathfinding: A*
Pathfinding: A*

Cet algorithme nous permet de trouver rapidement un
chemin entre deux points, cependant:
 Le chemin n’est pas forcément optimal
 On peut ne jamais considérer un côté d’une solution
symétrique
Pathfinding: Dijkstra



Algorithme ayant pour but comme A* de
trouver le plus court chemin entre deux points
Dijkstra garantit d’obtenir un résultat optimal
Algorithme polynomial
Pathfinding: Dijkstra
Pathfinding: Dijkstra
Pathfinding: Dijkstra
Pathfinding: Dijkstra

Avantages:


Inconvénients:


Garantit le résultat optimal
Complexité polynomiale
Remarques:

Equivalent à A* avec une méthode d’heuristique
nulle
Pathfinding: Pavages

Les algorithmes de pathfinding fonctionnent
sur des graphes



Soit on génère le pavage au préalable
Soit on le calcul par rapport au décor
Différents types de pavages fixes
Pathfinding: Pavages
Pathfinding: Pavages

La fluidité apparente des solutions de
pathfinding dépendra beaucoup du type de
pavage
Pathfinding: Pavages

Dans les jeux modernes, on utilise un « nav
mesh », ou maillage de navigation à but
unique de pathfinding
Pathfinding: Pavages


La définition des nav-mesh se fait à la main
En général on ne définit que les « way point »
et on calculera le nav-mesh en conséquence
Agenda






Historique
Réseau de neurones
Algorithmes génétiques
MinMax
Algorithme de recherche de chemin
Machines à états
Machines à états


Même dans les jeux modernes, l’intelligence
artificielle se résume souvent à une suite de
comportements préalablement scriptés
Les agents artificiellement intelligents du jeu
mutent d’un état à un autre selon certaines
conditions pré-établies
Machines à états

Ex: Scripting d’un garde dans un jeu d’action
Attaquer
Patrouiller
passivement
Patrouiller
activement
Se
protéger