Vous êtes sur la page 1sur 25

Intelligence Artificielle NFP106

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

Mthodes de Rsolution des
Problmes
(avec un exemple de F. Kabanza, Universit de Sherbrooke 2 F.-Y. Villemin 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
3 F.-Y. Villemin 2012
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
4 F.-Y. Villemin 2012
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

Classification des problmes
5 F.-Y. Villemin 2012
Problmes dcomposables
et
ou
et/ou
6 F.-Y. Villemin 2012
Problme
dcomposable
en arbre
ET/OU
7 F.-Y. Villemin 2012
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
8 F.-Y. Villemin 2012
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
Classification des connaissances
9 F.-Y. Villemin 2012
Exemples de connaissances passives :
! g=9,81m/s2 Paris
! Le diamant est cher
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 dinquations :
"Si un systme numrique contient des ingalits alors il faut les
transformer en galits en introduisant des variables auxiliaires"
Classification des connaissances
10 F.-Y. Villemin 2012
ASSOCIATION HEURISTIQUE [CLANCEY 83]
Donnes abstraites Solutions abstraites
Abstraction des
donnes
Donnes relles Solutions concrtes
Affinage
Classification des connaissances
Infection Gram. neg.
Gnralisation
Immunodprim Infection E. Coli
Sous type
HEURISTIQUE
Infection
Leucopnie
Gnralisation
MYCIN
Dfinition
nb GB bas
nb GB < 2500
Qualification
11 F.-Y. Villemin 2012
Arbres de recherche
Recherche en profondeur dabord




Recherche en largeur dabord



Recherche mixte ou branch & bound
1 2
3
4
5
1 2 3
4
5
1
2
3 4 5
6
7
12 F.-Y. Villemin 2012
Gnrer et tester
Connaissances minimales :
! gnration de l'espace de recherche
! qualification de la solution
Recherche en profondeur dabord :
Dbut
Gnrer une proposition (de solution);
Tant que proposition " solution faire
Gnrer une proposition
fait
Fin

Avantage : rapidit
Inconvnient : pas dassurance de trouver une solution
13 F.-Y. Villemin 2012
Recherche ascendante (hill climbing)
Amlioration de gnrer et tester :
! connaissance daction 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 dassurance de trouver une solution
Inconvnient : sommets locaux, crtes, plateaux
" moyens de dtection et remdes
14 F.-Y. Villemin 2012
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 lutilisateur : jeux 2 ou N personnes
" arbres ET/OU (alterns par niveau):
! algorithmes MIN-MAX, #-$

Connaissances pour guider la recherche ! Heuristiques
(numriques/qualitatives)
15 F.-Y. Villemin 2012
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 ltat initial E
! MP= le nombre de carrs mal placs par rapport la
configuration finale (en ignorant la case vide)

16 F.-Y. Villemin 2012
2 8 3
1 6 4
7 5
2 8 3
1 6 4
7
2 8 3
1 4
7 5 6
2 8 3
1 6 4
5 7
5
2 8 3
1
7 5 6
2 3
1 4
7 5 6
8
4
2 8 3
4
7 5 6
1
8 3
4
7 5 6
1
2 8 3
4
5 6
1
7
2
2 3
1 4
7 5
6
8
3
1 4
7 5
6
8
2
3 1
4
7 5 6
8
2
3 1
4
7 5 6
8
2
5
3 1
4 7
6
8
2
5
0 + 4
1 + 5
1 + 3
1 + 5
2 + 4
2 + 3
2 + 3
3 + 3
3 + 4
3 + 2
3 + 4
4 + 1
5 + 0
5 + 2
BUT
Algorithme A*
Taquin :
(Ackerman)
17 F.-Y. Villemin 2012
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
f : {tat} ! R
+

f*(n) = cot de la meilleure solution passant par n
(chemin racine solution de moindre cot)
! f*(n) est minimal

18 F.-Y. Villemin 2012
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
NOEUD N
SOLUTION
19 F.-Y. Villemin 2012
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(n
2
), n nombre dtats
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 dtats
20 F.-Y. Villemin 2012
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 ! n
1
, n
2
,,n
p
;
Pour tout i=1 p faire valuer f(n
i
);
Casde n
i
' OUVERT & f(n
i
) < f'(n
i
) dans OUVERT :
Remplacer n
i
par le dernier produit avec f(n
i
);
n
i
' FERME : ajouter n
i
OUVERT
Fincas
Fait
Is
Is
Fait;
Si solution alors imprimer "branche racine--n" sinon imprimer
"chec" is
Fin
21 F.-Y. Villemin 2012
Fonctionnement
de l'algorithme
A* sur le jeu
de taquin
(Nilsson)
22 F.-Y. Villemin 2012
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 (sous-
hypergraphe de moindre cot) en premier
Mthodes de recherche ordonne du sous-hypergraphe
de cot minimal entre le noeud initial et les buts
23 F.-Y. Villemin 2012
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-x
i

