Vous êtes sur la page 1sur 25

Intelligence Artificielle NFP106 Anne 2011-2012

Plan
! Classification des problmes ! Mthodes peu informes ! ! ! ! Mthodes heuristiques: A*, AO*, !" Satisfaction de contraintes Modlisation des actions Analyse des buts et des moyens : GPS

Mthodes de Rsolution des Problmes


F.-Y. Villemin (f-yv@cnam.fr)
http://deptinfo.cnam.fr

(avec un exemple de F. Kabanza, Universit de Sherbrooke

F.-Y. Villemin 2010"

2"

Classification des problmes


Problmes : ! dcomposables " diviser et conqurir ! non dcomposables " solutions approximatives Etapes de rsolution : ! ignorables ! inversibles ! non inversibles Espace des consquences : ! certain ! non certain, avec probabilits ! non certain, sans probabilits
F.-Y. Villemin 2010" 3"

Classification des problmes


Nature des connaissances : ! pour qualifier la solution (obligatoire) ! pour guider la recherche (sinon recherche aveugle) ! pour rduire l'espace de recherche Solution : ! absolue ! relative (en gnral " connaissances de qualification) Informations : ! contenues dans le problme ! en conversationnel

F.-Y. Villemin 2010"

4"

Problmes dcomposables
ou et

Problme dcomposable en arbre ET/OU

et/ou

F.-Y. Villemin 2010"

5"

F.-Y. Villemin 2010"

6"

Classification des connaissances


Newell dnonce la confusion entre niveau langage d'implantation et niveau cognitif et distingue 2 niveaux!: ! niveau connaissance ! niveau implantation (ou reprsentation) Au niveau connaissance, les connaissances peuvent tre vues sous trois aspects : ! pistmique ! fonctionnel ! heuristique
F.-Y. Villemin 2010" 7"

Classification des connaissances


Aspect pistmique des connaissances :
! ! ! Connaissances rationnelles (non rvisables) Connaissances traditionnelles (rvisables ventuellement) Connaissances empiriques (rvisables)

Aspect fonctionnel des connaissances :


!

Connaissances passives (ou assertionnelles) : Faits et donnes du domaine, du problme ! Connaissances actives (ou infrentielles) : Rgles ou quations, permettent la gnration d'autres connaissances (assertionnelles) ! Connaissances stratgiques (ou mta-connaissances, ou contrle) : Raisonnement de l'expert, manire d'utiliser les connaissances actives et passives

F.-Y. Villemin 2010"

8"

Classification des connaissances


Exemples de connaissances passives :
! ! g=9,81m/s2 Paris Le diamant est cher

Classification des connaissances


ASSOCIATION HEURISTIQUE [CLANCEY 83] Donnes abstraites Abstraction des donnes Donnes relles
HEURISTIQUE Infection Gnralisation Immunodprim Gnralisation Leucopnie Dfinition nb GB bas Qualification Infection Gram. neg. Sous type Infection E. Coli

Solutions abstraites Affinage Solutions concrtes

Exemples de connaissances actives :


! ! Les rgles d'une grammaire Les lois de l'lectricit (Kirchoff, Ohm, ...)..

Exemples de connaissances stratgiques :


! ! ! Stratgie d'analyse de pannes Stratgie de reconnaissance de mots partir de phonmes Stratgie de rsolution d inquations : "Si un systme numrique contient des ingalits alors il faut les transformer en galits en introduisant des variables auxiliaires"

MYCIN

F.-Y. Villemin 2010"

9"

F.-Y. Villemin 2010"

nb GB < 2500

10"

Arbres de recherche
Recherche en profondeur d abord
1 2 6 3 4 5 7

Gnrer et tester
Connaissances minimales : ! gnration de l'espace de recherche ! qualification de la solution Recherche en profondeur d abord :
!

Recherche en largeur d abord


1 4 5 2 3

Recherche mixte ou branch & bound


1 3 5
F.-Y. Villemin 2010"

Dbut! !Gnrer une proposition (de solution);! !Tant que proposition solution faire! ! !Gnrer une proposition! !fait! Fin! Avantage : rapidit Inconvnient : pas d assurance de trouver une solution

4
11" F.-Y. Villemin 2010" 12"

Recherche ascendante ( hill climbing )


Amlioration de gnrer et tester : ! connaissance d action pour converger vers la solution Dbut! !Gnrer une proposition (de solution);! !meilleure proposition = proposition;! !Tant que proposition solution faire! ! si proposition meilleure proposition! ! !alors meilleure proposition := proposition! is;! ! proposition = application des rgles(meilleure! proposition);! !fait! Fin! Avantage : plus d assurance de trouver une solution Inconvnient : sommets locaux, crtes, plateaux " moyens de dtection et remdes
F.-Y. Villemin 2010" 13"

Recherches heuristiques
Amlioration du "branch & bound" Gnration de l'espace de recherche!!!espace des consquences certain Connaissances pour qualifier la solution!!!solution absolue Informations pour rsoudre le problme: # soit contenues dans le problme : Problmes solitaires !!pour les arbres OU : ! algorithme A* !!pour les arbres ET/OU : ! algorithme AO* # fournies par l utilisateur : jeux 2 ou N personnes " arbres ET/OU (alterns par niveau): !! algorithmes MIN-MAX, #-$ Connaissances pour guider la recherche!!! Heuristiques (numriques/qualitatives)

F.-Y. Villemin 2010"

14"

Algorithme A*
Algorithme A* du Hart, Nilsson & Raphael (1968-1972) Jeux une personne sur un arbre OU Mthodes de recherche ordonne du chemin de cot minimal entre un nud initial et un but Exemple : jeu du taquin " 181 440 tats ! recherche de la meilleure solution en premier Heuristique : minimiser F(E) = L + MP avec ! E= tat courant ! L= longueur du chemin de l tat initial E ! MP= le nombre de carrs mal placs par rapport la configuration finale (en ignorant la case vide)

Algorithme A*
Taquin : 1 + 5
(Ackerman)

2 8 3 1 6 4 7 5 1+3 2 8 3 1 4 7 6 5 1+5 2 8 3 1 6 4 7 5

2+4 2 8 3 1 4 7 6 5 2+3 2 3 1 8 4 7 6 5 2+3 2 8 3 1 4 7 6 5

3+4 2 3 1 8 4 7 6 5 3+2 2 3 1 8 4 7 6 5 3+4 2 8 3 7 1 4 6 5 3+3 8 3 2 1 4 7 6 5 5+2 1 2 3 7 8 4 5 6 5

0+4 2 8 3 1 6 4 7 5

4+1 1 2 3 8 4 7 6 5

5+0 1 2 3 8 4 7 6 5 BUT

F.-Y. Villemin 2010"

15"

F.-Y. Villemin 2010"

16"

Fonctions heuristiques
Fonctions valuant chaque tat de l'espace de recherche en fonction de la distance : ! de l'tat actuel la solution ! de l'tat actuel l'tat initial
!

Fonctions heuristiques
g*(n) = cot du chemin de la racine n h*(n) = cot du chemin de n la meilleure solution f*(n) = g*(n) + h*(n) f*(n) = estimation du cot du chemin de racine meilleure solution passant par n g(n) = cot du chemin minimal de la racine n (calcul) h(n) = estimation statique du cot du chemin de n la meilleure solution f(n) = g(n) + h(n)
RACINE

f : {tat} ! R+! f*(n) = cot de la meilleure solution passant par n (chemin racine solution de moindre cot) % %!!!f*(n) est minimal

NOEUD N SOLUTION

F.-Y. Villemin 2010"

17"

F.-Y. Villemin 2010"

18"

Fonctions heuristiques
Fonction h admissible si A* donne meilleure solution en premier Fonction h minorante si &n h(n) " h*(n) Thorme (Hart, Nilsson & Raphael) Si h est minorante alors h est admissible A* est en O(n2), n nombre d tats Fonction h concidente si h(solution) = 0 Fonction h monotone si &s !&n avec s un successeur de n, h(n) - h(s) " cot du chemin de n s Thorme (Martelli & Montanari) Si h est concidente et monotone alors h est admissible A* est en O(n), n nombre d tats

Algorithme A*
Dbut! G(racine):=0; solution:= faux; FERME:=; OUVERT:= {racine};! /* OUVERT est la liste des feuilles considrer tries suivant f*/! Tantque solution & OUVERT faire! Choisir n parmi les plus rcents avec f minimale dans OUVERT; ! Retirer n de OUVERT; ! Mettre n dans FERME;! Si Tester-solution (n) alors solution:= vrai! Sinon si n sans successeur alors dvelopper n ! n1, n2,,np;! Pour tout i=1 p faire valuer f(ni);! ! !Casde ni ' OUVERT & f(ni) < f'(ni) dans OUVERT : ! ! !Remplacer ni par le dernier produit avec f(ni);! ! ! ni ' FERME : ajouter ni OUVERT ! ! !Fincas! Fait! Is! Is! Fait;! Si solution alors imprimer "branche racine--n" sinon imprimer "chec" is! Fin!
F.-Y. Villemin 2010" 20"

F.-Y. Villemin 2010"

19"

Fonctionnement de l'algorithme A* sur le jeu de taquin (Nilsson)

Algorithme AO*
Adaptation par Martelli & Montanari (1972) de A* aux jeux une personne sur arbre ET/OU (ou hypergraphe acyclique orient et fini) Solution: sous-hypergraphe Soit contenant des nuds terminaux Soit dont tous les nuds frontires sont terminaux %! recherche de la meilleure solution (soushypergraphe de moindre cot) en premier Mthodes de recherche ordonne du sous-hypergraphe de cot minimal entre le noeud initial et les buts

F.-Y. Villemin 2010"

21"

F.-Y. Villemin 2010"

22"

Algorithme AO*
f*(n) = g*(n) + h*(n) f*(n) = cot d'une meilleure solution contenant n g*(n) = cot du sous-hypergraphe de la racine contenant n h*(n) = cot du sous-hypergraphe de n contenant la meilleure solution % %! Connecteurs ET ont un cot f(G) = valuation hypergraphe G construit par ajout arc s-xi hypergraphe H g(H) = cot de H S nud frontire de H Xi ' {x1 x2 xn} successeurs de s Si s nud OU :!!!f(G) = g(H) + cot(s, xi) + h(xi) Si s nud ET (de cot n) :!!f(G) = g(H) + cot(s, x1) ++cot(s, xn) + n + h(xi)
F.-Y. Villemin 2010" 23"

Algorithme AO*
f heuristique f!:!{tat}!!!R+ f(n) = estimation cot meilleure solution (sous-hypergraphe) contenant n f(n) = g(n) + h(n) g(n) = cot construction du sous-hypergraphe minimal racine contenant n (calcul) h(n) = estimation statique du cot du sous-hypergraphe de n donnant meilleure solution (h estimation priori de h*) h admissible si AO* donne meilleure solution en premier h minorante si & n h(n) " h*(n) h monotone si & s & x, s un successeur de x, h(s) -h(x) " cot du sous-hypergraphe de x s Thorme (Martelli & Montanari) Si h est concidente et monotone alors h est admissible et AO* donne la meilleure solution en O(n2), n nombre d tats

F.-Y. Villemin 2010"

24"

Algorithme AO*
Dbut! G(racine):=0; solution:= faux; HYPER:= {racine};! /* HYPER est la liste des hypergraphes considrer tris suivant f*/! Tantque solution & HYPER faire! Choisir H(n) avec f minimale dans HYPER; retirer H(n) de HYPER! /* n est la feuille de H(n) telle que f(n) = g(H(n)) + h(n) */! Si Tester-solution H(n) alors solution:= vrai! Sinon si (n ' {terminaux} ou n sans successeur) alors ! Dvelopper n!n1, n2,,np; /* p hypergraphes crs */! Si n nud OU alors! Pour tout i=1 p faire construire H(ni); valuer H(ni);! Ajouter H(ni) dans HYPER fait! Sinon construire H(n1& n2&&np); /* n nud ET */ ! Pour tout i=1 p faire valuer H(n1& n2&&np) ni; ! !ajouter H(n1& n2&&np) et f(ni) dans HYPER fait! Is;! Is;! Is;! Fait;! Si solution alors imprimer H(n) sinon imprimer "chec" is! Fin!
F.-Y. Villemin 2010" 25"

Exemple
(R. Marcus An application of AI to OR CACM v 27 n 10, 1984)

! Problme d ordonnancement ! Modification : !!connecteur ET a un cot de 1 ! Fonction h: ! minimum des valeurs des arcs quittant le nud

F.-Y. Villemin 2010"

26"

Exemple
Estimations des nuds: h(deb)=3 h(A)=7 h(D)=5 h(E)=1 h(B)=9 h(F)=2 h(C)=3 h(fin)=0

Min-Max
Problmes conversationnels ou jeu deux personnes " arbre ET/OU altern par niveau:
JOUEUR

Le sous-hypergraphe retourn par AO* a un cot de 16


ADVERSAIRE

niveau 1

deb 3 3 C
F.-Y. Villemin 2010"

E 1 F 2

fin
JOUEUR

1 6

niveau 2 niveau 3
28"

ADVERSAIRE
27" F.-Y. Villemin 2010"

Min-Max
Exemple (Nilsson): jeu de Tic-Tac-Toe e(p) = - # si la position p est perdante pour le joueur MAX e(p) =!!# si la position p est gagnante pour le joueur MAX Sinon pour toute autre position e(p) = (nombre de lignes, de colonnes et diagonales ouverts pour le joueur MAX) - (nombre de lignes, de colonnes et diagonales ouverts pour le joueur MIN)

Min-Max
Fonction heuristique f : {tat} ! R f(joueur) = - f(adversaire)
Fonction (statique) valuant chaque feuille de l arbre de recherche au niveau N, estimation de l intrt de la feuille pour le joueur : + # = situation gagnante - # = situation perdante > 0 = situation favorable 0 < = situation dfavorable Min-Max de C.Shannon (1950) : arbre dvelopp au niveau N; feuilles values;! TANT QUE la racine n est pas value FAIRE! ! nud niveau pair (joueur) MAX des valeurs des fils! ! nud niveau impair (adversaire) MIN des valeurs des fils! FAIT;! coup jou = nud de niveau 1 de mme valuation que racine!
29" F.-Y. Villemin 2010" 30"

joueur MAX joueur MIN e(p) = 6 - 4 =2

F.-Y. Villemin 2010"

Min-Max

Min-Max

niveaux
niveaux

MAX

0 n valeur remonte

" # !
3 2 -2 4 -4 1 -3 -1 -4 -4 -2 0 -2 4 -2 1 0 -3 -4 -3 -2 1 2 -2 2 1 -2

MAX
3
3 2

MIN

-1 4 -1
1 -3 -1 -4 -4

0 0
-2 0 -2

-2 1
-2 1 0 -3 -4

4
4

-2
-3 -2 1

2
2 -2 2

2
1 -2

-2

-4

F.-Y. Villemin 2010"

31"

F.-Y. Villemin 2010"

32"

Min-Max
Arbre de dveloppement et valeurs remontes (Nilsson)

Min-Max

La valeur remonte aprs dveloppement de l'arbre est diffrente de l'heuristique (1 au lieu de 2)


F.-Y. Villemin 2010" 33" F.-Y. Villemin 2010" 34"

Alpha-Bta
Amlioration du MIN-MAX par J. Mc Carthy (1957)
Principe : conjonction value jusqu au premier faux disjonction value jusqu au premier vrai

Alpha-Bta
! = 10
10

Application : Soit nud est MAX, on cherche une valeur > N valeur remonte P, P " N ! arrt Soit nud est MIN, on cherche une valeur < N valeur remonte P, P $ N ! arrt % %! procdure branch & bound nuds MAX: valeur # = (MAX des fils) ! ne diminue jamais nuds MIN: valeur $ = (MIN des fils) ! n augmente jamais
F.-Y. Villemin 2010" 35"

" = 10 ! = 10 " = 10
10 10

10 11

10 5 11 9 12 9

9 9

12 9

11

11

F.-Y. Villemin 2010"

36"

Alpha-Bta (Fishburn 83)


procdure alpha-bta (in niveau : entier, pos : position, suite : chemin, inex alpha, bta : rel, ex meilleur-valeur : rel);! dbut! var : valeur : rel, asuivre : chemin, pi : position;! si niveau = n alors meilleur-valeur := valuation(pos) is;! si niveau = 0 alors alpha := - ; bta := + ! sinon pour tout pi fils de pos faire valeur := alpha-bta (alpha, bta, niveau + 1, pi, asuivre);! si pair (niveau) alors /* niveau pair */! ! !si (valeur > meilleur-valeur) alors meilleurvaleur = valeur; !suite = cons( pi, asuivre);! ! !si (valeur > alpha) alors alpha = valeur is is! ! ! sinon /* niveau impair */! ! ! si (valeur < meilleur-valeur) alors meilleurvaleur = ! !valeur; suite = cons(pi, asuivre);! ! ! ! si (valeur < bta) alors bta = valeur is is ! ! ! !is; ! ! ! !/* lagage */ !! ! ! si (alpha >= bta) alors chappement avec ! ! ! !meilleur-valeur := valeur is ! fait! si pair (niveau) alors alpha := meilleur-valeur sinon bta := meilleur-valeur is ! F.-Y. Villemin 2010" 37" fin!

Alpha-Bta
Fonctionnement de l'algorithme de Fishburn :
!= -1 !=0 resultat= 0 "<! "= -1 "=3 !0=3
3 2

"<!1 !2= -1
-3 -1 -4

"<!4 "1=0 !5=1 !4=4


0 -2 4 1

"<!5 !6= -2
-4 -3 -2

"= -2 "= -1

!1=4
-2 4

!3=0
-4 -2

F.-Y. Villemin 2010"

38"

Satisfaction de contraintes
Problme : S E N D + M O R E --------------------------M O N E Y

Satisfaction de contraintes
Solution C4 = M et C4 ' [0 .. 1] et M % 0 % %! M = C4 = 1 C3 + S + M = 10 * C4 + O D'o C3 + S + 1 = 10 + O S % 0 et S % 1 donc S ' [2 .. 9] O % 1 donc O ' [0, 2 .. 9] C3 ' [0 D'o: Ou Ou bien Ou D'o Ou .. 1] C3 = 0 ! S + 1 = 10 + O C3 = 1 ! S + 2 = 10 + O C3 = 0 ! S = 9 + O C3 = 1 ! S = 8 + O et O % 1 O = 0 et C3 = 0 et S = 9 C3 = 1 et S = 8

Contraintes : 2 lettres n'ont pas la mme valeur les lois de l'arithmtique les lettres initiales ne valent pas C4 C3 C2 C1 S E N D + M O R E --------------------------M O N E Y
Etat initial du problme : S, M, N, R, D, Y, E, O ' [0 .. 9] S % M % C1, C2, C3, C4 ' [0 .. 1]
F.-Y. Villemin 2010" 39"

F.-Y. Villemin 2010"

40"

Satisfaction de contraintes
Arbre de propagation des contraintes

Algorithme de Waltz
Problme: Reconnatre des figures (tridriques) 3D partir de contours (fils de fer) en 2D

M = 1 & C4 = 1

C3 = 1 & S = 8 & O = 0

C3 = 0 & S = 9 & O = 0

C3=1 & S=8 & O=0 & C2=1 & E=9+N

C3=1 & S=8 & O=0 & C2=0 & E = 10 + N

C3=0 & S=9 & O=0 & C2=1 & 1+E=N

C3=0 & S=9 & O=0 & C2=0 & E=N

impossible, car N!0 impossible, car valeur de E>10

impossible, car E!N

figure non admise (ambigu)


F.-Y. Villemin 2010"

figure reconnaissable
42"

F.-Y. Villemin 2010"

41"

Algorithme de Waltz
4 types de nuds (sommets) :
+ L2

Algorithme de Waltz
Sommets possibles : 6 L 4 T 3 flches 3 toiles
L1 L3 L4 + L5 L6

flche

toile

+ T1

T2 + F2 + F3 + T3 + + E1 + T4 E2 E3

Principe du marquage!: ( la matire est droite de la flche + arte saillante - arte en creux
F.-Y. Villemin 2010" 43"

+ F1

F.-Y. Villemin 2010"

44"

Algorithme de Waltz
Algorithme d'tiquetage de D. Waltz (1975)!
Dbut ! Marquer le contour par une flche de telle manire que !la matire soit droite de la flche; ! Tant que tout sommet n'a pas t examin faire! Pendre un des sommets les plus contraints;! /* plus contraint ou avec moins de choix de marques */! Propager la ou les marques;! Vrifier la compatibilit des marques; ! Eliminer les marques incompatibles deux deux;! Si une arte ne peut tre marque ! /* ensemble des marques vide */! Alors Sortie avec chec! Sinon Marquer l'arte avec l'ensemble des marques! Is! Fait! Fin!
F.-Y. Villemin 2010" 45"

Algorithme de Waltz

Le contour est tiquet


L6 + E1 + +

Les nuds sont identifis


F.-Y. Villemin 2010"

Les marques sont propages


46"

Satisfaction de contraintes
Problme: Soient n variables X1,, Xn valeur (respectivement) dans domaines D1,, Dn Trouver un ensemble d affectations pour les variables {Xi!:!ai }1 " i " n satisfaisant un ensemble de m contraintes {Cj (Xi1,, Xik) } 1" j " m Contrainte k-aire ! k variables : Cj (Xi1,, Xik) Contrainte k-aire valuable, k variables affectes !!{vrai, faux} Contrainte k-aire satisfaite Cj (Xi1,, Xik) = vrai Thorme (Rossi, Petrie & Dhar 90): Pour tout ensemble S de contraintes i-aire (i $ 2) il existe un ensemble S de contraintes binaires (i = 2) qui est quivalent (S quivalent S : {Xi!:!ai } satisfait S si et seulement si {Xi!:!ai } satisfait S)

Satisfaction de contraintes
Types de problmes : ! CSP avec des domaines finis (et discrets) ! CSP Boolens: les variables sont vraies ou fausses. ! CSP avec des domaines continus (et infinis) #Par exemple, problmes dordonnancement avec des contraintes sur les dures ! CSP avec des contraintes linaires ! CSP avec des contraintes non linaires !

F.-Y. Villemin 2010"

47"

F.-Y. Villemin 2010"

48"

Satisfaction de contraintes
Exemple: Un problme avec 5 variables et 8 contraintes (binaires) Ck(Xi, Xj) = {(ai, bj) | ai ' Di et bj ' Dj}

Satisfaction de contraintes
Dfinitions : Variable courante: Xi celle que l on cherche affecter !!domaine courant Di Variables anciennes (dj affectes) : {Xk!:!ak} 1 " k < i-1 !!domaines anciens Variables futures ( affecter) : {Xk} i+1 < k " n !!domaines futurs
!

C5(X2, X4) X1 C3(X1, X4) C2(X1, X3) C1(X1, X2) X3 C8(X4, X5) X4

C7(X3, X5)

C4(X2, X3) X2
F.-Y. Villemin 2010"

C6(X2, X5)

X5
49"

Procdure vrifier (i, j);! Dbut! Si ) contrainte entre Xi et Xj alors vrai ! Sinon si Xi:ai * Xj:bj alors * Ck (ai, bj) is! /* {Ck (Xi, Xj)} ensemble des contraintes entre Xi et Xj */! Is! Fin! Etiquetage: satisfaction ' {vrai, faux}!
F.-Y. Villemin 2010" 50"

Satisfaction de contraintes
Procdure CSP;! Dbut ! !! Satisfaction := vrai; solution := faux; i := 1; ! !! Tant que 1 i n faire ! ! !! Si satisfaction alors i := tiqueter (i,satisfaction)! Sinon i := d-tiqueter (i, satisfaction) Is;! Fait;! Si i > n alors solution := vrai is;! Si i = 0 alors sortie avec chec is! Fin Backtracking chronologique: premire variable ancienne " Profondeur d abord !!complexit exponentielle Amlioration en examinant variables anciennes et futures (Forward-checking) Backjumping: mmorisation des valeurs des variables anciennes non satisfaisantes conflit et saut la variable la plus ancienne en conflit avec la variable courante
F.-Y. Villemin 2010" 51" F.-Y. Villemin 2010"

Backjumping
X1 X2 X3 X4 X5 X6 X7 Futur
52"

Pass

variable courante

Forward-checking
X1 X2 X3 X4 X5 X6 X7
F.-Y. Villemin 2010"

Colorier une carte


On vous donne une carte de lAustralie (F. Kabanza) :

Pass

variable courante Futur


53"

Et on vous demande dutiliser seulement trois couleurs (rouge, vert et bleu) de sorte que deux tats frontaliers naient jamais les mmes couleurs On peut facilement trouver une solution ce problme en le formulant comme un problme CSP et en utilisant des algorithmes gnraux pour CSP

F.-Y. Villemin 2010"

54"

Colorier une carte


Formulation du problme CSP :

Colorier une carte


Solution :

Les variables sont les tats : V = { WA, NT, Q, NSW, V, SA, T } Le domaine de chaque variable est lensemble des trois couleurs : {R, G, B} Contraintes : Les rgions frontalires doivent avoir des couleurs diffrentes : ! WA%NT, , NT%Q,
F.-Y. Villemin 2010" 55"

{WA = R, NT = G, Q = R, NSW = G, V = R, SA = B, T = G}!

F.-Y. Villemin 2010"

56"

Graphe de contraintes
Pour des problmes avec des contraintes binaires (c--d., entre deux variables), on peut visualiser le problme CSP par un graphe de contraintes. Un graphe de contraintes est un graphe dont les nuds sont des variables (un nud par variable) et les arcs sont des contraintes entre deux variables.
WA+NT! NT+Q! NT+SA! Q+NSW! Q+SA! WA+SA! SA+NSW! NSW+V! SA+V!

backtracking-search

F.-Y. Villemin 2010"

57"

F.-Y. Villemin 2010"

58"

backtracking-search

backtracking-search

F.-Y. Villemin 2010"

59"

F.-Y. Villemin 2010"

60"

backtracking-search

Ordre daffectation des variables


chaque tape, choisir la variable avec le moins de valeurs consistantes restantes.

Illustration:

F.-Y. Villemin 2010"

61"

F.-Y. Villemin 2010"

62"

Ordre daffectation des variables


Si le critre prcdent donnent des variables avec le mme nombre de valeurs consistants restantes :
! Choisir celle ayant le plus de contraintes impliquant des variables non encore affectes :

Ordre daffectation des variables


Pour une variable donne, choisir une valeur qui invalident le moins de valeurs possibles pour les variables non encore affectes

Laisse une seule valeur pour SA Ne laisse aucune seule valeur pour SA

Ces heuristiques permettent de rsoudre un problme de 1000 reines

F.-Y. Villemin 2010"

63"

F.-Y. Villemin 2010"

64"

Algorithme Forward checking


Lide de lalgorithme forward-checking (vrification anticipative) est de :
! Vrifier les valeurs consistantes des variables non encore affectes ! Terminer la rcursivit lorsquune variable (non encore affecte) son ensemble de valeurs consistantes qui devient vide

Algorithme Forward checking


Lide de lalgorithme forward-checking (vrification anticipative) est de :
! Vrifier les valeurs consistantes des variables non encore affectes ! Terminer la rcursivit lorsquune variable (non encore affecte) a son ensemble de valeurs consistantes qui devient vide
WA NT SA V T Q NSW

F.-Y. Villemin 2010"

65"

F.-Y. Villemin 2010"

66"

Algorithme Forward checking


Lide de lalgorithme forward-checking (vrification anticipative) est de:
! Vrifier les valeurs consistantes des variables non encore affectes ! Terminer la rcursivit lorsquune variable (non encore affecte) a son ensemble de valeurs consistantes qui devient vide
WA NT SA V T Q NSW

Algorithme Forward checking


Lide de lalgorithme forward-checking (vrification anticipative) est de :
! Vrifier les valeurs consistantes des variables non encore affectes ! Terminer la rcursivit lorsquune variable (non encore affecte) a son ensemble de valeurs consistantes qui devient vide
WA NT SA V T Q NSW

F.-Y. Villemin 2010"

67"

F.-Y. Villemin 2010"

68"

Propagation de contraintes
Forward checking propage linformation des variables affectes vers les variables non affectes, mais ne dtecte pas les conflits locaux entre variables :
WA NT SA V T Q NSW

Arc consistency
Arc consistency est la forme de propagation de contraintes la plus simple
! Vrifie la consistance entre les arcs ! C--d., la consistance des contraintes entre deux variables

Larc X "Y est consistant si et seulement si pour chaque valeur x de X il existe au moins une valeur permise de y

NT et SA ne peuvent pas tre en bleu ensemble! La propagation des contraintes permet de vrifier les contraintes localement.
F.-Y. Villemin 2010" 69" F.-Y. Villemin 2010"

WA

NT SA

Q NSW V T
70"

Arc consistency
Arc consistency est la forme de propagation de contraintes la plus simple
! Vrifie la consistance entre les arcs ! C--d., la consistance des contraintes entre deux variables Larc X "Y est consistant si et seulement si pour chaque valeur x de X il existe au moins une valeur permise de y

Arc consistency
Arc consistency est la forme de propagation de contraintes la plus simple
! Vrifie la consistance entre les arcs ! C--d., la consistance des contraintes entre deux variables Larc X "Y est consistant si et seulement si pour chaque valeur x de X il existe au moins une valeur y de Y

! consistante avec x

WA

NT SA

Q NSW V T WA NT SA Q NSW V T
71" F.-Y. Villemin 2010" 72"

Si une variable perd une valeur, ses voisins doivent tre revrifis
F.-Y. Villemin 2010"

Arc consistency
Arc consistency est la forme de propagation de contraintes la plus simple
! Vrifie la consistance entre les arcs ! C--d., la consistance des contraintes entre deux variables Larc X "Y est consistant si et seulement si pour chaque valeur x de X il existe au moins une valeur permise de y

Algorithme de Prosser
Backjumping + forward-checking ! performance (plusieurs ordres de magnitude) suprieure au backtracking chronologique Fonction vrifier-avant (i, j): boolen; !/* Xi variable future */! Dbut! Rduction := ; !/* rduction est une liste */! Pour tout lment di ' domaine courant Di faire! Si vrifier(i, j) alors mettre di dans rduction is! Fait;! Si rduction alors Di := Di , rduction;! Mettre Xi dans var-future(j);! Mettre Xj dans var-ancienne(i);! Rduction(i) := cons(rduction, rduction(i))! Is;! Vrifier-avant(i, j) := Di ! Fin!

WA

NT SA

Q NSW V T
73"

F.-Y. Villemin 2010"

F.-Y. Villemin 2010"

74"

Algorithme de Prosser
Procdure d-reduire(i);! /* Xj variable courante */! Dbut! Pour tout lment di ' Di de var-future(i) faire! Retirer rduction de rduction(i);! Di := Di - rduction;! Retirer Xi de var-future(j)! Fait;! Var-future(i) := ! Fin!
!

Algorithme de Prosser
Fonction tiqueter (i, situation): entier; ! ! !/* Xi variable courante */! Dbut! Situation := faux; ! Pour tout lment di ' domaine courant Di faire! Tant que situation faire pour j := i+1 jusqu n faire ! Tant que situation faire situation := vrifier-avant (i, j);! Si situation alors Di := Di - di; d-reduire(i) is! Fait;! Fait;! Fait;! Si situation alors i+1 sinon i is;! Fin! Fonction d-tiqueter (i, situation): entier; !! ! !/* Xi variable courante */! Dbut! K :=i-1; ! Maj-domaine-courant(i); ! Dk := Dk -dk;! Situation := Dk ;! Fin!
!

Procdure maj-domaine-courant(i);! /* Xi variable courante */! Dbut! Pour tout rduction de rduction(i) faire! Di := Di , rduction !! fait;! Fin!
F.-Y. Villemin 2010" 75"

F.-Y. Villemin 2010"

76"

Le problme des quatre reines


Problme: Placer quatre reines (du jeu d chec) sur un chiquier 4 X 4 sans que une reine puisse prendre une autre Variable: nom de la colonne A, B, C, D Domaine: ensemble des lignes 1, 2, 3, 4 (X : i, signifie une reine en colonne X en ligne i). Contraintes de colonne: implicites Contraintes de ligne: X : i . Y : i Contraintes de diagonales: X : i . Y : j Avec |ncolonne(X) - ncolonne(Y)| % |i - j|
F.-Y. Villemin 2010" 77"

Le problme des quatre reines


Algorithme choisit: A : 1 Anticipation: limine des valeurs des domaines des autres variables (figure 1) B est choisie, Anticipation: limine toutes les valeurs du domaine de C Conflit ! coupable B : 3 (B : 4 non prsente) Coupable ! A : 1, la valeur 1 limine du domaine de A (figure 2).
A B C D

*
figure 2
78"

figure 1
F.-Y. Villemin 2010"

Le problme des quatre reines


Algorithme choisit: A : 2 Anticipation: limine des valeurs des domaines des autres variables (figure 3). C choisi (une seule valeur restante) (figure 4)
A B C D A B C D 1 1

Le problme des quatre reines


D choisi (une seule valeur restante) (figure 5) d o solution (figure 6).
A B C D A B C D

* *

* * * *

2
2

4
4 4

figure 3
F.-Y. Villemin 2010"

figure 4
79"

figure 5

figure 6

F.-Y. Villemin 2010"

80"

Actions
Problme:
On dispose 2 rcipients : G de 7 litres et P de 5 litres

Actions
Notations : G[X] et P[Y] pour G contient X litres et P Y litres. Situation initiale : G[0] & P[0] But : P[3] Actions : (A) remplir compltement un rcipient non plein : A1 : si G[X] & P[Y] & X<7 alors G[7] A2 : si G[X] & P[Y] & Y<5 alors P[5] (B) vider compltement un rcipient non vide : B1 : si G[X] & P[Y] & X> 0 alors G[0] B2 : si G[X] & P[Y] & Y> 0 alors P[0] (C) transvaser un rcipient non vide dans l autre non plein jusqu' ce que L'un soit compltement vide : C1 : si G[X] & P[Y] & X>0 & X+Y"5 alors G[0] & P[X+Y] C2 : si G[X] & P[Y] & Y>0 & X+Y"7 alors G[X+Y] & P[O] L'autre soit compltement plein : C3 : si G[X] & P[Y] & X>0 & X+Y>5 alors G[X+Y-5] & P[5] C4 : si G[X] & P[Y] & Y>0 & X+Y>7 alors G[7] & P[X+Y-7]

On n a le droit que de : (A)!remplir compltement un rcipient non plein (B)!vider compltement un rcipient non vide (C)!transvaser un rcipient non vide dans l autre non plein jusqu' ce que l'un soit compltement vide ou que l'autre soit compltement plein Situation initiale : Les 2 rcipients sont vides But : On veut avoir 3 litres dans P

F.-Y. Villemin 2010"

81"

F.-Y. Villemin 2010"

82"

Actions
A1 G[7] & P[0] C3 G[2] & P[5] B2 A2 G[2] & P[0] G[7] & P[3]
F.-Y. Villemin 2010"

Systmes de productions
A2 B2 G[0] & P[5] C1 C2 B1 G[5] & P[0] B2 C4
83" F.-Y. Villemin 2010" 84"

G[0] & P[0] B1 A2 B2 A1 A1 G[7] & P[5]

Invents par T. Thue en 1902 Montrs quivalents aux fonctions rcursives (ou aux grammaires formelles) par E. Post en 1941 Production: ! !SI <conditions> ALORS <actions>! Conditions = conjonctions de prdicats Actions = squences de mise jour de la base de donnes Systme de productions: Une base de donnes Un ensemble de productions (rgles) Un interprteur ("moteur d'infrence")

A1

A2

G[5] & P[5]

Les systmes de production


Deux mcanismes de base :
! Chanage avant : bas sur le modus ponens SI (A " B ET A) ALORS B! Raisonnement guid par les donnes : Interprteur: Cycle! Dtecter les rgles dont les prmisses sont vrifies! (filtrage ou matching) ! {productions applicables}! Si {productions applicables} = alors sortie is! Slectionner la production appliquer (rsolution des conflits) par heuristiques et/ou mtargles! Appliquer la rgle(action) ! modification de la base! Fincycle!
!

RETE
Mthode due C. Forgy (1982) de compilation de productions destine amliorer la performance du filtrage Principes : ! Petit nombre de conditions lmentaires dans les conditions ! Application d une production !!peu d lments de la base modifis !!peu de nouvelles productions applicables !!peu d anciennes productions non-applicables ! Cration d un rseau : compilation des productions !!trs gros gain de temps de filtrage
F.-Y. Villemin 2010" 86"

Chanage arrire : bas sur le modus tollens SI (A " B ET B) ALORS A! Raisonnement guid par les buts Utilisation d'un pile pour le but
85"

F.-Y. Villemin 2010"

RETE
proposition arit 1 G G[x] P P[x] 5 x<5 A1 A2 B1 C1
F.-Y. Villemin 2010"

General Problem Solver


arit 2 5 arit 3 7
General Problem Solver (GPS), mthode "gnrale" de rsolution des problmes invente par A. Newell & H. Simon (1963) Principes : ! Chanage arrire: Soit & x P(x) . Q(x) Pour prouver Q(a), on va chercher prouver P(a) !!d'o pile de sous-buts ! Expression oprateurs comme productions : Si <conditions d'application> alors <rsultat de l'action> ! Comparaison entre but et tat : Dtermination des diffrences entre but et tat Choix de la plus grande diffrence ! Heuristique !!cration but "rduire plus grande diffrence" ! Buts et oprateurs lis dans table associant chaque but le ou les oprateurs utilisables !!d'o, pour but courant, cration d'un autre but "utiliser l'oprateur"

< 7 x<7 B2 C2 C3 0

x+y5 x>0

x+y7

C4
87" F.-Y. Villemin 2010" 88"

General Problem Solver


Algorithme GPS :
Dbut! But := tre dans "tat final"; Etatcourant := {tat initial}; ! Etatbut := {tat final}; Pile / But;! Tantque Pile faire! Si etatbut = Etatcourant alors retirer But de Pile! sinon comparer etatbut et Etatcourant " Diffrence;! /* Diffrence0liste ordonne des diffrences */! But := rduire CAR(Diffrence); ! /* CAR(Diffrence)0la plus grande diffrence */! Pile / But;! Si ) oprateur li But alors sortie avec chec! sinon si conditions-oprateur vrifies dans Etatcourant! alors Etatcourant := actions-oprateur(Etatcourant);! Retirer But de Pile! sinon /* Appliquer l'oprateur devient le but courant */! But := tat de conditions-oprateur; ! /* Etre dans l'tat pour appliquer l'oprateur */! Pile / But;! Is Is Is ! Fait ! Fin!
F.-Y. Villemin 2010" 89"

Exemple de fonctionnement de GPS


Exemple de fonctionnement de GPS : Les tours de Hano, jeu invent par E. Lucas (1883)
! Rgles : $ Un disque la fois $ on ne peut dplacer que le disque au sommet d'une tour $ on ne peut placer qu'un disque sur un plus grand (ou le sol) ! Un langage 2 types de variables et 5 prdicats ! 4 productions ! Heuristique : le plus grand disque non en position finale, doit tre plac en position finale

F.-Y. Villemin 2010"

90"

Langage
Types : disque & position
! Variables : # disque : D1, D2, D3 # position : X, Y, Z ! Constantes : # disque : P, M, G (ou sol) # position : T1, T2, T3 ! en(D1, X) 0 vrai ssi le disque D1 est la position X ! sommet(D1) 0 vrai ssi le disque D1 est au sommet ! >(D1, D2) 0 vrai ssi le disque D1 est plus grand que le disque D2! ! sur(D1, D2/sol) vrai ssi le disque D1 repose sur le disque D2 (ou le sol) ! vide(X) 0 vrai ssi la position X est vide
F.-Y. Villemin 2010" 91"

Etats
Etat initial
P M G T1 T2 T3 T1 T2 T3

et

tat final :
P M G

Prdicats :

>(G, M) * >(M, P) * >(G, P) * sommet(P) * en(P, T1) * en(M, T1) * en(G, T1) * vide (T2) * vide(T3) * sur(P, M) * sur(M, G) * sur(G, sol)!

>(G, M) * >(M, P) * >(G, P) * sommet(P) * en(P, T3) * en(M, T3) * en(G, T3) * vide (T1) * vide(T2) * sur(P, M) * sur(M, G) * sur(G, sol)!

F.-Y. Villemin 2010"

92"

Productions
Production T1 :

Productions
Production T2 :
T2(D1, Y)!

T1(D1, Y)!
D1!

D1! X! Y! X!

D1! Y

D2!

D2!

D1!

Si sommet(D1) * en(D1, X) * sur(D1, sol) * vide(Y)! Alors retirer [en(D1, X), vide(Y)]! ajouter [en(D1, Y), vide(X)]!

X! Y! X! Y! Si sommet(D1) * en(D1, X) * en(D2, X) * sur(D1, D2) * vide (Y)! Alors retirer [en(D1, X), vide(Y), sur(D1, D2)]! ajouter [en(D1, Y), sommet(D2), sur(D1, sol)]!

F.-Y. Villemin 2010"

93"

F.-Y. Villemin 2010"

94"

Productions
Production T3 :
T3(D1, Y)! D1! D2!

Productions
Production T4 :
T4(D1, Y)!

D1! D1! D2! D2! Y! X! Y! X! Si sommet(D1) * en(D1, X) * sommet(D2) * en(D2, Y) * sur (D1, sol) * >(D2, D1)! Alors retirer [en(D1, X), sommet(D2), sur(D1, sol)]! ajouter [en(D1, Y), vide(X), sur(D1, D2)]!

D1! D3! D2! D3!

Y! X! X! Y! Si sommet(D1) * en(D1, X) * en(D2, X) * sommet(D3) * en(D3, Y) * sur(D1, D2) * >(D3, D1)! Alors retirer [en(D1, X), sommet(D3), sur(D1, D2)]! ajouter [en(D1, Y), sommet(D2), sur(D1, D3)]!

F.-Y. Villemin 2010"

95"

F.-Y. Villemin 2010"

96"

Table Buts-Situations-Actions
But Situation actions T(D1, Y)! en(D1, Y)! en(D1, X) * sommet(D1) * (vide(Y) 1 (en(D2, Y) * > (D2,D1))! en(D1, Y)! en(D1, X) * en(D2, X) * sur (D2,D1))!

T(D2, Z)!

en(D1, Y)! en(D1, X) * sommet(D1) * en (D2,Y) * sommet(D2) * > (D1,D2))!

T(D2, Z)!

F.-Y. Villemin 2010"

97"