Post on 03-Apr-2015
RESOLUTION OPTIMALE D’UN GRAPHE DE PLANIFICATION
NUMERIQUE A L’AIDE DE CSP PONDERES
Martin CooperSylvain Cussat-Blanc
Marie de RoquemaurelCyril de RunzPierre Régnier
Journées Francophones Planification, Décision, Apprentissage
2
Plan
1. Introduction
2. Construction d’un graphe de planification numérique
3. Codage du graphe en WCSP
4. Propagation de contraintes valuées
5. Etude expérimentale
6. Conclusions et perspectives
3
Planification numérique• Etat numérique :
– Fluents propositionnels– Fluents numériques
• Action numérique a : <prec(a),effet(a),coût(a)>– prec(a) : préconditions de a– effet(a) : effets (ajouts, retraits, mises à jour) de a– coût(a) : coût d’application de a
• Problème numérique : <A,I,B>– A : ensemble d’actions numériques– I : état numérique initial du problème– B : but du problème
1. Introduction2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
4
Exemple : les vannes
A
B
C
D
varC
varB
varA
but
Actions :
A = <{(varA≥10),{(varB:=5)},10>
B = <{(varA>15)},{(varA-=4),(varC+=7)},5>
C = <{(varB≥5),(varC≥7)},{+but,(varB-=5),(varC-=7)},3>
D = <,{(varA+=6)},30>
Etat Initial : I = {(varA=16),(varB=3),(varC=0)}
But : B = {but}
1. Introduction 2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
5
2. Construction d’un graphe de planification numérique
1. Introduction2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
a
-a
X
Y
Les interactions négatives entre actions
+a
-a
X
Y
d:=b
c+=d
X
Y
d:=b
d<c
X
Y
Del/Prec Del/Add
Modification/Utilisation
Modification/Précondition
d:=b
d+=4
X
YModification/Modification
6
2. Construction d’un graphe de planification numérique
varA 16
varB 3
varC 0
D
NO_vA16
A_16
B_16
NO_vB3
NO_vC0
varA 22
varA 16
varB 5
varA 12
varC 7
varB 3
varC 0
Niveau 0 Niveau 1
1. Introduction 2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
AvarA≥10 varB:=5
10
BvarA>15 varA-=4varC+=7
5
CvarB≥5varC≥7
+butvarB-=5varC-=7
3
D varA+=6
30
Actions
7
varA 22
varA 16
varB 5
varA 12
varC 7
varB 3
varC 0
NO_vA16
NO_vB5
NO_vA12
NO_vC7
NO_vB3
NO_vC0
D_vA22
D_vA16
D_vA12
A_vA22
A_vA16
A_vA12
B_vA22_vC7
B_vA22_vC0
B_vA16_vC7
B_vA16_vC0
NO_vA22
2. Construction d’un graphe de planification numérique
varA 22
varA 16
varB 5
varA 12
varC 7
varB 3
varC 0
varA 26
varA 18
varC 14
Niveau 1 Niveau 21. Introduction 2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
8
varA 22
varA 16
varB 5
varA 12
varC 7
varB 3
varC 0
varA 26
varA 18
varC 14
C_vB5_vC7
C_vB5_vC14
but
2. Construction d’un graphe de planification numérique
Niveau 2 Niveau 3
1. Introduction 2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
…
…
…
…
…
…
…
…
…
……
…
…
…
…
…
…
…
…
…
9
varA 16
varB 3
varC 0
D
NO_vA16
A_16
B_16
NO_vB3
NO_vC0
Niveau 0 Niveau 1
varA 22
varA 16
varB 5
varA 12
varC 7
varB 3
varC 0
C_vB5_vC7
C_vB5_vC14
but
Niveau 2 Niveau 3
NO_vA16
NO_vB5
NO_vA12
NO_vC7
NO_vB3
NO_vC0
D_vA22
D_vA16
D_vA12
A_vA22
A_vA16
A_vA12
B_vA22_vC7
B_vA22_vC0
B_vA16_vC7
B_vA16_vC0
NO_vA22
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2. Construction d’un graphe de planification numérique
1. Introduction 2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
varA 22
varA 16
varB 5
varA 12
varC 7
varB 3
varC 0
varA 26
varA 18
varC 14
10
• Introduction : Les CSP valués
– CSP (Constraint Satisfaction Problem) : <X,D,C>• X={x1,…,xn} ensemble fini de variables• D={d1,…,dn} ensemble des domaines di associés aux variables xi. Les
di sont eux-mêmes des ensembles d’entiers.• C ensemble de contraintes. Une contrainte est un ensemble de
tuples portant sur un sous ensemble de X contenant les affectations non autorisées.
– Affectation : à chaque variable xi, on associe une et une seule valeur du domaine di.
– Une solution est une affectation complète et cohérente (toutes les variables de X sont affectées et aucune contrainte n’est violée)
– Valuation : les contraintes ont un coût. On cherche à minimiser la somme de ces coûts.
3. Codage du graphe en WCSP
1. Introduction 2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
11
3. Codage du graphe en WCSP8 étapes :a) Réduction du graphe : en partant du dernier niveau, on supprime toutes les
actions qui ne permettent pas d’obtenir les buts ainsi que leurs préconditions et les mutex associés
1. Introduction 2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
varA 16
varB 3
varC 0
D
NO_vA16
A_16
B_16
NO_vB3
NO_vC0
Niveau 0 Niveau 1
varA 22
varA 16
varB 5
varA 12
varC 7
varB 3
varC 0
varA 22
varA 16
varB 5
varA 12
varC 7
varB 3
varC 0
varA 26
varA 18
varC 14
C_vB5_vC7
C_vB5_vC14
but
Niveau 2 Niveau 3
NO_vA16
NO_vB5
NO_vA12
NO_vC7
NO_vB3
NO_vC0
D_vA22
D_vA16
D_vA12
A_vA22
A_vA16
A_vA12
B_vA22_vC7
B_vA22_vC0
B_vA16_vC7
B_vA16_vC0
NO_vA22
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
12
b) Réécriture du graphe : en partant du dernier niveau, on renomme chaque fluent en fi
et on numérote chaque action en j
3. Codage du graphe en WCSP
1. Introduction 2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
varA 16
varB 3
varC 0
D
NO_vA16
A_16
B_16
NO_vB3
NO_vC0
Niveau 0 Niveau 1
varA 22
varA 16
varB 5
varA 12
varC 7
varB 3
varC 0
varB 5
varC 7
varC 14
C_vB5_vC7
C_vB5_vC14
but
Niveau 2 Niveau 3
NO_vB5
NO_vC7
A_vA22
A_vA16
A_vA12
B_vA22_vC7
B_vA22_vC0
B_vA16_vC7
B_vA16_vC0
f1
1
2
f2
f3
f4
f5
f6
f7
f8
f9
f10
f11
f12
f13
f14
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
13
f2
f1
c) Création des variables et des domaines :
variables = fluents (sauf état initial)
domaines = actions produisant le fluent U {-1} sauf pour les buts
3. Codage du graphe en WCSP
f12
f13
f14
12
13
14
15
16
17
Niveau 0 Niveau 1
f5
f6
f7
f8
f9
f10
f11
f2
f3
f4
1
2
f1
Niveau 2 Niveau 3
3
4
5
6
7
8
9
10
11
1 2
6 73 5 -1 f3 11 -14 9 f4 -18 10
f5 12 -1 f6 13 -1 f7 14 -1 f8 15 -1 f9 15 -1 f10 16 -1 f11 17 -1
1. Introduction 2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
14
d) Traduction des mutex entre fluents :
Mutex(fi,fj) est traduit par ((fi=-1) ou (fj=-1))
3. Codage du graphe en WCSP
f12
f13
f14
12
13
14
15
16
17
Niveau 0 Niveau 1
f5
f7
f9
f10
f11
f2
f3
f4
1
2
f1
Niveau 2 Niveau 3
3
4
5
6
7
8
9
10
11
f2
f1 1 2
6 73 5 -1 f3 11 -14 9 f4 -18 10
f5 12 -1 f6 13 -1 f7 14 -1 f8 15 -1 f9 15 -1 f10 16 -1 f11 17 -1
1. Introduction 2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
f6
f8
15
e) Traduction des mutex entre actions :
Mutex(a,b) est traduit par ((fi=a) => (fj≠b)) avec i≠j, fi Є effet(a) et fj Є effet(b)
3. Codage du graphe en WCSP
1. Introduction 2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
f12
f13
f14
12
13
14
15
16
17
Niveau 0 Niveau 1
f5
f6
f7
f8
f9
f10
f11
f2
f3
f4
1
2
f1
Niveau 2 Niveau 3
3
4
5
6
7
8
9
10
11
f2
f1 1 2
6 73 5 -1 f3 11 -14 9 f4 -18 10
f5 12 -1 f6 13 -1 f7 14 -1 f8 15 -1 f9 15 -1 f10 16 -1 f11 17 -1
16
f) Traduction des arcs d’activité : l’activation d’un fluent fi produit par une action a entraine l’activation des préconditions de a : ((fi = a) => (fj ≠ -1)), fj Є prec(a)
3. Codage du graphe en WCSP
f12
f13
f14
12
13
14
15
16
17
Niveau 0 Niveau 1
f5
f7
f8
f9
f10
f11
f2
f3
f4
1
2
f1
Niveau 2 Niveau 3
3
4
5
6
7
8
9
10
11
f2
f1 1 2
6 73 5 -1 f3 11 -14 9 f4 -18 10
f5 12 -1 f6 13 -1 f7 14 -1 f8 15 -1 f9 15 -1 f10 16 -1 f11 17 -1
1. Introduction 2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
f6
17
g) Traduction du coût des actions : pour chaque action a de coût non nul, on ajoute la contrainte unaire valuée : fi≠a (cout(a))
3. Codage du graphe en WCSP
f12
f13
f14
12
13
14
15
16
17
Niveau 0 Niveau 1
f5
f7
f8
f9
f10
f11
f2
f3
f4
1
2
f1
Niveau 2 Niveau 3
3
4
5
6
7
8
9
10
11
f2
f1 1 2
6 73 5 -1 f3 11 -14 9 f4 -18 10
f5 12 -1 f6 13 -1 f7 14 -1 f8 15 -1 f9 15 -1 f10 16 -1 f11 17 -1
f6
1. Introduction2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
3
1010 10 5 5 5 5
30 10 5 5
3
18
h) Prise en compte des ajouts multiples : pour chaque action a qui produit plusieurs plusieurs fluents f i, on crée un fluent fiint de domaine {a,-1}. Les fi
sont reliés à une nouvelle action aint de coût nul. On ajoute la contrainte entre fiint et fi :
(fiint=-1) => (fi≠aint), fi Є add(a)
3. Codage du graphe en WCSP
1. Introduction 2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
f12
f13
f14
12
13
14
15
16
17
Niveau 0 Niveau 1
f5
f7
f8
f11
f2
f3
f4
1
2
f1
Niveau 2 Niveau 3
3
4
5
6
7
8
9
10
11
f2
f1 1 2
6 73 5 -1 f3 11 -14 9 f4 -18 10
f5 12 -1 f6 13 -1 f7 14 -1 f8 15 -1 f9 15 -1 f10 16 -1 f11 17 -1
f6
3
1010 10 5 5 5 5
30 10 5 5
3
f10
f9
f1int 15 -118 18
5
19
3. Codage du graphe en WCSP
f2
f1 1 2
6 73 5 -1 f3 11 -14 9 f4 -18 10
f5 12 -1 f6 13 -1 f7 14 -1 f8 -1 f9 -1 f10 16 -1 f11 17 -1
3
1010 10 5 5 5 5
30 10 5 5
3
f1int 15 -118 18
1. Introduction 2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
20
4. Propagation de contraintes valuées
1. Inoduction 2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
• Algorithme AC (Arc Consistency)– Permet simplifier le CSP– On supprime les valeurs des domaines n’ayant pas de support
avec une autre variable (pas d’affectation possible pour la valeur à supprimer et une autre variable du CSP)
• Algorithme FDAC (Full Directionnal Arc Consistency)– Permet de trouver une borne inférieure du coût de la solution par
application de AC puis par projection et extension des contraintes
– Réduit le champ d’exploration des algorithmes de recherche du type branch-and-bound
– Complexité polynomiale
21
4. Propagation de contraintes valuées
f2
f1 1 2
6 73 5 -1 f3 11 -14 9 f4 -18 10
f5 12 -1 f6 13 -1 f7 14 -1 f8 -1 f9 -1 f10 16 -1 f11 17 -1
3
1010 10 5 5 5 5
30 10 5 5
3
f1int 15 -118 18
1. Introduction 2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
55
55
8
22
4. Propagation de contraintes valuées
1. Introduction 2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
f2
f1 1 2
6 73 5 f3 11 -14 9 f4 -18 10
f5 12 -1 f6 13 -1 f7 14 -1 f8 -1 f9 -1 f10 16 -1 f11 17 -1
18
30
5
f1int 15 -118 18
18
5
55 5 5
10 10 1030 30 30 5 5 5
C=18
Solution : {f1←2, f2←3, f3←-1, f4←10,
f5←-1, f6←13, f7←14, f8←-1, f9←-1, f10←-1, f11←-1, f1int←-1}
Plan :<{A},{B},{C}> = <A,B,C>
Coût = 18
23
Temps CPU
0,001
0,01
0,1
1
10
100
1000B
WT
3
Dep
ots0
1
Mpr
ime0
3
Driv
erlo
g01
Sat
ellit
e01
Zen
otra
vel0
2
Rov
ers0
2
Logi
stic
s01
BW
T4
Mpr
ime0
1
Zen
otra
vel0
4
Sat
ellit
e02
Driv
erlo
g04
Driv
erlo
g04
BW
T5
Mpr
ime0
4
Driv
erlo
g05
Driv
erlo
g08
NC FDAC
1. Introduction 2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
Noeuds développés
1
10
100
1000
10000
100000
1000000
10000000
BW
T3
Dep
ots0
1
Mpr
ime0
3
Driv
erlo
g01
Sat
ellit
e01
Zen
otra
vel0
2
Rov
ers0
2
Logi
stic
s01
BW
T4
Mpr
ime0
1
Zen
otra
vel0
4
Sat
ellit
e02
Driv
erlo
g04
Driv
erlo
g04
BW
T5
Mpr
ime0
4
Driv
erlo
g05
Driv
erlo
g08
NC FDAC
5. Etude expérimentaleDescription des tests :
• Machine utilisée: AMD2500+ avec 512Mo de RAM
• Echelle logarithmique
• Problèmes classés par taille de l’espace de recherche
Résultats :
• gain moyen sur le nombre de nœuds développés: 17
• gain moyen sur le temps CPU: 7
• taille des WCSP résolus / WCSP aléatoires :
• 10221 / 1036
• 444 var / 40• 27 valeurs / 8
24
6. Conclusions et perspectives
1. Introduction 2. Construction d’un graphe
de planification numérique
3. Codage du graphe en WCSP4. Propagation de contraintes valuées
5. Etude expérimentale6. Conclusions et perspectives
• Travaux effectués :– Construction d’un graphe de planification
numérique– Utilisation des WCSP pour en extraire un plan-
solution optimal – Impact de l’algorithme de propagation de
contraintes FDAC sur la résolution du WCSP
• Perspectives :– Implémentation d’un GraphPlan avec coûts, puis
numérique– Comparaison de la qualité des plans avec ceux
produits par d’autres approches– Optimisation d’algorithmes WCSP