Principes Mathématiques de l’Algorithme A*
Explication Concise
1. La Formule d’Évaluation Clé
L’algorithme A* évalue chaque nœud (case) n à l’aide de la fonction :
f (n) = g(n) + h(n)
• g(n) – Coût Réel : Coût exact connu depuis le nœud Start jusqu’au nœud n.
• h(n) – Heuristique : Coût estimé (supposé) depuis le nœud n jusqu’au nœud Goal.
• f (n) – Score Total : Estimation du coût total du chemin passant par n.
2. Calcul de l’Heuristique h(n)
Soit ∆x = |nx − goalx | et ∆y = |ny − goaly |.
Manhattan (Mouvements 4 directions)
Utilisé quand les diagonales ne sont pas permises.
h(n) = ∆x + ∆y
Euclidienne (Mouvements 8 directions)
La distance ”à vol d’oiseau”. p
h(n) = (∆x)2 + (∆y)2
Diagonale / Octile (Mouvements 8 directions)
√
Très précise si les coûts sont 1 (droit) et
2 (diagonale).
√
h(n) = max(∆x, ∆y) + ( 2 − 1) × min(∆x, ∆y)
3. Le Processus de Choix (Priorité, pas Probabilité)
A* n’utilise ni probabilité ni combinatoire. C’est un algorithme déterministe (il refera toujours
le même choix dans la même situation) basé sur la priorité.
Il utilise deux listes :
• Open Set (O): Une file de priorité (min-heap). Contient tous les nœuds découverts mais
pas encore visités.
• Closed Set (C): Un ensemble. Contient tous les nœuds déjà visités.
1
La Règle de Choix
À chaque étape, l’algorithme choisit le nœud nactuel qui est dans l’Open Set O et qui a le plus
petit score f (n).
nactuel = arg min(f (n))
n∈O
C’est ainsi qu’il choisit le ”meilleur” chemin à explorer : celui qui semble être le plus court.
4. La Mise à Jour (Relaxation)
Une fois nactuel choisi, il est déplacé de O vers C. L’algorithme regarde alors ses voisins m.
Pour chaque voisin m de nactuel (qui n’est pas un mur ou dans C) :
1. Calculer le coût pour atteindre m en passant par n:
gtentatif = g(nactuel ) + coût(nactuel , m)
√
(coût vaut 1 ou 2)
2. Vérifier si ce nouveau chemin est meilleur :
SI gtentatif < g(m) (ou si m est nouveau)
3. Si oui, mettre à jour m :
• parent(m) ← nactuel
• g(m) ← gtentatif
• f (m) ← g(m) + h(m)
• Ajouter m à l’Open Set O (pour qu’il soit considéré lors d’un futur choix).