5. A*
A* ajoute au meilleur d’abord le coût réellement parcouru. Il classe les états selon :
f(n) = g(n) + h(n)
g(n): coût réel du meilleur chemin connu de l’état initial àn;h(n): estimation du coût restant denvers le but;f(n): estimation du coût total d’une solution passant parn.
5.1 Procédure
- Placer l’état initial dans
OUVERTSavec sa valeurfet son parent. - Choisir dans
OUVERTSl’état de plus petite valeurf. - Le retirer de
OUVERTSet le placer dansFERMÉS. - S’il s’agit du but, reconstruire la solution à partir des parents.
- Sinon, générer ses enfants :
- ignorer un enfant déjà fermé selon la procédure du cours;
- s’il n’est pas ouvert, l’ajouter avec
g,h,fet son parent; - s’il est déjà ouvert avec une valeur moins bonne, remplacer cette entrée par le meilleur chemin.
- Répéter; si
OUVERTSdevient vide, aucun but accessible n’existe.
5.2 Admissibilité et optimalité
Une heuristique est admissible si elle ne surestime jamais le vrai coût restant. La distance à vol d’oiseau constitue un exemple classique lorsqu’un trajet réel doit au moins couvrir cette distance. Avec une telle heuristique et les conditions usuelles de l’algorithme, A* fournit une solution optimale; plusieurs solutions de même coût peuvent exister.
5.3 Exemple des villes
Dans le diaporama, la trace de développement est :
v0, v1, v2, v3, v4, v6
Le chemin le plus court reconstruit à partir des parents est toutefois :
v0 → v3 → v4 → v6
La vidéo corrige oralement une valeur affichée : l’arrivée en v6 vaut 14, et non 7.
5.4 Variante pondérée
Le cours présente :
f(n) = (1-w)g(n) + wh(n), avec 0 ≤ w ≤ 1.
w=0: Dijkstra, priorité au coût déjà parcouru;w=1: meilleur d’abord, priorité à l’estimation restante;w=0,5: pondération équilibrée correspondant au même ordre de priorité queg+h, puisque le facteur0,5multiplie uniformément la somme.
Arcs orientés et coûts : S→A(3),S→B(1),B→A(1),A→G(3). h(S)=5,h(A)=0,h(B)=4,h(G)=0; distances exactes 5,3,4,0. A* retire A avant B. Depuis B, A pourrait passer de g=3 à g=2. Sans réouverture : G=6; avec réouverture : G=5. L’incohérence est h(B)=4>1+h(A)=1.
Source : Schéma original du portail, données autonomes; consolidation du 16 octobre 2026. · Maître S04 : 5.2 Admissibilité et optimalité
v0→v3(2), v0→v2(4), v0→v1(3), v3→v2(1), v3→v4(1), v2→v4(3), v1→v5(7), v4→v6(4), v5→v6(4). h(v0..v6)=(9,2,2,5,2,3,0). Toutes les flèches sont dirigées. Chemin optimal v0→v3→v4→v6, coût 7; h(v0)=9 surestime ce coût. Les nombres portés par les arcs sont les coûts, les h figurent dans les boîtes.
Source : Recherche_Heuristique.pdf p.22 : arcs, poids, h et tableau vérifiés visuellement; recalcul indépendant du portail le 16 octobre 2026. · 5.3 Exemple des villes