hypergraphe H
g(H) = cot de H
S nud frontire de H
X
i
' {x
1
x
2
x
n
} successeurs de s
Si s nud OU : f(G) = g(H) + cot(s, x
i
) + h(x
i
)

Si s nud ET (de cot n) : f(G) = g(H) + cot(s, x
1
)
++cot(s, x
n
) + n + h(x
i
)
24 F.-Y. Villemin 2012
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 dtats
25 F.-Y. Villemin 2012
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!n
1
, n
2
,,n
p
; /* p hypergraphes crs */
Si n nud OU alors
Pour tout i=1 p faire construire H(n
i
); valuer H(n
i
);
Ajouter H(n
i
) dans HYPER fait
Sinon construire H(n
1
& n
2
&&n
p
); /* n nud ET */
Pour tout i=1 p faire valuer H(n
1
& n
2
&&n
p
) n
i;

ajouter H(n
1
& n
2
&&n
p
) et f(n
i
) dans HYPER fait
Is;
Is;
Is;
Fait;
Si solution alors imprimer H(n) sinon imprimer "chec" is
Fin
26 F.-Y. Villemin 2012
Exemple
(R. Marcus An application of AI to OR CACM v 27 n 10, 1984)
! Problme dordonnancement
! Modification : ! connecteur ET a un cot de 1
! Fonction h: ! minimum des valeurs des arcs quittant le
nud
27 F.-Y. Villemin 2012
Exemple
Estimations des nuds:
h(deb)=3 h(A)=7 h(B)=9 h(C)=3
h(D)=5 h(E)=1 h(F)=2 h(fin)=0
Le sous-hypergraphe retourn par AO* a un cot de 16
deb fin
C
E
F
3
6
1
2
3
1
28 F.-Y. Villemin 2012
Exemple


H
2
= { deb-A, deb-C-B, deb-C-E }
15 16 6+1
H
1
= { deb-A, deb-C }
8+7 3+3
H
3
= { deb-A, deb-C-B, deb-C-E }
15 16 13+1+2
F
H
4
= { deb-A, deb-C-B, deb-C-E }
20+1+9 16 16
plus rcent
F B
H
0
= !
H
4
= { deb-A, deb-C-B, deb-C-E }
30 16 16
Rsultat final
F B fin
29 F.-Y. Villemin 2012
Min-Max
Problmes conversationnels ou jeu deux personnes
" arbre ET/OU altern par niveau:

JOUEUR
ADVERSAIRE
JOUEUR
ADVERSAIRE
niveau 1
niveau 3
niveau 2
30 F.-Y. Villemin 2012
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)




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


