Planification

Transcription

Planification
Planification
Planification
■
■
[D'après Wikipedia]: la planification (Automated planning) est une
discipline de l'intelligence artificielle qui vise le développement
d'algorithmes pour produire des plans (en d'autre termes, une
planification), typiquement pour l'exécution par un robot ou tout
autre agent.
Un planificateur typique manipule prend trois entrées :
➤ une description de l'état initial d'un monde,
➤ une description d'un but à atteindre et
➤ un ensemble d'actions possibles (parfois appelés opérateurs)
* Dans toute démarche de résolution, il y a une partie statique et une partie
dynamique
* Démarche traditionnelle
- la conception fixe à travers l'algorithme la suite (conditionnelle) d'actions
à effectuer.
* En planification
- la phase statique se résume à décrire le monde et les opérations qui
le transforment.
- lorsqu'un but est soumis, le "moteur d'inférence" du planificateur
génèrera un plan.
* Gain escompté : flexibilité accrue, entrelacement possible entre
planification et exécution.
Introduction à la planification
1
Démarche classique / Planification
Introduction à la planification
Générer des plans
■
Etant donnés:
➤
➤
➤
➤
■
3
Une façon de décrire le monde (un langage)
Un état initial du monde
La description d'un but
Un ensemble d'actions susceptibles de changer le monde
Trouver:
➤
Introduction à la planification
2
Une suite d'actions capable de changer l'état initial en un
état satisfaisant le but
Introduction à la planification
4
Planification / Déduction
Planification
■
Cas particulier de la recherche dans un espace d'états
ciblé pour représenter les changements du monde
■
Forme restreinte des actions pour éviter le frame
problem
■
Résout les problèmes en tentant de résoudre
récursivement tous les sous-buts
■
Dans le pire des cas, se comportera comme un
algorithme classique de recherche
Introduction à la planification
* Un système de planification :
- se situe dans un monde
- le fait évoluer par des actions
- agit en fonction d'un ou plusieurs buts exprimés
comme des propriétés de l'état du monde.
* Contrairement à un système de résolution, la
planification n'a pas pour but la production de
nouvelles connaissances à partir de règles de
déduction.
5
Problématiques de planification
Introduction à la planification
6
Applications
1. La représentation du monde et des capacités de
l'agent
- les actions, les plans, le changement, le temps, les objectifs à
atteindre
■
■
➤
■
2. L'algorithmique
- comment réaliser une synthèse automatique de plans à partir
d'un but à atteindre et d'un état du monde
Robots mobiles
Environnements simulés
Gestion de situations de crise situations
➤
■
pour l'apprentissage (vol) ou des jeux
E.g. catastrophes naturelles accidents industriels, …
Et bien plus encore
➤
Automatisation de procédés, pilote automatique,
programmes joueurs bridge, planification militaire, ...
3. Le suivi de l'exécution
- le contrôle, la réactivité aux évolutions, la révision des plans
déjà produits
Introduction à la planification
7
Introduction à la planification
8
Exemple : le monde des blocs (1)
Le monde des blocs (2)
Trouver une séquence d’actions entre l’état initial et l’état final
dépile(b),dépose(b), prend(c), empile(c,a)
b
c
a
c
b
start
a
• Tous les blocs sont de taille égale
• La table est fixe; seule la position relative des blocs importe
• un seul bloc sur un autre bloc
• un nombre qcq de blocs sur la table
• les blocs bougent uniquement quand le bras les manipule
• le bras prend et repose les blocs
• le bras prend un seul bloc à la fois
Introduction à la planification
9
Représentation du changement
■
➤
➤
■
c
a
goal
b
a
c
b
c
c
a
Introduction à la planification
10
Problème avec la logique d'ordre un
■
Peu pratique pour des problèmes où l'état du monde
change, car il faut dire explicitement tout ce qui ne
change pas (frame problem).
■
Pas de moyen simple d'éviter ça: logique d'ordre zéro,
règle par défaut, ...
Comme les actions changent le monde, il est
nécessaire de:
➤
b
b
a
Savoir en quoi une action change le monde
Garder un historique des états successifs du monde
Raisonner à propos des états potentiels du monde (que se
passerait-il si j'effectuais les actions ..?)
Comment représenter efficacement tout ce qui ne
change pas ?
Introduction à la planification
11
Introduction à la planification
12
Formalisation du monde des blocs
■
Objets: blocs a,b,c,... table table
■
Etats: conjonctions de littéraux
➤
➤
➤
➤
➤
Planification: représentation
sur(X,Y),
surtable(X),
riendessus(X),
mainvide,
tient(X)
Actions:
■
➤
■
Etats: conjonction de littéraux
■
But élémentaire (un seul littéral), buts composés
■
Actions sont formées de 3 parties
■
prend(X), dépose(X), empile(X,Y), dépile(X,Y)
➤
indentification de l'action
➤
précondition
➤
effet: add-list et delete-list
Les règles ne spécifient que ce qui change
Connaissances à propos des actions et du monde:
■
➤
Il ne peut pas y avoir plus qu'un bloc sur un autre bloc
➤
La main doit être vide et il ne doit rien y avoir sur le bloc pour
que la main puisse le prendre
Introduction à la planification
13
Formalisation du monde des blocs
■
■
14
Formalisation du monde des blocs
Etats:
➤
Chaque bloc X est soit sur(X,Y) ou surtable(X), il peut aussi être
riendessus(X)
➤
Pas plus d'un bloc X dans la main: tient(X)
➤
mainvide ou (exclusif) tient(X)
prend(X):
P&D: [surtable(X), mainvide, riendessus(X)]
A: [tient(X)]
dépose(X):
P&D: [tient(X)]
A: [surtable(X), mainvide, riendessus(X)]
Représenter le changement de l'état s1 à s2
Certains littéraux sont effacés, d'autres sont ajoutés :
prend(X): P & D: [surtable(X), mainvide, riendessus(X)]
➤
empile(X,Y):
P&D: [tient(X), riendessus(Y)]
A: [sur(X,Y), mainvide, riendessus(X)]
dépile(X,Y):
P & D:[mainvide, riendessus(X), sur(X,Y)]
A: [tient(X), riendessus(Y)]
A: [tient(X)]
Interprétation procédurale:
- effacer surtable(X), mainvide, riendessus(X) de S
- ajouter tient(X)
Introduction à la planification
Introduction à la planification
15
Introduction à la planification
16
Exemple
riendessus(b)
sur(c,a)
riendessus(c)
surtable(a)
surtable(b)
mainvide
Espace de recherche
dépile(X,Y)
P&D: mainvide,
riendessus(X),
sur(X,Y)
A: tient(X), riendessus(Y)
riendessus(a)
riendessus(b)
tient(c)
surtable(a)
surtable(b)
dépose(X)
P&D: tient(X)
A:
surtable(X),
riendessus(X),
mainvide
prend(X)
P&D: surtable(X),
riendessus(X), riendessus(a)
mainvide
riendessus(a)
riendessus(b)
A: tient(X)
surtable(a)
surtable(a)
surtable(c)
surtable(b)
riendessus(c)
surtable(c)
tient(b)
riendessus(c)
mainvide
Introduction à la planification
17
18
Recherche d'un plan par chaînage avant
(CAV)
Arbre de recherche pour le monde des
blocs
sur(b,a), riendessus(b), riendessus(c),
surtable(a), surtable(c), mainvide

va de l'état initial vers le but
prend(c)
dépile(b,a)
riendessus(a), riendessus(c),
surtable(a), surtable(c), tient(b)
prend(c)
Introduction à la planification
sur(b,a), riendessus(b),
tient(c), surtable(a)
empile(c,b)

l'agent applique "mentalement" les opérateurs
jusqu'à ce que l'un des états obtenus vérifie le but
( i.e., il raisonne sur les changements d’états mais
n’opère pas sur le monde)
riendessus(c), sur(c,b), sur(b,a),
surtable(a), mainvide
Introduction à la planification
19
Introduction à la planification
20
Chaînage avant
CAV





une solution se compose d'un état et de la suite d'actions
qui y mène depuis l'état initial.
la solution initiale du planificateur est : s0 = ( e0, ∅ ).
la condition de succès consiste à vérifier que le but est
satisfiable dans le modèle d'état associé à la solution.
pour trouver les successeurs d'une solution on applique les
règles possibles et on concatène l'action au plan partiel.
le test d'équivalence est l'égalité des modèles d'états :
- s=(e,p) subsume s'=(e',p') <=> e = e' (ou mieux e ⊇ e').

Introduction à la planification
21
Introduction à la planification
■
■
Stratégies déterministe pour CAV:
➤ Largeur d’abord
➤ Profondeur d’abord
s
➤ Meilleur d’abord (e.g., A*) 0
➤ Recherche gloutonne
a1
22
Pourquoi ce type de recherche est-il
inefficace?
Stratégies déterministes
■
une stratégie possible est de choisir la solution dont l'état du
monde satisfait le plus de sous-buts.
s1
a4
a2
s2
a3
s3
a5
s4
s5
s
…
g
Les recherche en largeur d’abord et meilleur d’abord sont correctes et
complètes
➤ Mais elles demandent trop de mémoire (exponentielle en la longueur
de la solution)
■
Trop d'actions et d'états à considérer à cause d'un grand
facteur de branchement
■
Difficulté pour trouver une seule heuristique
■
Pas de vue globale (poids entre les sous-buts à réaliser)
■
Pas de lien direct entre état et actions
■
N'exploite pas l'indépendance entre sous-buts
En pratique, plutôt profondeur d’abord ou recherche gloutonne
➤ Dans le pire des cas, complexité mémoire linéaire en la longueur de la
solution
➤ Correct mais incomplet (vérification des boucles dans un plan)
Introduction à la planification
23
Introduction à la planification
24
Facteur de branchement et CAV
Heuristique pour le monde des blocs
a1
a2
a1
a2
a3
…
a50
■
CAV peut avoir un facteur de branchement énorme
➤
■
■
a3
But
Etat initial
E.g., beaucoup d’actions applicables qui ne mènent pas au but
Des stratégies déterministes peuvent dépenser beaucoup de
temps à essayer des actions inutiles
Quelle heuristique pour la planification?
Introduction à la planification
25
Implémentation d'un planificateur
en chaînage avant
Etat
initial
Heuristique simple : nombre de littéraux différents
S1: [sur(b,a) /\ riendessus(b) /\ riendessus(c) /\ surtable(a) /\
surtable(c)]
G: [sur(c,a) /\ riendessus(b) /\ riendessus(a) /\ surtable(a) /\
surtable(b)]
Différence: 3
■ Arbre de recherche meilleur d'abord à partir de l'état
initial et vers le but
■
■
Possibles boucles à cause d'états revisités sur le chemin
Introduction à la planification
26
Recherche heuristique - définitions
Un noeud est un état +
la séquence
d'opérateurs qui mène
à cet état + valeur
heuristique
Optimale –si on trouve une solution, c'est la meilleure
(celle qui minimise une métrique comme la longueur du
plan, ou la consommation d'une ressource donnée)
Complète – guarantit de trouver une solution si elle
appartient à l'espace de recherche
Efficacité – temps ou espace nécessaires pour trouver
une solution
Introduction à la planification
27
Introduction à la planification
28
Recherche heuristique - définitions
Heuristiques: définitions
Recherche de type meilleur d'abord
Répéter:
– maintenir un ensemble de noeuds en attente de
développement (OPEN)
-- Développer le noeud de OUVERT qui a la meilleure valeur
heuristique
-- Envoyer ce noeud dans FERME, et le développer: calculer
ses fils et leurs valeurs heuristiques, et mettre à jour OUVERT
en conséquence
Introduction à la planification
29
Heuristique - Exemple
Introduction à la planification
30
Heuristique admissible
Largeur d'abord:
f(n) = g(n) + h(n)
où
g(n) = longueur du plan pour atteindre n à partir de
l'état initial
h(n) = 0
largeur d'abord OPTIMALE, COMPLETE mais
totalement inefficace
Artform Research
Group
Introduction à la planification
Soit une fonction heuristique f(n) = g(n) + h(n)
où
g(n) est le meilleur coût actuel pour aller de l'état
initial à l'état n
h(n) est une estimation du coût pour atteindre le but
à partir du noeud n
31
Une heuristique ADMISSIBLE calcule une estimation
du coût pour atteindre le but qui est toujours
strictement inférieure au coût optimal pour atteindre le
but.
Exemple: but – aller de la position courante P à la
position but G en empruntant le réseau routier.
Une heuristique admissible est la distance à vol
d'oiseau entre P et G
Introduction à la planification
32
Algorithme A*
Heuristique pour la planification
Une recherche A* est une recherche dans un espace
d'états telle que les noeuds dans OUVERT sont
triés en fonction de leur valeur selon une fonction
heuristique f(n) = g(n) + h(n)
•
•
g(n) est le coût du meilleur chemin connu pour
aller de l'état initial à l'état n
h(n) est une fonction heuristique admissible pour
évaluer le coût du chemin restant à parcourir pour
atteinre le but à partir de n
Heuristique 1, gloutonne: f(n) = ‘effort’ estimé pour atteindre la
solution à partir de l'état courant : nombre de littéraux du but à
atteindre
1. asserta(noeud(Etat, [O|Soln], Cout).
2. Sélectionner un but à développer noeud(Etat,Soln, Cout)
avec le plus petit coût.
Une recherche A* est OPTIMALE et COMPLETE
Introduction à la planification
33
Heuristique gloutonne -Exemple
Introduction à la planification
34
Heuristiques pour la planification
1 A,B,C,D résolus
A,B résolus
3
Heuristique 2: f(n) = (g(n) = nombre d'opérateurs appliqués pour atteindre
n + h(n) = 0 : largeur d'abord
A,B résolus
3
Etat
initial
E résolu
4
But = ensemble de sous-buts:
A,B,C,D,E
C,D résolus
3
Heuristique 3: f(n) = g(n) = nombre d'opérateurs appliqués pour atteindre
n + h(n) = nb de sous-buts restant à réaliser pour atteindre le but.
Cette heuristique est-elle admissible ?
A,B,C résolus
2
C,D résolus
3
Introduction à la planification
35
Introduction à la planification
36
Exemple – heuristique
3
A,B,C,D résolus
Une nouvelle heuristique – l'algorithme
GraphPlan
1+3
A,B résolus
3+3
Heuristique 4: Relaxation du problème
A,B résolus
3+3
Etat
initial
E résolu
4+2
Pour calculer le coût d'un noeud n = (état, [ops]):
■ Calculer un plan solution à partir de n en ignorant les effets
des delete lists des opérateurs (i.e., on ignore le coût de
défaire qq chose qui a été fait, et les problèmes
d'interférence entre opérateurs) . h(n) = longueur de ce plan
■ f(n) = length [ops] + h(n)
■ Heuristique admissible: toujours une sous-estimation de la
distance au but.
But:
A,B,C,D,E
C,D résolus
3+2
A,B,C résolus
2+1
C,D résolus
3+1
Artform Research
Group
Introduction à la planification
Ce noeud est le prochain
à développer
37
■
■
CAV est correct
➤ Pour tout plan retourné, ce plan est garanti d’être une
solution
CAV est aussi complet
➤ S’il existe une solution dans l’espace des traces explorées,
CAV la retournera
Mais sa complexité est proportionnelle au nombre de
modèles d'états, ce qui exclut son utilisation autrement que
sur des cas d'école.
Introduction à la planification
38
Chaînage arrière (CAR)
Propriétés
■
Introduction à la planification
39
CAR a un principe inverse de celui de CAV :



Part du but qu'il "régresse" en buts intermédiaires par
"régression" de règle.
La régression d'une règle est une application qui permet de
rendre vrai l'un des sous-buts sans invalider les autres
Quand un des buts intermédiaires est satisfiable dans l'état
initial,le plan est obtenu en appliquant les actions régressées en
ordre inverse du chemin qui a conduit à cette solution.
Introduction à la planification
40
CAR
■
Pour CAV, on part du but initial, et on applique une action
➤
ns = γ(s,a)
Pour CAR, on part du but et on calcule des transitions d’états
inverses
Nouveaux sous-buts = γ–1(g,a)
Pour appliquer γ-1(g,a), il faut avoir une notion de pertinence :
■
➤
Une action a est pertinente pour un but g si
– a rend vrai au moins un des littéraux de g
■
g ∩ effets(a) ≠ ∅
– a ne rend faux aucun des littéraux de g
■
■
g4
g+ ∩ effets–(a) = ∅ et g– ∩ effets+(a) = ∅
a4
g1
a1
g2
Si a est pertinente pour g, alors γ–1(g,a) = (g – effets(a)) ∪
precond(a), sinon γ–1(g,a) est indéfinie
s0
g5
g3
Introduction à la planification
41
g0
a2
a5
Introduction à la planification
a3
42
Un espace de recherche encore trop grand
Intérêt de CAR
➤ Supposons




Gain important en complexité
Une solution est un ensemble de sous-buts
régressés généralement de taille bien plus petite que
les modèles d'états
Complétude assurée par un parcours en largeur (ou
équivalent).
Mais, se paie par la perte de la terminaison
que les actions a, b et c soient
indépendantes, que l’action d doive précèder chacune
des trois, et qu’il n’y ait pas de chemin entre s0 et les
préconditions de d
➤ Tous les ordres entre a, b et c seront explorés avant de
réaliser qu’il n’y a pas de solution
s0
Introduction à la planification
43
Introduction à la planification
d
a
b
d
b
a
d
d
d
d
b
a
b
c
a
c
c
b
c
b
but
a
44
Exemple
Strips (Fikes and Nilsson 71)
■
■
Sépare la déduction au sein d'un même état de la
recherche dans un espace d'états
Représentation d'ordre un pour la planification
➤
➤
➤
➤
➤
➤
Les préconditions et les effets doivent être sans symbole de
fonctions
Hypothèse du monde clos: tous les littéraux non spécifiés
sont faux
Effet: P ^ non :Q : ajouter P et effacer Q
Seuls des littéraux positifs dans les états
Seuls des littéraux instanciés dans les buts
Pas de gestion de l'égalité entre variables ( X = Y )
Introduction à la planification
45
Exemple
■
Décharger(C, Av, Ae)
– PRECOND: dans(C, Av), est_à(Av, Ae), cargaison(C), avion(Av),
aéroport(Ae)
– EFFET: est_à(A, Ae), not dans(C,Av)
➤
Vole(Av, S, D);
■
Etat initial : est_à(c1,sfo) , est_à(c2, jfk), est_à(a1,sfo),
est_à(a2, jfk), cargaison(c1), cargaison(c2), avion(a1),
avion(a2), aéroport(jfk), aéroport(sfo)
■
But : est_à(c1,jfk), est_à(c2,sfo)
■
Actions:
➤
charge(C,Av,Ae)
– PRECOND: est_à(C,Ae), est_à(Av,Ae), cargaison(C), avion(Av),
aéroport(Ae)
– EFFET:not est_à(C,Ae), dans(C, Av)
Introduction à la planification
46
Etat Initial: être-à(maison), not avoir(bière), not avoir(chips)
But:
avoir(bière), avoir(chips), être-à(maison)
Actions:
Acheter (X):
PRECOND: être-à(magasin)
EFFET: avoir(X)
– PRECOND: est_à(Av, S), avion(Av), aéroport(S), aéroport(D)
– EFFET: not est_à(Av,S), est_à(Av,D)
Introduction à la planification
Charger ou décharger une cargaison et la déplacer
d'un lieu à l'autre
Exemple
Actions:
➤
■
47
Introduction à la planification
Aller (X, Y):
PRECOND: être-à(X)
EFFET: not être-à(X), être-à(Y)
48
Planification linéaire
Inférence dans STRIPS
■
Idée de base:
➤
■
Dans Strips, certains faits sont inférés au sein d'un
état,
➤
■
e.g. le nombre de personnes dans le magasin
■
Les algorithmes de planification linéaire maintiennent une pile
de buts
Implications
➤
■
Des faits ‘primitifs’, e.g. être-à(maison) persistent
entre deux états sauf s'ils sont modifiés (partie Ajout
ou Effacement). Les faits inférés ne sont pas
'transférés' d'un état à un autre, mais sont recalculés.
➤
➤
■
➤
➤
➤
➤
49
STRIPS [Fikes, Nilsson, 1971]
■
➤
STanford Research Institute Problem Solver
Formalisation de la représentation des opérateurs
Opérationalisation de la notion de différence, sous-but
et opérateur
Etat = Etat-Initial;Plan = []; Pile-Buts = []; Empiler Buts dans Pile-Buts;
Tant que Pile-Buts n'est pas vide et il reste encore des points de choix
à explorer
–
–
–
But = sommet(Pile-Buts)
Si But ∈Etat-Initial, alors dépiler(Pile_Buts)
Si But une conjonction de but alors
➤
–
➤
➤
–
➤
➤
Choisir* un opérateur o dont la liste d'addition contienne But
Remplacer But avec l'appel à l'opérateur o
Empiler les préconditions de o sur Pile-Buts
Si But est un opérateur o alors
➤
➤
Sélectionner un ordre des sous-buts* de But et les empiler sur Pile-Buts
Si le But est un but élémentaire alors
➤
■
50
STRIPS (Etat-Initial, Buts)
➤
■
Explore uniquement les aspects pertinents du problème
Quels moyens (opérateurs) pour atteindre une fin souhaitée (but)
Identifie les différences entre le but et l'état courant
Trouve un opérateur pour réduire cette différence
Introduction à la planification
■
■
Pas d'entremêlement dans la réalisation des buts
La recherche sera efficace si les buts n'interagissent pas (trop)
Analyse 'means-end'
Evite de faire des erreurs, mais inefficace.
Introduction à la planification
Travailler sur un but jusqu'à ce qu'il soit complètement réalisé, avant
de passer au but suivant
Etat = appliquer(o, Etat); Plan = [o|Plan]
Fin Tant que
si Pile-Buts est vide alors Retourner(reverse(Plan))
sinon retourner échec
* Ce choix peut être remis en cause par retour-arrière. S'il n'existe aucun op. pour réduire
cette différence, alors retour au dernier point de choix. Si plus de point de choix, échec.
Introduction à la planification
51
Introduction à la planification
52
STRIPS
STRIPS: Intuition
■
Approche diviser pour régner: pour créer un plan afin
d'effectuer un ensemble de buts, créer un plan pour
réaliser un but, puis créer un plan pour réaliser le reste
des buts
➤
➤
Sélectionner un but à réaliser
S'il n'est pas déjà réalisé,
–
–
–
–
■
choisir une action pour rendre le but vrai (régression)
rendre vraies les préconditions de l'action
effectuer l'action
passer au reste des buts
Introduction à la planification
➤
53
54
STRIPS: exemple
Points de choix de l'algorithme:
si le but à résoudre est une conjonction de sous-buts: choix
de l'ordre dans lequel on va résoudre ces sous-buts
➤ si le but est un but simple: quelle action doit-on déclencher
pour résoudre le but
Une action doit être
pertinente: pour une liste de sous-buts à résoudre, elle doit
contenir dans sa add-list un sous-but à résoudre qui
n'appartient pas à l'état courant
➤ cohérente: elle ne doit pas défaire un sous-but nécessaire à la
réalisation du but final (elle ne doit pas défaire un sous-but qui
a déjà été réalisé). Si contrôle de cohérence, possible
incomplétude (voir anomalie de Sussman).
➤
Introduction à la planification
mener à des plans non optimaux
échouer alors qu'il existe une solution
Introduction à la planification
■
Le monde des blocs: 3 blocs, la main d'un robot,
prédicats bloc/1, constantes, a, b, c, table,
mainvide/0,riendessus/1, sur/2,surtable/1,tient/1
■
4 actions
➤
■
Hypothèse : le but initial B que l'on cherche à résoudre
est complètement décomposable, i.e., pour chaque
liste des sous-buts à réaliser à un instant donné pour
réaliser B, on peut chercher à réaliser ces sous-buts
indépendamment des autres.
Cette hypothèse est forte. Selon les choix
d'implantation de l'algorithme de planification, elle peut
s'avérer
➤
STRIPS
■
■
55
➤
prendre-sur-table(B)
– Pre: bloc(B), mainvide, riendessus(B), surtable(B).
– Add-list: tient(B)
– Del-list: mainvide, surtable(B)
➤
déposer-sur-table(B)
– Pre: bloc(B), tient(B)
– Add-list: mainvide, surtable(B)
– Del-list: tient(B)
Introduction à la planification
56
STRIPS dans le monde des blocs
STRIPs dans le monde des blocs
a
c
b
•
■
Actions (suite)
■
Pile-buts:
➤
➤
■
prendre-sur-bloc(B, C)
sur(a, c),sur(c, b)
•
c
a
•
•
b
•
Etat: riendessus(b), riendessus(c), sur(c, a),surtable(a),
surtable(b), mainvide
– Pre: bloc(B), mainvide, riendessus(B), sur(B, C), bloc(C)
– Add-list: tient(B), riendessus(C)
– Del-list: mainvide,sur(B,C), riendessus(B)
➤
•
■
déposer-sur-bloc(B, C)
■
– Pre: bloc(B), tient(B), bloc(C), riendessus(C), B ≠ C
– Add-list: mainvide, sur(B, C)
– Del-list: tient(B), riendessus(C)
Liste de sous-buts, STRIPS empile les sous-buts dans
l'ordre inverse dans lequel il veut les résoudre
Pile-buts:
➤
➤
➤
■
sur(c, b)
sur(a, c)
sur(a, c),sur(c, b)
Etat inchangé: riendessus(b), riendessus(c), sur(c,a),
surtable(a), surtable(b), mainvide
Introduction à la planification
57
STRIPs dans le monde des blocs
58
STRIPs dans le monde des blocs
■
STRIPS cherche à réaliser sur(c,b), il recherche une action qui contient
dans sa add-list un littéral unifiable avec sur(c,b): déposer-sur-bloc(B,
C), de préconditions bloc(B), tient(B), bloc(C), riendessus(C), B ≠ C.
■
Etant donné la substitution B/c, C/b, il empile sur Pile-buts: bloc(c),
tient(c), bloc(b), riendessus(b), b ≠ c. Pour simplifier, on omet les
littéraux de type (testés) et les ≠, restent donc tient(c), riendessus(b).
Comme le sommet de la pile est une conjonction de sous-buts, STRIPS
ordonne les sous-buts à résoudre, en empilant d'abord riendessus(b)
puis tient(c).
■
Introduction à la planification
Etat: inchangé, Pile-buts:
tient(c)
riendessus(b)
tient(c), riendessus(b)
déposer-sur-bloc(c, b)
sur(a, c)
sur(a, c) sur(c, b)
■
riendessus(b) appartient à l'état courant, il est donc dépilé de
Pile-buts. Le sous-but à résoudre est donc maintenant tient(c).
■
Deux actions sont pertinentes, prendre-sur-table(B) et prendresur-bloc(B,C). On suppose que STRIPS, (bien inspiré), choisit
l'action prendre-sur-bloc(B,C) de préconditions bloc(B), mainvide,
riendessus(B), sur(B, C), bloc(C).
■
Avec la substitution B/c, on va empiler mainvide, riendessus(c),
sur(c,C). Strictement, ces sous-buts appartenant à l'état courant
(étant donnée la substitution C/a), on va pouvoir empiler dans un
ordre qcque, puis les dépiler, jusqu'à trouver sur la pile : prendresur-bloc(c,a) et donc de l'appliquer.
■
Etat : riendessus(b),riendessus(c),sur(a, table),
➤
➤
➤
➤
sur(b,table), tient(c), riendessus(a)
➤
•
■
➤
Introduction à la planification
•
59
Plan = [prendre-sur-bloc(c,a)].
Introduction à la planification
a
c
•
b
60
STRIPs dans le monde des blocs
STRIPs dans le monde des blocs
Pile-buts devient:
■




tient(c), riendessus(b)
déposer-sur-bloc(c, b)
sur(a, c)
sur(a, c), sur(c, b)
■
Plan= [déposer-sur-bloc(c,b), prendre-sur-bloc(c,a)]
■
Pile-Buts:
➤
➤
■
■
La conjonction tient(c), riendessus(b) est vraie, les deux
sous-buts sont bien réalisés tous les deux. Cela pourrait ne
pas être le cas si la réalisation de tient(c) avait détruit
riendessus(b). La conjonction est dépilée, puis déposer-surbloc(c,b) est appliqué à l'état courant et ajouté au plan
courant.
61
Introduction à la planification
L'algorithme de STRIPS tel quel n'est pas correct
En effet, réaliser un but peut défaire un but déjà réalisé
Deux idées pour rendre STRIPS correct
Protéger des sous-buts: tant qu'ils sont nécessaires, ils ne
peuvent pas être défaits.
➤ Réaliser une deuxième fois les buts « défaits »
■
62
L'anomalie de Sussman
Un mauvais choix d'ordre des sous-buts à résoudre peut
amener à détruire un but que l'on a réalisé
a
c
b
Pile-buts:
a
b
c
•
•
■
•
➤
➤
■
a
•
bloc(a,c),prendre-sur-table(a),déposer-sur-bloc(c,b),
prendre-sur-bloc(c,a)]
■
■
•
De la même manière, l'algorithme continue pour
arriver à Pile-buts = , avec le plan [déposer-sur-
■
Limitations de STRIPS
■
c
b
•
Etat: riendessus(c), sur(a, table), sur(b, table),
riendessus(a), mainvide, sur(c,b)
Introduction à la planification
■
sur(a, c)
sur(a, c), sur(c, b)
■
La première solution rend STRIPS incomplet
La deuxième va trouver des plans qui sont
éventuellement plus longs que nécessaire
■
•
•
•
sur(a, b),sur(b, c)
STRIPS choisit de résoudre sur(a,b) d'abord, puis sur(b,c).
sur(a,b) peut être réalisé par déposer-sur-bloc(B, C), de
préconditions bloc(B), tient(B), bloc(C), riendessus(C), B ≠ C.
(B/a,C/b)
Sachant que riendessus(b) appartient à l'état, Pile-buts:
tient(a)
tient(a), riendessus(b)
déposer-sur-bloc(a, b)
sur(b,c)
sur(a, b),sur(b, c)
➤
➤
➤
➤
➤
Introduction à la planification
63
Introduction à la planification
64
Anomalie de Sussman
Anomalie de Sussman
■
■
■
STRIPS va réaliser tient(a) en appliquant prendre-surtable(B) de préconditions bloc(B), mainvide, riendessus(B),
sur(B,table) (B/a).
La pile devient, modulo un ordre sur les préconditions
de prendre-sur-table(a):
➤
➤
➤
➤
➤
➤
➤
■
mainvide, riendessus(a), sur(a,table)
prendre-sur-table(a)
tient(a)
tient(a), riendessus(b)
déposer-sur-bloc(a, b)
sur(b,c)
sur(a, b),sur(b, c)
■
➤
➤
➤
➤
STRIPS choisit de réaliser riendessus(a) en appliquant
l'action prendre-sur-bloc(c,a) de préconditions mainvide,
riendessus(c), sur(c, a).
■
a est sur la table, la main du robot est vide, il reste à
réaliser riendessus(a).
65
L'ensemble de ces préconditions appartenant à l'état courant,
STRIPS effectue l'opération prendre-sur-bloc(c,a), ajoute cette
action au plan courant.
Introduction à la planification
■
•
c
La pile de buts :
tient(c)
déposer-sur-table(c)
main-vide, riendessus(a),sur(a,table)
prendre-sur-table(a)
riendessus(b)
tient(a), riendessus(b)
déposer-sur-bloc(a, b)
sur(b,c)
sur(a, b),sur(b, c)
➤
➤
•
a
•
b
➤
➤
➤
➤
➤
➤
➤
➤
➤
➤
➤
➤
➤
➤
■
66
Anomalie de Sussman
Plan = [prendre-sur-bloc(c,a)]
L'état courant devient:
La pile de buts :
main-vide, riendessus(a),sur(a,table)
prendre-sur-table(a)
riendessus(b)
tient(a), riendessus(b)
déposer-sur-bloc(a, b)
sur(b,c)
sur(a, b),sur(b, c)
➤
■
Anomalie de Sussman
■
➤
➤
Introduction à la planification
■
Pile-buts:
riendessus(a)
prendre-sur-table(a)
tient(a)
tient(a), riendessus(b)
déposer-sur-bloc(a, b)
sur(b,c)
sur(a, b),sur(b, c)
■
Il s'agit maintenant d'avoir la main vide et donc de
déposer c (sur la table). Il y a une seule précondition à
déposer-sur-table(c), tient(c).
■
■
Comme tient(c) est réalisé, STRIPS applique l'action.
Plan= [déposer-table(c),prendre-sur-bloc(c,a)]
Le nouvel état :
•
Introduction à la planification
67
Introduction à la planification
a
•
b
•
c
68
Anomalie de Sussman
■
■
On va donc pouvoir prendre a sur la table et le
déposer sur b.
Plan: [déposer-sur-bloc(a,b),prendre-sur-table(a),
déposer-table(c),prendre-sur-bloc(c,a)]
■
a
b
➤
On reprend a qu'on redépose sur la table, on prend b
qu'on dépose sur c
■
Plan= [déposer-sur-bloc(b,c),prendre-sur-table(b),
déposer-table(a),prendre-sur-bloc(a,b),
déposer-sur-bloc(a,b),prendre-sur-table(a),
déposer-table(c),prendre-sur-bloc(c,a)]
•
•
•
sur(b,c)
sur(a, b),sur(b, c)
c
■
Ensuite, pour réaliser sur(b,c), il faut prendre b sur la table
et donc qu'il soit possible de saisir b, il faut donc dépiler a...
et défaire le but qui vient d'être réalisé....
Introduction à la planification
69
Problème insoluble par STRIPS
■
■
Pile-buts:
➤
■
Anomalie de Sussman
■
■
■
Plan= [déposer-sur-bloc(b,c),prendre-sur-table(b),
déposer-table(a),prendre-sur-bloc(a,b),
déposer-sur-bloc(a,b),prendre-sur-table(a),
déposer-table(c),prendre-sur-bloc(c,a)]
70
Actions(suite)
Vole(Av, S, D);
– PRECOND: est_à(Av, S), avion(Av), aéroport(S), aéroport(D),
plein_kérosène(Av)
– ADD-LIST: est_à(Av,D)
– DEL-LIST: est_à(Av,S), plein_kérosène(Av)
charger(C,Av,Ae)
■
– PRECOND: est_à(C,Ae), est_à(Av,Ae), objet(C), avion(Av),
aéroport(Av)
– ADD-LIST:dans(C,Av)
– DEL-LIST: est_à(C,Ae),
■
■
décharger(C, Av, Ae)
– PRECOND: dans(C, Av), est_à(Av, Ae), objet(C), avion(Av),
aéroport(Ae)
– ADD-LIST: est_à(A, Ae),
– DEL-LIST: dans(C,Av)
Introduction à la planification
•
Il ne reste ensuite plus qu'à prendre a sur la table pour
le déposer sur b...
➤
Buts: est_à(obj1, lieub), est_à(obj2, lieub)
Actions:
➤
b
c
Problème insoluble par STRIPS
Etat Initial : est_à(obj1,lieua), est_à(obj2, lieua), est_à(747,
➤
a
Introduction à la planification
lieua),plein_kérosène(747)
■
•
•
■
71
Si STRIPS essaye de réaliser le but est_à(obj1, lieub)
Plan:[charger(obj1,lieua, 747), voler(747, lieua,lieub),
décharger(obj1, 747, lieub)]
mais ne peut plus réaliser le transfert de obj2 car plus
de kérosène (et vice-versa) !
Il existe pourtant un plan qui consiste à charger
d'abord les 2 objets, à effectuer le vol, puis à
décharger les 2 objets. Impossible à trouver par
STRIPS.
Introduction à la planification
72
Propriétés d'un algorithme de planification
■
Correct: Un algorithme de planification est correct si
tous les plans qu'il propose sont “légaux”
➤
■
■
■
Complétude: un algorithme de planification est
complet si une solution est trouvée si elle existe
Optimalité: un algorithme de planification est optimal
si l'ordre dans lequel les solutions sont trouvées
satisfait une mesure de qualité sur ces solutions
(longueur du plan)
73
Planification: conclusion
■
■
■
espace de recherche réduit (but résolus indépendamment les
uns des autres)
➤ Efficace si les buts sont plus ou moins indépendants
➤ La planification linéaire est correcte
■
Limitation
➤
■
La planification linéaire peut produire des solutions sousoptimales (nombres d'opérateurs du plan)
La planification linéaire est incomplète
Introduction à la planification
74
Planification linéaire
Des problèmes de représentation des connaissances
non triviaux
Trouver un plan: beaucoup plus compliqué que de
l'inférence dans une base de règles (monotone).
Planification linéaire: fonctionne dans un ensemble de
cas réduits (problèmes décomposables...)
De nombreuses extensions ont été développées:
planification avec ordre partiel (on construit des sousplans qui vont ensuite être « intercalés »), etc...
Introduction à la planification
Avantages:
➤
Toutes les préconditions et les buts sont réalisés
Introduction à la planification
■
Planification linéaire
75
■
Avantages:
➤
➤
➤
■
Limitation
➤
■
espace de recherche réduit (but résolus indépendamment les
uns des autres)
Efficace si les buts sont plus ou moins indépendants
independent
La planification linéaire est correcte
La planification linéairepeut produire des solutions sousoptimales (nombres d'opérateurs du plan)
La planification linéaire est incomplète
Introduction à la planification
76