Admissible et pourtant non monotone
Exercice · niveau 2 · informatique (MP2I/MPI), chapitre 27 — Jeux, stratégies et recherche heuristique
Énoncé
Graphe : de coût , de coût , de coût , et de coût . On pose et ailleurs. Montrer que est admissible mais non monotone, et dérouler A*.
Corrigé
Distances exactes : , , , (par , car coûte ).
Admissible : , et partout ailleurs. Aucune surestimation.
Non monotone : la monotonie exige sur chaque arc. Sur l'arc : et . On a : l'inégalité triangulaire est violée.
Le déroulement, mesuré, avec un ensemble fermé :
| sommets développés | dont rouverts | coût rendu | |
|---|---|---|---|
| (monotone) | |||
| (non monotone) |
Avec : on extrait , on engendre () et () ; on extrait donc avant , avec , et on le ferme. Puis on extrait (), qui offre à un chemin à : doit être rouvert et développé une seconde fois. Le coût final est correct — l'admissibilité garantit l'optimum —, mais on a payé un développement de plus.
Ce que la monotonie achète, exactement. Elle assure que est croissante le long de tout chemin : . Les sommets sortent donc de la file par croissante, et quand on en ferme un, son est déjà minimal — aucune réouverture n'est possible. C'est la deuxième ligne du tableau du cours, et cet exercice en montre la contraposée : sans monotonie, un sommet fermé peut redevenir ouvert.
La conséquence de génie logiciel. Une implémentation qui suppose la monotonie — et donc ignore tout sommet déjà fermé — rendrait ici , puis au lieu de . Le même code est correct ou faux selon une propriété de l'heuristique qu'il ne vérifie pas. On documente donc la précondition, comme le cours le fait dans le commentaire de a_etoile.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.