31 F.-Y. Villemin 2012
Min-Max
Fonction heuristique f : {tat} ! R
f(joueur) = - f(adversaire)
Fonction (statique) valuant chaque feuille de larbre de recherche au niveau
N, estimation de lintrt 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 nest 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
32 F.-Y. Villemin 2012
Min-Max
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 !
"
#
niveaux
33 F.-Y. Villemin 2012
Min-Max
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
MIN
MAX
0
0
3
-1
-1 4 0
-2
2 2 -2 1
4
n
valeur remonte
niveaux
34 F.-Y. Villemin 2012
Min-Max
Arbre de dveloppement et
valeurs remontes
(Nilsson)
35 F.-Y. Villemin 2012
Min-Max
La valeur remonte
aprs dveloppement de l'arbre
est diffrente de l'heuristique
(1 au lieu de 2)
36 F.-Y. Villemin 2012
Alpha-Bta
Amlioration du MIN-MAX par J. Mc Carthy (1957)
Principe :
conjonction value jusquau premier faux
disjonction value jusquau premier vrai
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) ! naugmente jamais
37 F.-Y. Villemin 2012
Alpha-Bta
10
10
12
11
! 11
10 9
10
10
11 9 11
9
9
" 9
9
" 9
5
" 5
! = 10
! = 10
" = 10
" = 10
12
38 F.-Y. Villemin 2012
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 meilleur-
valeur = valeur; suite = cons( pi, asuivre);
si (valeur > alpha) alors alpha = valeur is is
sinon /* niveau impair */
si (valeur < meilleur-valeur) alors meilleur-
valeur = 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
fin
39 F.-Y. Villemin 2012
Alpha-Bta
3 2 -2 4 -3 -1 -4 -4 -2 0 -2 4 1 -4 -3 -2
resultat= 0
!0=3
"=3
"= -1
!=0
!1=4
!2= -1
"<!1
!3=0
"1=0
!4=4
!5=1
"<!4
"<!5
!6= -2
"= -2
"<!
!= -1
"= -1
Fonctionnement de l'algorithme de Fishburn :
40 F.-Y. Villemin 2012
Satisfaction de contraintes
Problme :
S E N D
+ M O R E
---------------------------
M O N E Y
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]
41 F.-Y. Villemin 2012
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 .. 1]
D'o: C3 = 0 ! S + 1 = 10 + O
Ou C3 = 1 ! S + 2 = 10 + O
Ou bien C3 = 0 ! S = 9 + O
Ou C3 = 1 ! S = 8 + O et O % 1
D'o O = 0 et C3 = 0 et S = 9
Ou C3 = 1 et S = 8
42 F.-Y. Villemin 2012
Satisfaction de contraintes
Arbre de propagation des contraintes

M = 1 & C4 = 1
C3 = 1 & S = 8 & O = 0 C3 = 0 & S = 9 & O = 0
C3=0 & S=9 & O=0
& C2=1 &
1 + E = N
C3=1 & S=8 & O=0
& C2=0 &
E = 10 + N
C3=0 & S=9 & O=0
& C2=0 &
E = N
C3=1 & S=8 & O=0
& C2=1 &
E = 9 + N
impossible, car E!N impossible, car valeur de E>10 impossible, car N!0
43 F.-Y. Villemin 2012
Algorithme de Waltz
Problme: Reconnatre des figures (tridriques) 3D
partir de contours (fils de fer) en 2D














figure non admise (ambigu) figure reconnaissable
44 F.-Y. Villemin 2012
Algorithme de Waltz
4 types de nuds (sommets) :







