Journées Francophones Planification, Décision, Apprentissage RESOLUTION OPTIMALE D’UN GRAPHE DE PLANIFICATION NUMERIQUE A L’AIDE DE CSP PONDERES Martin Cooper Sylvain Cussat-Blanc Marie de Roquemaurel Cyril de Runz Pierre Régnier
Plan Introduction Construction d’un graphe de planification numérique Codage du graphe en WCSP Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
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 Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
Exemple : les vannes D B A varA varC varB Actions : C 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} C but Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
2. Construction d’un graphe de planification numérique Les interactions négatives entre actions a X X +a Y -a Y -a Del/Prec Del/Add X d:=b X d:=b X d:=b Y c+=d d<c Y Y d+=4 Modification/ Utilisation Modification/ Précondition Modification/ Modification Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
2. Construction d’un graphe de planification numérique Actions varA≥10 A varB:=5 varA 22 D 10 varA 16 varA>15 B varA-=4 varC+=7 NO_vA16 5 varA 16 +but varB-=5 varC-=7 varB 5 varB≥5 varC≥7 C A_16 3 varA 12 D varA+=6 varB 3 B_16 30 varC 7 NO_vB3 varB 3 varC 0 NO_vC0 varC 0 Niveau 0 Niveau 1 Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
2. Construction d’un graphe de planification numérique NO_vA22 NO_vA16 varA 22 varA 22 NO_vB5 varA 16 NO_vA12 varA 16 NO_vC7 varB 5 NO_vB3 varA 12 varB 5 NO_vC0 D_vA22 varC 7 varA 12 D_vA16 D_vA12 varB 3 varC 7 A_vA22 varC 0 A_vA16 varA 26 varB 3 A_vA12 B_vA22_vC7 varA 18 varC 0 B_vA22_vC0 varC 14 B_vA16_vC7 B_vA16_vC0 Niveau 1 Niveau 2 Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
2. Construction d’un graphe de planification numérique … … … varA 22 … … varA 16 … … varB 5 … C_vB5_vC7 varA 12 … … but varC 7 … … varB 3 C_vB5_vC14 … varC 0 … … varA 26 … … … varA 18 … … varC 14 Niveau 2 Niveau 3 Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
2. Construction d’un graphe de planification numérique NO_vA22 … NO_vA16 … NO_vB5 … … NO_vA12 varA 22 … … NO_vC7 varA 16 D … varA 22 NO_vB3 C_vB5_vC7 varB 5 … NO_vA16 NO_vC0 varA 16 varA 12 varA 16 … … D_vA22 A_16 varB 5 varC 7 but varB 3 D_vA16 varA 12 B_16 varB 3 … … D_vA12 varC 0 varC 7 varC 0 … NO_vB3 A_vA22 C_vB5_vC14 varB 3 varA 26 … A_vA16 NO_vC0 varC 0 varA 18 … … A_vA12 varC 14 … … B_vA22_vC7 … B_vA22_vC0 … B_vA16_vC7 B_vA16_vC0 Niveau 0 Niveau 1 Niveau 2 Niveau 3 Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
3. Codage du graphe en WCSP 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. Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
3. Codage du graphe en WCSP 8 é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 NO_vA22 … NO_vA16 … NO_vB5 … … NO_vA12 varA 22 … … NO_vC7 varA 16 D … varA 22 NO_vB3 C_vB5_vC7 varB 5 … NO_vA16 NO_vC0 varA 16 varA 12 varA 16 … … D_vA22 A_16 varB 5 varC 7 but varB 3 D_vA16 varA 12 varB 3 B_16 … … D_vA12 varC 0 varC 7 varC 0 … NO_vB3 A_vA22 varA 26 C_vB5_vC14 varB 3 … A_vA16 NO_vC0 varC 0 varA 18 … … A_vA12 varC 14 … … B_vA22_vC7 … B_vA22_vC0 … B_vA16_vC7 B_vA16_vC0 Niveau 0 Niveau 1 Niveau 2 Niveau 3 Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
3. Codage du graphe en WCSP b) Réécriture du graphe : en partant du dernier niveau, on renomme chaque fluent en fi et on numérote chaque action en j NO_vB5 3 NO_vC7 4 A_vA22 5 12 D varA 22 f5 varB 5 f2 13 NO_vA16 A_vA16 6 C_vB5_vC7 1 varA 16 f6 f12 varA 16 14 A_16 varB 5 f7 varB 3 f13 but f1 A_vA12 7 f3 varC 7 f8 varA 12 B_16 15 varC 0 f14 f9 varC 7 2 C_vB5_vC14 NO_vB3 16 B_vA22_vC7 8 f10 varB 3 f4 varC 14 NO_vC0 17 f11 varC 0 B_vA22_vC0 9 B_vA16_vC7 10 B_vA16_vC0 11 Niveau 0 Niveau 1 Niveau 2 Niveau 3 Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
3. Codage du graphe en WCSP 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 4 12 f5 5 f2 13 f12 f6 6 1 14 f7 f13 7 f3 f1 15 f8 f14 2 f9 8 16 f10 9 f4 17 f11 10 11 Niveau 0 Niveau 1 Niveau 2 Niveau 3 f1 1 2 f2 f3 f4 3 5 6 7 -1 4 9 11 -1 8 10 -1 f5 f6 f7 f8 f9 f10 f11 12 -1 13 -1 14 -1 15 -1 15 -1 16 -1 17 -1 Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
3. Codage du graphe en WCSP d) Traduction des mutex entre fluents : Mutex(fi,fj) est traduit par ((fi=-1) ou (fj=-1)) 3 4 12 f5 5 f2 13 f12 f6 6 1 14 f7 f13 7 f3 f1 15 f8 f14 2 f9 8 16 f10 9 f4 17 f11 10 11 Niveau 0 Niveau 1 Niveau 2 Niveau 3 f1 1 2 f2 f3 f4 3 5 6 7 -1 4 9 11 -1 8 10 -1 f5 f6 f7 f8 f9 f10 f11 12 -1 13 -1 14 -1 15 -1 15 -1 16 -1 17 -1 Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
3. Codage du graphe en WCSP 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 4 12 f5 5 f2 13 f12 f6 6 1 14 f7 f13 7 f3 f1 15 f8 f14 2 f9 8 16 f10 9 f4 17 f11 10 11 Niveau 0 Niveau 1 Niveau 2 Niveau 3 f1 1 2 f2 f3 f4 3 5 6 7 -1 4 9 11 -1 8 10 -1 f5 f6 f7 f8 f9 f10 f11 12 -1 13 -1 14 -1 15 -1 15 -1 16 -1 17 -1 Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
3. Codage du graphe en WCSP 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 4 12 f5 5 f2 13 f12 f6 6 1 14 f7 f13 7 f3 f1 15 f8 f14 2 f9 8 16 f10 9 f4 17 f11 10 11 Niveau 0 Niveau 1 Niveau 2 Niveau 3 f1 1 2 f2 f3 f4 3 5 6 7 -1 4 9 11 -1 8 10 -1 f5 f6 f7 f8 f9 f10 f11 12 -1 13 -1 14 -1 15 -1 15 -1 16 -1 17 -1 Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
3. Codage du graphe en WCSP 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 4 12 f5 5 f2 13 f12 f6 6 1 14 f7 f13 7 f3 f1 15 f8 f14 2 f9 8 16 f10 9 f4 17 f11 10 11 Niveau 0 Niveau 1 Niveau 2 Niveau 3 3 3 f1 1 2 10 10 10 5 5 5 5 f2 f3 f4 3 5 6 7 -1 4 9 11 -1 8 10 -1 30 10 5 5 f5 f6 f7 f8 f9 f10 f11 12 -1 13 -1 14 -1 15 -1 15 -1 16 -1 17 -1 Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
3. Codage du graphe en WCSP h) Prise en compte des ajouts multiples : pour chaque action a qui produit plusieurs plusieurs fluents fi, 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 4 12 f5 5 f2 13 f12 f6 6 1 14 f7 f13 7 f3 f1 15 f8 f14 2 f9 8 16 f10 9 f4 17 f11 10 11 Niveau 0 Niveau 1 Niveau 2 Niveau 3 3 3 f1 1 2 10 10 10 5 5 5 5 f2 f3 f4 3 5 6 7 -1 4 9 11 -1 8 10 -1 30 10 5 5 5 f5 f6 f7 f8 f9 f10 f11 f1int 12 -1 13 -1 14 -1 18 15 -1 15 18 -1 16 -1 17 -1 15 -1 Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
3. Codage du graphe en WCSP f1 1 2 10 10 10 5 5 5 5 f2 f3 f4 3 5 6 7 -1 4 9 11 -1 8 10 -1 30 10 5 5 f5 f6 f7 f8 f9 f10 f11 f1int 12 -1 13 -1 14 -1 18 -1 18 -1 16 -1 17 -1 15 -1 Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
4. Propagation de contraintes valuées 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 Inoduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
4. Propagation de contraintes valuées 3 3 8 f1 1 2 5 5 5 5 10 10 10 5 5 5 5 f2 f3 f4 3 5 6 7 -1 4 9 11 -1 8 10 -1 30 10 5 5 f5 f6 f7 f8 f9 f10 f11 f1int 12 -1 13 -1 14 -1 18 -1 18 -1 16 -1 17 -1 15 -1 Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
4. Propagation de contraintes valuées 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 18 18 f1 1 2 C=18 5 5 5 5 5 30 f2 f3 f4 3 5 6 7 4 9 11 -1 8 10 -1 30 30 30 10 10 10 5 5 5 5 f5 f6 f7 f8 f9 18 18 f10 f11 f1int 12 -1 13 -1 14 -1 -1 -1 16 -1 17 -1 15 -1 Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
5. Etude expérimentale Description 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 Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives
6. 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 Introduction Construction d’un graphe de planification numérique 3. Codage du graphe en WCSP 4. Propagation de contraintes valuées Etude expérimentale Conclusions et perspectives