La planification classique : schémas, relaxations et graphes
Pourquoi la planification reçoit sa propre représentation au lieu d’être une note de bas de page de la recherche, comment supprimer des morceaux de la description d’une action produit une heuristique gratuitement, et ce qu’un graphe de planification remarque que les heuristiques but par but manquent systématiquement.
Prérequis : Satisfaction de contraintes et propagation
La recherche résoudra un problème de planification, pourvu qu’on lui donne une heuristique. La question intéressante est de savoir d’où vient l’heuristique, et la réponse se révèle être une thèse sur la représentation plutôt que sur les algorithmes.
A. Ce qu’achète un état factorisé
Un agent de résolution de problèmes traite un état comme un atome. Il ne peut rien en faire d’autre que tester s’il est un but, si bien que toute heuristique doit lui être fournie de l’extérieur. Un agent logique, lui, peut regarder à l’intérieur d’un état, mais il raisonne avec des phrases closes et s’y noie : dans le monde du wumpus, avancer réclamait une phrase distincte pour chacune des quatre orientations, pas de temps et localisations.
La planification prend la voie moyenne. Un état est une collection de variables - une conjonction de fluents clos, positifs et sans symbole de fonction :
Sous l’hypothèse du monde clos, tout ce qui n’est pas mentionné est faux : la négation n’a donc jamais à être écrite. L’état se lit alors de deux façons à la fois, comme une phrase logique ou comme un ensemble, et presque tous les algorithmes retiennent la seconde.
Les actions sont des schémas, qui ne décrivent que ce qui change :
Les littéraux positifs forment la liste d’ajout, les littéraux niés la liste de suppression, et appliquer une action tient en une seule expression ensembliste : . Le problème du cadre n’est pas tant résolu qu’écarté : l’attention se restreint aux domaines où la plupart des actions laissent la plupart des choses intactes, et la persistance devient le comportement par défaut.
B. Le coût de l’instanciation
Un schéma est compact ; ses instances ne le sont pas. Avec deux cargaisons, deux avions et deux aéroports, trois schémas de fret aérien se déploient en vingt actions closes, et le seul schéma de vol, avec dix avions et cinq aéroports, en donne .
S'exécute dans votre navigateur. La première exécution télécharge l'environnement Python (~10 Mo), puis il est mis en cache.
La garde de la dernière compréhension n’est pas de la coquetterie. Sans elle, le schéma produit , dont l’effet est , une contradiction ; le correctif de principe est une précondition d’inégalité.
Voilà pourquoi la recherche en avant peine. Elle est complète et, à coûts uniformes, optimale, mais elle envisagera de faire voler un avion vide entre deux aéroports hors sujet aussi volontiers que de charger la bonne cargaison. La recherche en arrière depuis le but ne considère que les actions pertinentes, régressant un but en , et branche bien moins - mais ses nœuds sont des ensembles d’états plutôt que des états, ce qui exige de l’unification et rend les bonnes heuristiques plus difficiles à définir.
C. Des heuristiques par suppression
C’est ici que la représentation paie. Une heuristique est le coût d’un problème plus facile, et les schémas peuvent tout simplement être édités.
Ignorer les préconditions retire toute précondition, rendant chaque action applicable partout. Il ne reste qu’à couvrir les littéraux de but non satisfaits avec le moins de listes d’ajout possible. C’est de là que viennent les heuristiques classiques du taquin : dans le taquin à huit cases, abandonner donne le nombre de tuiles mal placées, et abandonner seul donne la distance de Manhattan. Les deux tombent mécaniquement.
Ignorer les listes de suppression retire tout effet négatif. Plus rien ne peut défaire quoi que ce soit, le progrès est donc monotone et l’escalade de colline trouve un plan relâché approché en temps polynomial.
Sur le fret aérien, les deux annoncent 2 à l’état initial contre un coût réel de 6 (le chiffre sans listes de suppression compte les couches du problème relâché, comme le fait un graphe de planification ; le plus court plan relâché compte lui-même 5 actions) :
| recherche | états développés |
|---|---|
| largeur d’abord, sans heuristique | 56 |
| A* avec ignorer les préconditions | 51 |
| A* avec ignorer les listes de suppression | 45 |
Les marges sont faibles parce que le problème est petit. Ce qui compte, c’est que personne n’a écrit d’heuristique pour le fret aérien.
D. Ce que remarque un graphe de planification
Un graphe de planification alterne niveaux de littéraux et niveaux d’actions, ajoute une action de persistance pour chaque littéral, et se construit en temps polynomial sans aucune recherche. Sa substance, ce sont les liens de mutex, qui enregistrent les paires ne pouvant tenir ensemble : actions aux effets incohérents, actions qui interfèrent, actions aux besoins concurrents, et littéraux dont toute paire de producteurs est mutex.
Prenez le plus petit problème qui fasse voir la chose. Au départ vous avez un gâteau ; vous voulez l’avoir et l’avoir mangé. Manger supprime le fait d’avoir, et cuire exige de ne pas avoir.
| niveau | littéraux | paires mutex |
|---|---|---|
| , | 0 | |
| les quatre | 4 | |
| les quatre | 3 |
Les deux littéraux de but apparaissent dès , si bien qu’un raisonnement littéral par littéral conclut qu’une étape suffit. Elle ne suffit pas : en ils sont mutex, car la seule façon d’avoir le gâteau est de le faire persister et la seule façon de l’avoir mangé est de le manger, et manger supprime le fait d’avoir. À le mutex a disparu et le graphe a atteint son palier.
Le coût de niveau d’un littéral est le niveau où il apparaît pour la première fois, ce qui donne trois heuristiques. Le niveau maximal prend le plus grand, la somme des niveaux les additionne, et le niveau d’ensemble attend le premier niveau où tous les littéraux de but apparaissent sans aucun mutex entre eux. Ici elles donnent , et . Le plan optimal - manger le gâteau, puis en cuire un autre - a pour longueur : seul le niveau d’ensemble est donc juste, et lui seul a regardé si les buts pouvaient coexister.
Le niveau maximal et le niveau d’ensemble sont admissibles, et le niveau d’ensemble domine. La somme des niveaux traite les sous-buts comme indépendants et peut dépasser la cible, elle est donc inadmissible en général, ce qui ne l’empêche pas d’être la plus utile des trois en pratique.
La figure ci-dessous construit ce graphe au lieu de le recopier : chaque mutex y est calculé à partir des trois conditions sur les actions et des deux sur les littéraux, et c’est pourquoi les comptes tombent d’eux-mêmes sur 0, 4, 3, 3. Regardez la ligne qui joint les deux littéraux du but. Elle est là en S1 et disparue en S2, et cette seule ligne évanouie fait toute la différence entre une heuristique qui répond 1 et la vraie réponse, 2.
Interactif : la ligne qui disparaît au niveau deux
Chaque mutex est calculé, non recopié. Observez la paire de buts en S1 puis en S2.
- Niveau max
- 1
- Somme des niveaux
- 1
- Niveau d’ensemble
- 2
- Optimum réel
- 2
En S1, les deux littéraux du but sont déjà présents, et c’est pourquoi le niveau max et la somme des niveaux répondent tous deux 1. Mais ils sont aussi reliés par une ligne : le seul moyen d’avoir le gâteau est de le conserver, le seul moyen de l’avoir mangé est de le manger, et les deux interfèrent. Le niveau d’ensemble est le seul des trois à regarder cette ligne, il attend donc S2 - et c’est l’optimum réel, car le plan a bien besoin des deux étapes. Un graphe de planification n’approxime que dans un sens : un littéral absent au niveau i est sûrement inatteignable en i étapes, mais présent et non bloqué n’est pas une promesse, seulement l’absence de la preuve d’impossibilité la moins chère.
Où cela vous laisse
L’approximation ne va que dans un sens. Un littéral absent au niveau est véritablement inatteignable en étapes, et c’est ce qui fait des coûts de niveau des bornes inférieures. Un littéral présent, même sans mutex, ne promet rien ; seules les incohérences deux à deux sont calculées, et un conflit à trois passe donc inaperçu. Cette asymétrie est la forme honnête de tout le sujet : la planification classique ne rend pas faciles les problèmes difficiles, elle fait de la description d’un problème quelque chose qu’un solveur peut lire. Le parcours Planification classique construit les schémas, les relaxations et le graphe à la main et en code.
Références et lectures complémentaires
- Stuart Russell, Peter Norvig, Artificial Intelligence: A Modern Approach, Pearson (3rd edition), 2010· Bibliothèque de référence Kudos AI
Les œuvres protégées par le droit d’auteur sont citées à titre de référence uniquement et ne sont pas hébergées ici ; veuillez consulter l’éditeur pour y accéder.