Principe du marquage :
( la matire est droite de la flche
+ arte saillante
- arte en creux

L T flche toile

45 F.-Y. Villemin 2012
Algorithme de Waltz
Sommets possibles : 6 L 4 T 3 flches 3 toiles

L1 L2 L3 L4 L5 L6

T1 T2 T3 T4

F1 F2 F3 E1 E2 E3
-
+ -
+
+ -
+ +
- -
-
+
+ + +
+
- -
-
-
46 F.-Y. Villemin 2012
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
47 F.-Y. Villemin 2012
Algorithme de Waltz
L6
Le contour est tiquet
Les marques sont propages Les nuds sont identifis
E1 +
+
+
48 F.-Y. Villemin 2012
F1
F1
F1
F1
F1
E3
L6
L6
L6
T4
+
+
+
+
+
-
F1
E1
E1
E1
+ +
+
+
Algorithme de Waltz
Marquage du contour Reconnaissance des nuds Propagation des marquages






Reconnaissance des nuds et propagation des marquages





Interprtation :Le paralllpipde de droite repose sur la partie horizontale de la
structure (marques en bas), mais ne touche pas la partie verticale de la structure
(marques sur sa gauche).

F1
F1
F1
F1
F1
E3
L6
L6
L6
T4
F1
F1
F1
F1
F1
E3
L6
L6
L6
T4
+
+
+
+
+
-
F1
F1
F1
F1
F1
E3
L6
L6
L6
T4
+
+
+
+
+
-
F1
E1
E1
E1
+ +
+
+
F3
F2
- T2
-
L3
49 F.-Y. Villemin 2012
Satisfaction de contraintes
Problme: Soient n variables X
1
,, X
n
valeur (respectivement) dans
domaines D
1
,, D
n

Trouver un ensemble daffectations pour les variables {X
i
: a
i
}1 " i " n
satisfaisant un ensemble de m contraintes {C
j
(X
i1
,, X
ik
) } 1" j " m
Contrainte k-aire ! k variables : C
j
(X
i1
,, X
ik
)
Contrainte k-aire valuable, k variables affectes ! {vrai, faux}
Contrainte k-aire satisfaite C
j
(X
i1
,, X
ik
) = 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: {X
i
: a
i
} satisfait S si et seulement si {X
i
: a
i
}
satisfait S)
50 F.-Y. Villemin 2012
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
!

51 F.-Y. Villemin 2012
Satisfaction de contraintes
Exemple: Un problme avec 5 variables et 8 contraintes
(binaires) C
k
(X
i
, X
j
) = {(a
i
, bj) | a
i
' D
i
et b
j
' D
j
}
C
6
(X
2
, X
5
)
X
1
X
2
X
3
X
4
X
5
C
1
(X
1
, X
2
)
C
4
(X
2
, X
3
)
C
2
(X
1
, X
3
)
C
3
(X
1
, X
4
)
C
5
(X
2
, X
4
)
C
7
(X
3
, X
5
)
C
8
(X
4
, X
5
)
52 F.-Y. Villemin 2012
Satisfaction de contraintes
Dfinitions :
Variable courante: X
i
celle que lon cherche affecter
! domaine courant D
i

Variables anciennes (dj affectes) : {X
k
: a
k
} 1 " k < i-1
! domaines anciens
Variables futures ( affecter) : {X
k
} i+1 < k " n
! domaines futurs
Procdure vrifier (i, j);
Dbut
Si ) contrainte entre X
i
et X
j
alors vrai
Sinon si X
i
:a
i
* X
j
:b
j
alors * C
k
(a
i
, b
j
) is
/* {C
k
(X
i
, X
j
)} ensemble des contraintes entre X
i
et X
j

*/
Is

Fin
Etiquetage: satisfaction ' {vrai, faux}
53 F.-Y. Villemin 2012
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 dabord ! 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
54 F.-Y. Villemin 2012
Backjumping
X
1
X
2
X
3
X
4
X
5
X
6
X
7
variable courante
Pass
Futur
55 F.-Y. Villemin 2012
Forward-checking
X
1
X
2
X
3
X
4
X
5
X
6
X
7
variable courante
Pass
Futur
56 F.-Y. Villemin 2012
On vous donne une carte de lAustralie (F. Kabanza) :



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
Colorier une carte
57 F.-Y. Villemin 2012
Formulation du problme CSP :




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,
Colorier une carte
58 F.-Y. Villemin 2012
{WA = R, NT = G, Q = R, NSW = G, V = R, SA = B, T = G}
Colorier une carte
Solution :


59 F.-Y. Villemin 2012
WA+NT
WA+SA
NT+Q
NT+SA
Q+SA
Q+NSW
NSW+V
SA+V
SA+NSW
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.
60 F.-Y. Villemin 2012
backtracking-search

