Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
"La recherche informée exploite une connaissance du problème — une **heuristique** $h(n)$ qui estime le coût restant vers le but — pour guider l'exploration vers les régions prometteuses de l'espace. Ce notebook montre, en C#, comment chaque algorithme combine différemment le coût déjà accumulé $g(n)$ et l'estimation $h(n)$ :\n",
"\n",
"- **Greedy Best-First** : fonce vers le but en minimisant $h(n)$ seul — rapide mais **sous-optimal**.\n",
"- **A\\*** : équilibre $f(n) = g(n) + h(n)$ — **optimal** si $h$ est admissible.\n",
"- **A\\*** : équilibre $f(n) = g(n) + h(n)$ — **optimal** si $h$ est consistante (la variante Graph-Search implémentée ici ne ré-ouvre pas les états fermés ; contre-exemple à quatre nœuds : jumeau Python §6).\n",
"- **IDA\\*** : A* à approfondissement itéré par borne sur $f$ — optimal et **borné en mémoire** $O(bd)$.\n",
"\n",
"### Objectifs d'apprentissage\n",
Expand Down Expand Up @@ -846,7 +846,7 @@
"| Optimalité | **Oui** | si $h$ **consistante** (et Graph-Search, pas de re-open) |\n",
"| Mémoire | $O(b^d)$ | exponentielle |\n",
"\n",
"> **Théorème (Hart, Nilsson, Raphael 1968)** : si $h$ est admissible, A* trouve un chemin de coût minimal."
"> **Théorème (Hart, Nilsson, Raphael 1968)** : si $h$ est admissible, A* trouve un chemin de coût minimal — à condition de **ré-ouvrir** un état fermé quand un meilleur $g$ arrive. La variante Graph-Search **sans ré-ouverture** de ce notebook exige $h$ **consistante** (contre-exemple à quatre nœuds : jumeau Python §6)."
]
},
{
Expand Down Expand Up @@ -1956,7 +1956,7 @@
"|----------|--------|\n",
"| **Mémoire** | $O(bd)$ — linéaire en profondeur (vs $O(b^d)$ pour A*) |\n",
"| **Pas de file de priorité** | DFS récursif simple |\n",
"| **Même optimalité** | A* avec la même heuristique admissible |\n",
"| **Même optimalité** | que A* ; $h$ admissible suffit à IDA* (pas d'ensemble fermé), la variante A* sans re-open exige $h$ consistante |\n",
"\n",
"**Inconvénient** : re-exploration des nœuds à chaque itération (comme IDDFS), mais l'overhead est modeste car la borne $f$ augmente peu à chaque cycle."
]
Expand Down Expand Up @@ -2247,7 +2247,7 @@
"\n",
"| Heuristique | Définition | Admissible ? | Consistante ? |\n",
"|-------------|------------|--------------|---------------|\n",
"| **$h_1$ Tuiles mal placées** | Nombre de tuiles hors de leur position but | Oui | Pas toujours |\n",
"| **$h_1$ Tuiles mal placées** (case vide exclue) | Nombre de tuiles hors de leur position but | Oui | **Oui** (un mouvement déplace une seule tuile numérotée) |\n",
"| **$h_2$ Distance Manhattan** | Somme des distances $L_1$ de chaque tuile à sa position but | Oui | **Oui** |\n",
"\n",
"De plus, $h_2$ **domine** $h_1$ : $h_2(n) \\geq h_1(n)$ partout — donc A* avec $h_2$ explore **au moins aussi peu** de nœuds qu'avec $h_1$."
Expand Down Expand Up @@ -2830,13 +2830,13 @@
"| Algorithme | Critère | Optimal | Mémoire | Quand ? |\n",
"|------------|---------|---------|---------|---------|\n",
"| **Greedy** | minimiser $h(n)$ | Non | $O(b^m)$ | Vitesse prioritaire, solution « assez bonne » |\n",
"| **A\\*** | minimiser $g(n) + h(n)$ | **Oui** (h admissible) | $O(b^d)$ | Référence, optimalité requise |\n",
"| **A\\*** | minimiser $g(n) + h(n)$ | **Oui** (h consistante, variante sans re-open) | $O(b^d)$ | Référence, optimalité requise |\n",
"| **IDA\\*** | DFS itéré par $f(n)$ | **Oui** | $O(bd)$ | Mémoire limitée, espace profond |\n",
"\n",
"### Ce qu'il faut retenir\n",
"\n",
"1. **Greedy vs A* sur Lille → Toulouse** : Greedy (1210 km) est ~14% sous-optimal vs A* (1055 km) — la divergence est **structurelle**, pas accidentelle.\n",
"2. **A* est l'algorithme de référence** : optimal avec heuristique admissible, c'est le choix par défaut.\n",
"2. **A* est l'algorithme de référence** : optimal avec heuristique consistante (admissible seule ne suffit pas sans ré-ouverture), c'est le choix par défaut.\n",
"3. **IDA* pour la mémoire** : même optimalité qu'A*, consommation **linéaire** au lieu d'exponentielle.\n",
"4. **La qualité de l'heuristique est déterminante** : Manhattan (consistante, dominante) explore bien moins de nœuds que « tuiles mal placées » sur le 8-puzzle.\n",
"\n",
Expand Down
Loading
Loading