Académique Documents
Professionnel Documents
Culture Documents
Année 2012-2013
! Classification des problèmes
! Méthodes peu informées
Méthodes de Résolution des ! Méthodes heuristiques: A*, AO*, !"
Problèmes ! Satisfaction de contraintes
! Modélisation des actions
F.-Y. Villemin (f-yv@cnam.fr)
! Analyse des buts et des moyens : GPS
http://deptinfo.cnam.fr
et/ou
Qualification
nb GB < 2500
© F.-Y. Villemin 2012" 9" © F.-Y. Villemin 2012" 10"
Algorithme A* Algorithme A*
Algorithme A* du à Hart, Nilsson & Raphael (1968-1972) Taquin : 1 + 5 2+4 3+4
Jeux à une personne sur un arbre OU (Ackerman) 2 8 3 2 8 3 2 3 5+2
1 6 4 1 4 1 8 4 1 2 3
Méthodes de recherche ordonnée du chemin de coût minimal 7 5 7 6 5 7 6 5 7 8 4
entre un nœud initial et un but 65 5
0+4 1+3 2+3 3+2 4+1
Exemple : jeu du taquin " 181 440 états 2 3
2 8 3 2 8 3 2 3 1 2 3
! recherche de la meilleure solution en premier 1 6 4 1 4 1 8 4 1 8 4 8 4
7 5 7 6 5 7 6 5 7 6 5 7 6 5
Heuristique : minimiser F(E) = L + MP avec 5+0
3+4
! E= état courant 1+5 2+3 2 8 3 1 2 3
! L= longueur du chemin de l état initial à E 2 8 3 2 8 3 7 1 4 8 4
1 6 4 1 4 6 5 7 6 5
! MP= le nombre de carrés mal placés par rapport à la 7 5 7 6 5 3+3 BUT
configuration finale (en ignorant la case vide)
8 3
2 1 4
7 6 5
© F.-Y. Villemin 2012" 15" © F.-Y. Villemin 2012" 16"
Fonctions heuristiques Fonctions heuristiques
Fonctions évaluant chaque état de l'espace de g*(n) = coût du chemin de la racine à n
h*(n) = coût du chemin de n à la meilleure solution
recherche en fonction de la distance : f*(n) = g*(n) + h*(n)
! de l'état actuel à la solution f(n) = estimation du coût du chemin de racine à meilleure solution passant
! de l'état actuel à l'état initial par n
!
g(n) = coût du chemin minimal de la racine à n (calculé)
f : {état} ! R+! h(n) = estimation statique du coût du chemin de n à la meilleure solution
f*(n) = coût de la meilleure solution passant par n f(n) = g(n) + h(n)
NOEUD N
SOLUTION
Exemple Exemple
Estimations des nœuds: H0 = !
h(deb)=3 h(A)=7 h(B)=9 h(C)=3 H1 = { deb-A, deb-C }
h(D)=5 h(E)=1 h(F)=2 h(fin)=0 8+7 3+3
Le sous-hypergraphe retourné par AO* a un coût de 16 H2 = { deb-A, deb-C-B, deb-C-E }
15 16 6+1
H3 = { deb-A, deb-C-B, deb-C-E }
15 16 13+1+2
F
deb E fin H4 = { deb-A, deb-C-B, deb-C-E }
3 20+1+9 16 16
B plus récent F
3 1
1 2 H4 = { deb-A, deb-C-B, deb-C-E }
C F 30 16 16
6
© F.-Y. Villemin 2012" 27" © F.-Y. Villemin 2012"
B Résultat finalF fin 28"
Min-Max Min-Max
Problèmes conversationnels ou jeu à deux personnes Exemple (Nilsson): jeu de Tic-Tac-Toe
e(p) = - # si la position p est perdante pour le joueur MAX
" arbre ET/OU alterné par niveau: e(p) =!!# si la position p est gagnante pour le joueur MAX
Sinon pour toute autre position
JOUEUR 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)
ADVERSAIRE
niveau 1
joueur MAX
joueur MIN
e(p) = 6 - 4 =2
JOUEUR
niveau 2
ADVERSAIRE niveau 3
Min-Max 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 intérêt de la feuille pour le joueur :
+ # = situation gagnante
- # = situation perdante
> 0 = situation favorable niveaux
MIN -1 0 -2
MAX
3 4 -1 0 4 1 -2 2 2
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
Min-Max Alpha-Béta
Amélioration du MIN-MAX par J. Mc Carthy (1957)
Principe :
conjonction évaluée jusqu au premier faux
disjonction évaluée jusqu au premier vrai
Application :
Soit nœud est MAX, on cherche une valeur > N
valeur remontée P, P " N ! arrêt
Soit nœud est MIN, on cherche une valeur < N
valeur remontée P, P $ N ! arrêt
La valeur remontée % %! procédure branch & bound
après développement de l'arbre nœuds MAX: valeur # = (MAX des fils) ! ne diminue jamais
est différente de l'heuristique nœuds MIN: valeur $ = (MIN des fils) ! n augmente jamais
(1 au lieu de 2)
© F.-Y. Villemin 2012" 35" © F.-Y. Villemin 2012" 36"
Alpha-Béta Alpha-Béta (Fishburn 83)
procédure alpha-béta (in niveau : entier, pos : position, suite :
chemin, inex alpha, béta : réel, ex meilleur-valeur : réel);!
début!
var : valeur : réel, asuivre : chemin, pi : position;!
! = 10 10
si niveau = n alors meilleur-valeur := évaluation(pos) is;!
si niveau = 0 alors alpha := - ∞; béta := + ∞!
≤9 sinon pour tout pi fils de pos faire valeur := alpha-béta
(alpha, béta, niveau + 1, pi, asuivre);!
" = 10 10 si pair (niveau) alors /* niveau pair */!
! !si (valeur > meilleur-valeur) alors meilleur-
valeur = valeur; !suite = cons( pi, asuivre);!
≥ 11
! !si (valeur > alpha) alors alpha = valeur is is!
! = 10 10 9 ! ! sinon /* niveau impair */!
≤9
! ! si (valeur < meilleur-valeur) alors meilleur-
≤5
" = 10 valeur = ! !valeur; suite = cons(pi, asuivre);!
10 11 9 ! ! ! si (valeur < béta) alors béta = valeur is is !
! ! !is; !
! ! !/* élagage */ !!
10 12
9 5 11 12 9 11 9 ! ! si (alpha >= béta) alors échappement avec !
! ! !meilleur-valeur := valeur is !
fait!
si pair (niveau) alors alpha := meilleur-valeur sinon béta :=
meilleur-valeur is !
© F.-Y. Villemin 2012" 37" © F.-Y. Villemin 2012"
fin! 38"
"= -1 "<!1
"<!4
"<!5
"= -2 les lettres initiales ne valent pas Ø
"=3
"1=0 "= -1 C4 C3 C2 C1
!0=3
!2= -1 !3=0 !5=1
!6= -2 S E N D
!1=4 !4=4 + M O R E
3 2 -2 4 -3 -1 -4 -4 -2 0 -2 4 1 -4 -3 -2
---------------------------
M O N E Y
Etat initial du problème :
S, M, N, R, D, Y, E, O ' [0 .. 9]
S % ØM % Ø
C1, C2, C3, C4 ' [0 .. 1]
© F.-Y. Villemin 2012" 39" © F.-Y. Villemin 2012" 40"
Satisfaction de contraintes Satisfaction de contraintes
Solution Arbre de propagation des contraintes
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]
M = 1 & C4 = 1
O % 1 donc O ' [0, 2 .. 9]
C3 ' [0 .. 1]
C3 = 1 & S = 8 & O = 0 C3 = 0 & S = 9 & O = 0
D'où: C3 = 0 ! S + 1 = 10 + O
Ou C3 = 1 ! S + 2 = 10 + O
Ou bien C3 = 0 ! S = 9 + O C3=1 & S=8 & O=0 C3=1 & S=8 & O=0 C3=0 & S=9 & O=0 C3=0 & S=9 & O=0
Ou C3 = 1 ! S = 8 + O et O % 1 & C2=1 & & C2=0 & & C2=1 & & C2=0 &
E=9+N E = 10 + N 1+E=N E=N
D'où O = 0 et C3 = 0 et S = 9
Ou C3 = 1 et S = 8 impossible, car N!0 impossible, car valeur de E>10 impossible, car E!N
L T flèche étoile
Principe du marquage!:
( la matière est à droite de la flèche
+ arête saillante
figure non admise (ambiguë) figure reconnaissable - arête en creux
© F.-Y. Villemin 2012" 43" © F.-Y. Villemin 2012" 44"
Algorithme de Waltz Algorithme de Waltz
Sommets possibles : 6 L 4 T 3 flèches 3 étoiles Algorithme d'étiquetage de D. Waltz (1975)!
Début !
+ - + Marquer le contour par une flèche de telle manière que !la
-
matière soit à droite de la flèche; !
L1 L2 L3 L4 L5 L6 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;!
Vérifier la compatibilité des marques ; !
Eliminer les marques incompatibles deux à deux ;!
T1 T2 T3 T4
Si une arête ne peut être marquée !
- - + + + - - /* ensemble des marques vide */!
+
+ + - Alors Sortie avec échec!
+ - -
Sinon Marquer l'arête avec l'ensemble des marques!
F1 F2 F3 E1 E2 E3 Is!
Fait!
Fin!
E3 E3
F1 F1 -
F1 + F1
L6 +
L6
+
Le contour est étiqueté
L6
F1 L6
Reconnaissance
L6
des nœuds et propagation des marquages
L6
F1
F1 F1
+ +
L6 + F1 + F1
T4 F1 T4 F1
+ E1 E1
+ E1 + + + +
E3
E3 T2 -
- -
F1 F1 + L3 F1
+ F1 E1 - F2
E1 +
+ + +
L6
+
E1
L6
E1 +
+
F3 +
+ L6
L6 F1
Interprétation :Le parallélépipèdeF1
de droite repose sur la partie horizontale de la
Les nœuds sont identifiés Les marques sont propagées structure (marques – en bas), mais ne touche pas la partie verticale de la structure
© F.-Y. Villemin 2012" 47" ©(marques → sur sa gauche).
F.-Y. Villemin 2012" 48"
Satisfaction de contraintes Satisfaction de contraintes
Problème: Soient n variables X1,…, Xn à valeur (respectivement) dans Types de problèmes :
domaines D1,…, Dn
! CSP avec des domaines finis (et discrets)
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 ! CSP Booléens: les variables sont vraies ou fausses.
Contrainte k-aire ! k variables : Cj (Xi1,…, Xik) ! CSP avec des domaines continus (et infinis)
Contrainte k-aire évaluable, k variables affectées !!{vrai, faux} # Par exemple, problèmes d’ordonnancement avec des
Contrainte k-aire satisfaite Cj (Xi1,…, Xik) = vrai contraintes sur les durées
Théorème (Rossi, Petrie & Dhar 90):
! CSP avec des contraintes linéaires
Pour tout ensemble S de contraintes i-aire (i $ 2) il existe un ensemble S
de contraintes binaires (i = 2) qui est équivalent ! CSP avec des contraintes non linéaires
(S équivalent à S : {Xi!:!ai } satisfait S si et seulement si {Xi!:!ai } ! …
satisfait S)
X2 Passé
X3
X4
X5 variable courante Et on vous demande d’utiliser seulement trois couleurs (rouge, vert et bleu)
de sorte que deux états frontaliers n’aient jamais les mêmes couleurs
On peut facilement trouver une solution à ce problème en le formulant comme
X6 un problème CSP et en utilisant des algorithmes généraux pour CSP
Futur
X7
© F.-Y. Villemin 2012" 55" © F.-Y. Villemin 2012" 56"
Colorier une carte Colorier une carte
Formulation du problème CSP : Solution :
NT+Q!
WA+NT!
NT+SA!
Q+NSW!
Q+SA!
WA+SA!
SA+NSW!
SA+V! NSW+V!
Illustration:
contraintes localement.
SA
NSW
V
T
© F.-Y. Villemin 2012" 71" © F.-Y. Villemin 2012" 72"
Arc consistency Arc consistency
Arc consistency est la forme de propagation de contraintes la Arc consistency est la forme de propagation de contraintes la
plus simple plus simple
! Vérifie la consistance entre les arcs ! Vérifie la consistance entre les arcs
! C-à-d., la consistance des contraintes entre deux variables ! C-à-d., la consistance des contraintes entre deux variables
L’arc X "Y est consistant si et seulement si pour chaque valeur x de X il L’arc X "Y est consistant si et seulement si pour chaque valeur x de X il
existe au moins une valeur permise de y
existe au moins une valeur y de Y
! consistante avec x
NT Q
WA
SA NT
NSW WA Q
V SA
NSW
T V
Si une variable perd une valeur, ses voisins doivent être revérifiés T
© F.-Y. Villemin 2012" 73" © F.-Y. Villemin 2012" 74"
Contraintes de ligne: X : i . ¬ Y : i
3 3
*
Contraintes de diagonales: X : i . ¬ Y : j
Avec |n°colonne(X) - n°colonne(Y)| % |i - j| 4
4
figure 1 figure 2
A B C D
A B C D
1
* 1
*
1
1
2 * 2 *
2 * 2 *
3 3
*
3
3
4
* 4
*
4
*
figure 5 figure 6
4
figure 3 figure 4
Actions Actions
Problème: Notations : G[X] et P[Y] pour G contient X litres et P Y litres.
Situation initiale : G[0] & P[0] But : P[3]
On dispose 2 récipients : G de 7 litres et P de 5 litres Actions :
On n a le droit que de : (A) remplir complètement un récipient non plein :
(A)!remplir complètement un récipient 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 complètement un récipient non vide (B) vider complètement un récipient non vide :
(C)!transvaser un récipient non vide dans l autre non plein B1 : si G[X] & P[Y] & X> 0 alors G[0]
jusqu'à ce que l'un soit complètement vide ou que l'autre soit B2 : si G[X] & P[Y] & Y> 0 alors P[0]
complètement plein (C) transvaser un récipient non vide dans l autre non plein jusqu'à ce que
L'un soit complètement vide :
Situation initiale : Les 2 récipients sont vides 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]
But : On veut avoir 3 litres dans P L'autre soit complètement 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]
SI (A " B ET A) ALORS B!
Raisonnement guidé par les données : filtrage
Interpréteur:
Cycle! Principes :
Détecter les règles dont les prémisses sont vérifiées!
(filtrage ou matching) ! {productions applicables}! ! Petit nombre de conditions élémentaires dans les
Si {productions applicables} = Ø alors sortie is! conditions
! Application d une production !!peu d éléments de
Sélectionner la production à appliquer (résolution des
conflits) par heuristiques et/ou métarègles!
Appliquer la règle(action) ! modification de la base! la base modifiés
Fincycle!
!!peu de nouvelles productions applicables
Chaînage arrière : basé sur le modus tollens
!
SI (A " B ET ¬B) ALORS ¬A!
!!peu d anciennes productions non-applicables
Raisonnement guidé par les buts ! Création d un réseau : compilation des
Utilisation d'un pile pour le but
productions
!!très gros gain de temps de filtrage
© F.-Y. Villemin 2012" 87" © F.-Y. Villemin 2012" 88"
RETE General Problem Solver
proposition General Problem Solver (GPS), méthode "générale" de résolution des
problèmes inventée par A. Newell & H. Simon (1963)
arité 1 arité 3 Principes :
arité 2 ! Chaînage arrière:
≤ Soit & x P(x) . Q(x)
G P 5 7 Pour prouver Q(a), on va chercher à prouver P(a)
!!d'où pile de sous-buts
! Expression opérateurs comme productions :
G[x] P[x] < Si <conditions d'application> alors <résultat de l'action>
0
x+y≤5 x+y≤7 ! Comparaison entre but et état :
5 7 Détermination des différences entre but et état
Choix de la plus grande différence
x<5 x<7 x>0 ! Heuristique !!création but "réduire plus grande différence"
! Buts et opérateurs liés dans table associant à chaque but le ou
A1 A2 B1 B2 les opérateurs utilisables !!d'où, pour but courant, création d'un
autre but "utiliser l'opérateur"
C1 C2 C3 C4
© F.-Y. Villemin 2012" 89" © F.-Y. Villemin 2012" 90"
Productions Productions
Production T1 : Production T2 :
T2(D1, Y)!
T1(D1, Y)!
D1!
D1! D1! D2! D2! D1!
X! Y! X! Y!
X! Y! X! Y Si sommet(D1) * en(D1, X) * en(D2, X) * sur(D1, D2) * vide
Si sommet(D1) * en(D1, X) * sur(D1, sol) * vide(Y)! (Y)!
Alors
Alors
retirer [en(D1, X), vide(Y)]!
retirer [en(D1, X), vide(Y), sur(D1, D2)]!
ajouter [en(D1, Y), vide(X)]!
ajouter [en(D1, Y), sommet(D2), sur(D1, sol)]!
D1! D1!
D1!
D2! D2! D3! D2! D3!
D1! D2!
X! Y! X! Y!
X! Y! X! Y!
Si sommet(D1) * en(D1, X) * sommet(D2) * en(D2, Y) * sur Si sommet(D1) * en(D1, X) * en(D2, X) * sommet(D3) * en(D3,
(D1, sol) * >(D2, D1)! Y) * sur(D1, D2) * >(D3, D1)!
Alors Alors
retirer [en(D1, X), sommet(D2), sur(D1, sol)]! retirer [en(D1, X), sommet(D3), sur(D1, D2)]!
ajouter [en(D1, Y), vide(X), sur(D1, D2)]! ajouter [en(D1, Y), sommet(D2), sur(D1, D3)]!
10 11 12
© F.-Y. Villemin 2012" 99" © F.-Y. Villemin 2012" 100"