61 F.-Y. Villemin 2012
backtracking-search

62 F.-Y. Villemin 2012
backtracking-search

63 F.-Y. Villemin 2012

backtracking-search

64 F.-Y. Villemin 2012
Ordre daffectation des variables
chaque tape, choisir la variable avec le moins de
valeurs consistantes restantes.


Illustration:
65 F.-Y. Villemin 2012
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 :
66 F.-Y. Villemin 2012
Pour une variable donne, choisir une valeur qui
invalident le moins de valeurs possibles pour les
variables non encore affectes
Ces heuristiques permettent de rsoudre un problme
de 1000 reines
Laisse une seule valeur
pour SA
Ne laisse aucune seule
valeur pour SA
Ordre daffectation des variables
67 F.-Y. Villemin 2012
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
68 F.-Y. Villemin 2012
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
Q
NSW
V
T
Algorithme Forward checking
69 F.-Y. Villemin 2012
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
Q
NSW
V
T
Algorithme Forward checking
70 F.-Y. Villemin 2012
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
Q
NSW
V
T
Algorithme Forward checking
71 F.-Y. Villemin 2012
Forward checking propage linformation des variables affectes
vers les variables non affectes, mais ne dtecte pas les
conflits locaux entre variables :










NT et SA ne peuvent pas tre en bleu ensemble!
La propagation des contraintes permet de vrifier les
contraintes localement.
WA
NT
SA
Q
NSW
V
T
Propagation de contraintes
72 F.-Y. Villemin 2012
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
WA
NT
SA
Q
NSW
V
T
Arc consistency
73 F.-Y. Villemin 2012
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
WA
NT
SA
Q
NSW
V
T
Si une variable perd une valeur, ses voisins doivent tre revrifis
Arc consistency
74 F.-Y. Villemin 2012
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
Arc consistency
75 F.-Y. Villemin 2012
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
WA
NT
SA
Q
NSW
V
T
Arc consistency
76 F.-Y. Villemin 2012
Algorithme de Prosser
Backjumping + forward-checking ! performance (plusieurs ordres de
magnitude) suprieure au backtracking chronologique
Fonction vrifier-avant (i, j): boolen; /* X
i
variable future
*/
Dbut
Rduction := ; /* rduction est une liste */
Pour tout lment d
i
' domaine courant D
i
faire
Si vrifier(i, j) alors mettre d
i
dans rduction is
Fait;
Si rduction " alors D
i
:= D
i
, rduction;
Mettre X
i
dans var-future(j);
Mettre X
j
dans var-ancienne(i);
Rduction(i) := cons(rduction, rduction(i))
Is;
Vrifier-avant(i, j) := D
i
"
Fin
77 F.-Y. Villemin 2012
Algorithme de Prosser
Procdure d-reduire(i);
/* X
j
variable courante */
Dbut
Pour tout lment d
i
' D
i
de var-future(i) faire
Retirer rduction de rduction(i);
D
i
:= D
i
- rduction;
Retirer X
i
de var-future(j)
Fait;
Var-future(i) :=
Fin

Procdure maj-domaine-courant(i);
/* X
i
variable courante */
Dbut
Pour tout rduction de rduction(i) faire
D
i
:= D
i
, rduction
fait;
Fin
78 F.-Y. Villemin 2012
Algorithme de Prosser
Fonction tiqueter (i, situation): entier;
/* X
i
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 D
i
:= D
i
- d
i
; d-reduire(i) is
Fait;
Fait;
Fait;
Si situation alors i+1 sinon i is;
Fin
Fonction d-tiqueter (i, situation): entier;
/* X
i
variable courante */
Dbut
K :=i-1;
Maj-domaine-courant(i);
D
k
:= D
k
-d
k
;
Situation := D
k
" ;
Fin
79 F.-Y. Villemin 2012
Le problme des quatre reines
Problme: Placer quatre reines (du jeu dchec) 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|
80 F.-Y. Villemin 2012
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).










