26
Algorithme A* Par: Sari Meriem 1 UNIVERSITE MOHAMED CHERIF MESAADIA SOUK-AHRAS Exposé sur:

A star

Embed Size (px)

Citation preview

Page 1: A star

1

Algorithme A*

Par: Sari Meriem

UNIVERSITE MOHAMED CHERIF MESAADIASOUK-AHRAS

Exposé sur:

Page 2: A star

Plan

2

Introduction. Algorithme A star. Objectif. Applications. Description. Algorithme. Exemple. Implémentation du TP. Conclusion.

Sari Meriem Algorithme A* 1ére Année Master GL

Page 3: A star

Introduction

3

Le « PATHFINDING » est un domaine de l'informatique qui étudie les différentes façons de trouver un chemin entre un point A et un point B.

L'un des algorithmes de pathfinding les plus connus est A* ( prononcez A étoile, ou A star en anglais).

Sari Meriem Algorithme A* 1ére Année Master GL

Page 4: A star

Introduction

4

?C’est quoi le A *?

Sari Meriem Algorithme A* 1ére Année Master GL

Page 5: A star

A star

5

A été proposé pour la première fois par Peter E. Hart, Nils Nilsson et Bertram Raphael en 1968.

Est une extension de l'algorithme de Dijkstra de 1959.

Est un algorithme itératif.

Permet la recherche d’un chemin à partir d’un état Initial (source) vers un état final (destination).

Il ne donne pas toujours la solution optimale mais il donne très rapidement une bonne solution.

Sari Meriem Algorithme A* 1ére Année Master GL

Page 6: A star

Objectif

6

Déterminer, pour un agent donné, un chemin de coût minimum depuis un sommet source vers un sommet destination au sein d’un graphe.

Un agent est un objet informatique utilisé pour représenter une entité mobile dotée d’un comportement (humain, animal, véhicule, …)

Sari Meriem Algorithme A* 1ére Année Master GL

Page 7: A star

Objectif

7

Le coût d’un arc dépend de l’application de l’algorithme.

Exemple:

Distance kilométrique: Recherche de chemins de longueur minimale.

Temps: Recherche de chemins en temps minimum.

Consommation de carburant: Rechercher de chemins « économes ».

Sari Meriem Algorithme A* 1ére Année Master GL

Page 8: A star

Applications

8

Jeux vidéo: Animation des personnages non joueurs. Déplacement réaliste d’un personnage contrôlé par le joueur

vers un objectif désigné par le joueur.

Simulation – vie artificielle: Etude du comportement d’une foule, du trafic automobile, … Effets spéciaux (scènes de bataille, …)

Sari Meriem Algorithme A* 1ére Année Master GL

Page 9: A star

Description

9

Vocabulaires nécessaire à savoir:

Le graphe: ensemble des nœuds et des arcs.

Un nœud: c'est une unité du graphe, l'algorithme va parcourir le graphe en passant des nœuds.

La liste ouverte: C'est une liste qui contient les nœuds à analyser.

La liste fermée: C'est une liste qui contient les nœuds déjà analysés.

Sari Meriem Algorithme A* 1ére Année Master GL

Page 10: A star

Description

10

Pour chaque nœuds on a les propriétés suivante:

Parent (P): il s'agit du prédécesseur du nœud courant.

G: il s'agit de la distance parcourue depuis le point de départ pour arriver au nœud courant (Coût depuis la source).

H: il s'agit de la distance à vol d'oiseau entre le nœud courant et le nœud d'arrivée (Coût vers la destination).

Poids(F): Coût depuis la source (G) + Coût vers la destination (H) .

Sari Meriem Algorithme A* 1ére Année Master GL

Page 11: A star

Algorithme

11

InitialisationSommet source (S)Sommet destination (D)Liste ouverte à explorer (E) : sommet source SListe fermée déjà visités (V) : vide

Tant que (la liste E est non vide) et (D n’est pas dans E) Faire+ Récupérer le sommet X de coût F minimum.+ Ajouter X à la liste V+ Ajouter les successeurs de X (non déjà visités) à la liste E en

évaluant leur coût F et en identifiant leur prédécesseur.

+ Si (un successeur est déjà présent dans E) et (nouveau coût est inférieur à l’ancien) Alors

Changer son coût FChanger son prédécesseur

FinSiFinFaire

Sari Meriem Algorithme A* 1ére Année Master GL

Page 12: A star

Algorithme

12

L’algorithme s’ arrêtera dans deux cas:

I. Si la liste des nœuds à visiter (ouverte) est vide et le nœud destinations n’appartient pas à la liste des nœuds déjà visité (fermée) dans ce cas il n’y a pas de chemin entre la source et la destination.

