Représenter les actions en PDDL
Des états comme ensembles de fluents clos et positifs sous l’hypothèse du monde clos, des actions comme schémas à variables dotés d’une liste d’ajout et d’une liste de suppression, et le problème du cadre contourné en ne mentionnant que ce qui change.
La recherche traitait un état comme une boîte noire dont on pouvait seulement tester s’il était but. La logique savait regarder à l’intérieur d’un état, mais devait raisonner sur des énoncés clos, et s’y noyait. La planification emprunte la voie médiane : un état est une collection de variables, et c’est cette structure qui rend possibles des heuristiques automatiques.
Les états comme ensembles de fluents
Un état est une conjonction de fluents, c’est-à-dire d’atomes clos et sans symbole de fonction. Pour le problème de la roue de secours, l’état initial est
Trois restrictions rendent tout cela traitable, et non pas seulement expressif.
- Clos. n’est pas un fluent d’état : il contient une variable.
- Positif. est interdit. Sous l’hypothèse du monde clos, tout fluent non mentionné est faux : la négation est donc gratuite et implicite plutôt qu’écrite noir sur blanc.
- Sans symbole de fonction. est exclu ; l’hypothèse des noms uniques fait alors de constantes distinctes des objets distincts.
Le bénéfice, c’est qu’un état se lit de deux façons à la fois : comme une conjonction logique sur laquelle raisonner, ou comme un ensemble de fluents à manipuler par des opérations ensemblistes. La plupart des algorithmes de planification retiennent la seconde lecture, et c’est pourquoi le code ci-dessous est si court.
Les actions comme schémas
Le problème du cadre est la difficulté de dire ce qui reste inchangé quand quelque chose change. La planification classique le contourne en se concentrant sur des problèmes où la plupart des actions laissent la plupart des choses tranquilles, puis en décrivant une action uniquement par ce qui change. Tout ce qui n’est pas mentionné persiste.
Un schéma d’action est une description à variables qui représente de nombreuses actions instanciées :
L’effet se scinde en une liste d’ajout, les littéraux positifs, et une liste de suppression, les littéraux niés. Appliquer une action instanciée à un état tient alors en une ligne d’arithmétique ensembliste :
et est applicable dès que .
Cette mise en variables fait toute l’économie de la représentation. Dans le monde du wumpus, l’agent logique avait besoin d’un énoncé distinct pour avancer, et cela pour chacune des quatre orientations, pas de temps et emplacements. Un seul schéma remplace les énoncés.
Instanciation et dénombrement
Un schéma est une promesse ; un planificateur travaille sur les actions instanciées qu’il déploie. Le domaine du fret aérien compte trois schémas et, avec deux cargaisons, deux avions et deux aéroports, ils se déploient en vingt actions instanciées.
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.
Remarquez le garde-fou. Sans lui, le schéma produit aussi , dont l’effet serait - une contradiction. Le remède est une précondition d’inégalité exigeant que les deux aéroports diffèrent.
L’instanciation passe par ailleurs très mal à l’échelle, et c’est justement pourquoi l’on garde les schémas aussi longtemps que possible. Avec dix avions et cinq aéroports, donne à lui seul actions instanciées, et le compte croît comme le produit de tous les domaines figurant dans le schéma.
Bougez les trois domaines ci-dessous et regardez le produit. Avec deux de chaque, ce sont les vingt actions ci-dessus ; poussez à dix avions et cinq aéroports et Fly contribue à elle seule deux cents, avant tout autre schéma. Load et Unload croissent avec le fret et Fly non, car un schéma ne se développe que sur les arguments qu’il mentionne effectivement.
La garde mérite d’être désactivée une fois. Sans la précondition d’inégalité, le schéma produit un Fly(p, a, a) par avion et par aéroport, et la figure les compte. Ce n’est pas un détail de propreté : sans elle, le schéma décrit des actions dont l’effet affirme et nie à la fois que l’avion est là où il est.
Interactif : ce que coûte l’instanciation
Trois schémas, et le produit de tous les domaines qu’ils mentionnent.
- Load, et Unload chacun
- 8
- Fly, instanciée
- 4
- Actions instanciées en tout
- 20
- Contradictoires sans la garde
- 4
Trois schémas deviennent 20 actions instanciées ici, soit les 20 de la leçon avec deux de chaque. Chaque schéma se développe sur ses propres arguments : Load et Unload croissent comme fret fois avions fois aéroports, tandis que Fly ne touche pas au fret. Poussez à dix avions et cinq aéroports et Fly contribue à lui seul 200, avant tout autre schéma. Voilà pourquoi un planificateur garde ses schémas aussi longtemps qu’il le peut. La garde est active et retire 4 actions : un Fly(p, a, a) par avion et par aéroport, dont l’effet affirmerait et nierait à la fois que l’avion est en a. Désactivez-la pour les compter.
Un but est une précondition
Un but s’écrit comme une précondition : une conjonction de littéraux, éventuellement à variables, lues existentiellement. Ainsi signifie qu’un avion se trouve à San Francisco. Un état satisfait un but lorsqu’il l’implique, ce qui, sous l’hypothèse du monde clos, se réduit à un test d’inclusion sur les littéraux positifs.
Ce n’est pas une logique affaiblie, c’est un fragment choisi. Chaque restriction - clos, positif, sans symbole de fonction, réduit aux effets - existe pour que la structure d’une action reste ouverte à l’inspection. La leçon suivante transforme cette structure en recherche, et celle d’après en heuristiques dérivées automatiquement des schémas eux-mêmes. Rien de tout cela n’est possible lorsqu’un état est un atome.
Avant le quiz
Sachez dire ce qu’est une représentation factorisée et ce qu’elle apporte, énumérer les trois restrictions pesant sur les fluents d’état et le rôle de l’hypothèse du monde clos, écrire un schéma d’action et l’appliquer comme une opération ensembliste, compter les actions instanciées qu’un schéma déploie, et expliquer pourquoi une précondition d’inégalité est parfois nécessaire.
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.
Débloquez tout le parcours
Cette première leçon est gratuite. Inscrivez-vous pour passer le quiz de maîtrise, gagner de l’XP et débloquer tous les modules, avec d’autres exemples interactifs et exécutables.