figure 1 figure 2
A B C D
1
2
3
4
*
A B C D
1
2
3
4
*
*
81 F.-Y. Villemin 2012
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)








figure 3 figure 4
A B C D
1
2
3
4
*
A B C D
1
2
3
4
*
*
82 F.-Y. Villemin 2012
Le problme des quatre reines
D choisi (une seule valeur restante) (figure 5) do
solution (figure 6).








figure 5 figure 6
A B C D
1
2
3
4
*
*
*
A B C D
1
2
3
4
*
*
*
*
83 F.-Y. Villemin 2012
Actions
Problme:
On dispose 2 rcipients : G de 7 litres et P de 5 litres
On na 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 lautre 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
84 F.-Y. Villemin 2012
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 lautre 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]
85 F.-Y. Villemin 2012
Actions
G[0] & P[0]
G[5] & P[0]
G[5] & P[5]
G[0] & P[5]
G[7] & P[5]
G[2] & P[0]
G[2] & P[5]
G[7] & P[0]
B1 B2
A1
A2
B2
C1
C3
A2
A1
A1
A2
G[7] & P[3]
C4
B1
A1
A2
C2
B2
B2
86 F.-Y. Villemin 2012
Systmes de productions
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")
87 F.-Y. Villemin 2012
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
! 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
88 F.-Y. Villemin 2012
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 dune production ! peu dlments de
la base modifis
! peu de nouvelles productions applicables
! peu danciennes productions non-applicables
! Cration dun rseau : compilation des
productions
! trs gros gain de temps de filtrage
89 F.-Y. Villemin 2012
RETE
proposition
G[x]
P[x]
arit 1 arit 3
G
P
<
7
5
x > 0
7 5
0
x < 7 x < 5
!
x + y ! 5 x + y ! 7
A1 A2 B1 B2
C1 C2 C3 C4
arit 2
90 F.-Y. Villemin 2012
General Problem Solver
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"
91 F.-Y. Villemin 2012
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
92 F.-Y. Villemin 2012
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
93 F.-Y. Villemin 2012
Langage
Types : disque & position
! Variables :
# disque : D1, D2, D3
# position : X, Y, Z
! Constantes :
# disque : P, M, G (ou sol)
# position : T1, T2, T3
Prdicats :
! 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
94 F.-Y. Villemin 2012
Etats
Etat initial et tat final :





P
M
G
T1 T2 T3
P
M
G
T1 T2 T3
>(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)
95 F.-Y. Villemin 2012
Production T1 :








Si sommet(D1) * en(D1, X) * sur(D1, sol) * vide(Y)
Alors
retirer [en(D1, X), vide(Y)]
ajouter [en(D1, Y), vide(X)]
Productions
X Y
D1
X Y
D1
T1(D1, Y)
96 F.-Y. Villemin 2012
Production T2 :






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)]
Productions
X Y
X Y
D1
D1
T2(D1, Y)
D2 D2
97 F.-Y. Villemin 2012
Production T3 :






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)]
Productions
X Y
D1
X Y
D1
T3(D1, Y)
D2
D2
98 F.-Y. Villemin 2012
Production T4 :






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)]
Productions
Y
T4(D1, Y)
X
D1
D3
Y
D1
X
D2 D3 D2
99 F.-Y. Villemin 2012
Table Buts-Situations-Actions
But Situation actions
en(D1, Y)

cas
en(D1, X) * sommet(D1) *
(vide(Y) 1 (en(D2, Y) *
>(D2,D1))
T(D1, Y)
en(D1, Y)

cas
en(D1, X) * en(D2, X) *
sur(D2,D1))
But[en(D2, Z)]

en(D1, Y)

cas
en(D1, X) * sommet(D1) *
en(D2,Y) * sommet(D2) *
>(D1,D2))
But[en(D2, Z)]

100 F.-Y. Villemin 2012
Fonctionnement de GPS
1 2
11
9 8
7
6 5 4
3
10 12
Etat Buts

Vous aimerez peut-être aussi