II. Si le nœud destination appartient à la liste des nœuds déjà visité (fermée) dans ce cas l’algorithme a trouvé un chemin entre la source et la destination.

Sari Meriem Algorithme A* 1ére Année Master GL

Page 13: A star

Exemple

13

S

D

S

D

Sommet source

Sommet destination

Obstacle

Sari Meriem Algorithme A* 1ére Année Master GL

Page 14: A star

Exemple

14

S

D10 + 30

10 + 50

10 + 50

Sommet déjà visité

Sommet à explorer

G + H

Coût depuisla source

Coût versla destination

Référence auprédécesseur

Sari Meriem Algorithme A* 1ére Année Master GL

Page 15: A star

Exemple

15

S

D10 + 30

10 + 50

10 + 50

20 + 40

20 + 40 Sommet déjà visité

Sommet à explorer

G + H

Coût depuisla source

Coût versla destination

Référence auprédécesseur

Sari Meriem Algorithme A* 1ére Année Master GL

Page 16: A star

Exemple

16

S

D10 + 30

10 + 50

10 + 50

20 + 40

20 + 40

20 + 60

Sommet déjà visité

Sommet à explorer

G + H

Coût depuisla source

Coût versla destination

Référence auprédécesseur

Sari Meriem Algorithme A* 1ére Année Master GL

Page 17: A star

Exemple

17

S

D10 + 30

10 + 50

10 + 50

20 + 40

20 + 40

20 + 60

20 + 60

Sommet déjà visité

Sommet à explorer

G + H

Coût depuisla source

Coût versla destination

Référence auprédécesseur

Sari Meriem Algorithme A* 1ére Année Master GL

Page 18: A star

Exemple

18

S

D10 + 30

10 + 50

20 + 40

20 + 40

20 + 60

30 + 50 Sommet déjà visité

Sommet à explorer

G + H

Coût depuisla source

Coût versla destination

Référence auprédécesseur

Sari Meriem Algorithme A* 1ére Année Master GL

Page 19: A star

Exemple

19

S

D10 + 30

10 + 50

10 + 50

20 + 40

20 + 40

20 + 60

20 + 60

30 + 50 30 + 30 Sommet déjà visité

Sommet à explorer

G + H

Coût depuisla source

Coût versla destination

Référence auprédécesseur

Sari Meriem Algorithme A* 1ére Année Master GL

Page 20: A star

Exemple

20

S

D10 + 30

10 + 50

10 + 50

20 + 40

20 + 40

20 + 60

20 + 60

30 + 50 30 + 30 40 + 20 Sommet déjà visité

Sommet à explorer

G + H

Coût depuisla source

Coût versla destination

Référence auprédécesseur

Sari Meriem Algorithme A* 1ére Année Master GL

Page 21: A star

Exemple

21

S

D10 + 30

10 + 50

20 + 40

20 + 60

30 + 30 40 + 20 50 + 10

50 + 10

Sommet déjà visité

Sommet à explorer

G + H

Coût depuisla source

Coût versla destination

Référence auprédécesseur

Sari Meriem Algorithme A* 1ére Année Master GL

Page 22: A star

Exemple

22

S

10 + 30

10 + 50

20 + 40

20 + 40

20 + 60

30 + 50 30 + 30 40 + 20 50 + 10

50 + 10

60 + 20

60 + 0

Sommet déjà visité

Sommet à explorer

G + H

Coût depuisla source

Coût versla destination

Référence auprédécesseur

Sari Meriem Algorithme A* 1ére Année Master GL

Page 23: A star

Exemple

23

S

D

Sari Meriem Algorithme A* 1ére Année Master GL

Page 24: A star

Implémentation du TP

24

L'implémentation proposée se base sur 4 classes :

Astar: une classe fournissant l'algorithme de calcul. Node: une classe représentant un noeud du parcours . NodeFactory: une classe abstraite permettant de créer les noeuds, dans laquelle il faut implémenter les méthodes de calcul de G et H. SuccessorComputer: une classe abstraite fournissant les successeurs d'un point particulier. MainTest: une classe fournissant un cas de test concret sur une chaine de caractères ou " " représente un chemin exploitable et " | " représente un chemin interdit.

Sari Meriem Algorithme A* 1ére Année Master GL

Page 25: A star

Implémentation du TP

25Sari Meriem Algorithme A* 1ére Année Master GL

Page 26: A star

Conclusion

26

L’algorithme A* ne donne pas toujours la meilleure solution mais il en donne une bonne solution.

On pourrait comparer ses performances avec celles de l'algorithme de Dijkstra.

Dijkstra donne la meilleure solution, mais A* est plus rapide.

Sari Meriem Algorithme A* 1ére Année Master GL