Intelligence Artificielle Contraintes
Bruno Bouzy
http://web.mi.parisdescartes.fr/~bouzy bruno.bouzy@parisdescartes.fr
Licence 3 Informatique
UFR Mathématiques et Informatique
Université Paris Descartes
Probl` emes de satisfaction de contraintes
Exemples de CSP
Recherche en arri`ere pour les CSPs (backtracking search) Structure des probl`emes
CSP et recherche locale
Probl` emes de satisfaction de contraintes
Exemples de CSP
Recherche en arri`ere pour les CSPs (backtracking search) Structure des probl`emes
CSP et recherche locale
Probl` emes de satisfaction de contraintes (CSP)
Probl`emes de recherche “classiques” : Un´etatest une “boite noire”
N’importe quelle structure de donn´ees qui contient un test pour le but, une fonction d’´evaluation, une fonction successeur
CSP:
Un´etatest d´efini par un ensemble devariablesXi, dont lesvaleurs appartiennent audomaineDi
Letest pour le butest un ensemble decontraintesqui sp´ecifient les combinaisons autoris´ees pour les valeurs sur des sous-ensembles de variables Exemple simple d’unlangage formel de repr´esentation
Exemple : coloriage de carte
Western Australia
Northern Territory
South Australia
Queensland
New South Wales
Victoria
Tasmania
Variables : WA,NT,SA,Q,NSW,V,T Domaines : Di ={rouge,vert,bleu}
Contraintes : les r´egions adjacentes doivent ˆetre de couleurs diff´erentes
Exemple : coloriage de carte
Western Australia
Northern Territory
South Australia
Queensland
New South Wales
Victoria
Tasmania
Graphe de contraintes
CSP binaires: chaque contrainte lie au maximum deux variables
Graphe de contraintes: les nœuds sont des variables, les arcs repr´esentent les contraintes
Victoria
WA
NT
SA
Q
NSW V
T
Vari´ et´ es de CSPs
Variablesdiscr`etes
Domaines finis: si de tailled, il y aO(dn) affectations compl`etes Par exemple, CSPs bool´eens
Domaines infinis(entiers, caract`eres...)
Par exemple, mise en place d’un planning, avec date de d´ebut/de fin pour chaque tˆache
N´ecessite unlangage de contraintes. EgStartJob1+ 5≤StartJob5
Si les contraintes sontlin´eaires, le probl`eme est soluble Si les contraintes sontnon lin´eaires, probl`eme ind´ecidable
Variablecontinues
Par exemple, temps de d´ebut/fin pour les observations du t´elescope de Hubble
Contraintes lin´eaires solubles en temps polynomial en utilisant des
Vari´ et´ es de contraintes
Contraintes unaires, ne concernent qu’une seule variable Par exemple,SA6=vert
Contraintes binaires, concernent une paire de variables Par exemple,SA6=WA
Contraintes d’ordre plus ´elev´e, concernent 3 variables ou plus Par exemple, contraintes sur les puzzles cryptarithm´etiques Pr´ef´erences(ou contraintes souples)
Par exemple,rougeest mieux quevert
Souvent repr´esentable par un coˆut associ´e `a chaque affectation de variable
⇒ Probl`emes d’optimisation de variables
Exemple : puzzle cryptarithm´ etique
O
W T
F U R
+
O W T
O W T
F O U R
X
2X
1X
3Variables : F,T,U,W,R,O,X1,X2,X3
Probl` emes CSPs du monde r´ eel
Probl`emes d’affectation (eg. qui enseigne quel cours?) Probl`emes d’emploi du temps
Configuration de mat´eriels Planification pour les transports Planification dans les usines Allocation de salles . . .
Note: beaucoup de probl`emes du mond´e r´eel impliquent des variables `a valeurs r´eelles
Formulation de la recherche standard (recherche incr´ ementale)
Les ´etats sont d´efinis par les valeurs des variables d´ej`a affect´ees Etat initial: un ensemble d’affectations vides{}
Fonction successeur: attribuer une valeur `a une variable non encore affect´ee, de fa¸con coh´erente (vis `a vis des contraintes) `a l’affectation actuelle
Test du but: toutes les variables sont affect´ees
Formulation de la recherche standard (recherche incr´ ementale)
Cet algorithme de recherche marche pour tous les CSPs
Chaque solution apparait `a une profondeur dens’il y anvariables
→ Utiliser la recherche en profondeur d’abord
n: nombre de variables;d : taille du domaine des variables;b: facteur de branchement
b= (n−p)d `a profondeurp
→ n!dnfeuilles
→ alors qu’il n’y a quednaffectations possible!!
Probl` emes de satisfaction de contraintes
Exemples de CSP
Recherche en arri`ere pour les CSPs (backtracking search) Structure des probl`emes
CSP et recherche locale
Backtracking search
L’affectation des variables estcommutative
L’ordre dans lequel on affecte les variables n’a pas d’importance WA=rougepuisNT=vert est la mˆeme chose queNT=vertpuis WA=rouge
Il n’y a donc besoin de ne consid´ererqu’une seule variablepar nœud de l’arbre de recherche
→ b=d, et doncdnfeuilles
Recherche en profondeur d’abord avec l’affectation d’une variable `a la fois est appel´eerecherche par retour arri`ere(backtracking search)
Algorithme de recherche basique pour les CSPs
Permet de r´esoudre le probl`eme desnreines pourn∼25
Algorithme de recherche par retour ar-
ri` ere
Exemple
Exemple
Exemple
Exemple
Am´ eliorer l’efficacit´ e du la recherche par backtrack
1. Comment choisir la variable `a affecter ensuite?
(Select-Unassigned-Variable)
2. Comment ordonner les valeurs des variables? (Order-Domain-Values) 3. Est-il possible de d´etecter un ´echec in´evitable plus tˆot?
4. Comment tirer avantage de la structure du probl`eme?
Am´ eliorer l’efficacit´ e du la recherche par backtrack
1. Comment choisir la variable `a affecter ensuite?
(Select-Unassigned-Variable)
2. Comment ordonner les valeurs des variables? (Order-Domain-Values) 3. Est-il possible de d´etecter un ´echec in´evitable plus tˆot?
4. Comment tirer avantage de la structure du probl`eme?
Valeurs minimum restantes (MRV)
Heuristique desvaleurs minimum restantes(MRV)
⇒ choisir une des variables ayant le moins de valeur “l´egale” possible
Heuristique du degr´ e
Si plusieurs variables ne peuvent pas ˆetre d´epartag´ees par l’heuristique MRV
Heuristique du degr´e
⇒ choisir la variable qui a le plus de contraintes `a respecter parmi les variables restantes
Am´ eliorer l’efficacit´ e du la recherche par backtrack
1. Comment choisir la variable `a affecter ensuite?
(Select-Unassigned-Variable)
2. Comment ordonner les valeurs des variables? (Order-Domain-Values) 3. Est-il possible de d´etecter un ´echec in´evitable plus tˆot?
4. Comment tirer avantage de la structure du probl`eme?
Probl`emes de satisfaction de contraintes
Valeur la moins contraignante
Etant donn´e une variable, choisir celle qui a la valeur la moins contraignante
⇒ la variable qui empˆeche le moins d’affectations possibles sur les variables restantes
Allows 1 value for SA
Allows 0 values for SA
avecn= 1000
Valeur la moins contraignante
Etant donn´e une variable, choisir celle qui a la valeur la moins contraignante
⇒ la variable qui empˆeche le moins d’affectations possibles sur les variables restantes
Allows 1 value for SA
Allows 0 values for SA
Combiner ces heuristiques permet de r´esoudre le probl`eme desnreines, avecn= 1000
Am´ eliorer l’efficacit´ e du la recherche par backtrack
1. Comment choisir la variable `a affecter ensuite?
(Select-Unassigned-Variable)
2. Comment ordonner les valeurs des variables? (Order-Domain-Values) 3. Est-il possible de d´etecter un ´echec in´evitable plus tˆot?
4. Comment tirer avantage de la structure du probl`eme?
V´ erification en avant
Id´ee : garder en m´emoire les valeurs autoris´ee pour les variables qu’il reste
` a affecter
Arrˆete la recherche lorsqu’une variable n’a plus de valeur “l´egale” possible
WA NT Q NSW V SA T
V´ erification en avant
Id´ee : garder en m´emoire les valeurs autoris´ee pour les variables qu’il reste
` a affecter
Arrˆete la recherche lorsqu’une variable n’a plus de valeur “l´egale” possible
WA NT Q NSW V SA T
V´ erification en avant
Id´ee : garder en m´emoire les valeurs autoris´ee pour les variables qu’il reste
` a affecter
Arrˆete la recherche lorsqu’une variable n’a plus de valeur “l´egale” possible
WA NT Q NSW V SA T
V´ erification en avant
Id´ee : garder en m´emoire les valeurs autoris´ee pour les variables qu’il reste
` a affecter
Arrˆete la recherche lorsqu’une variable n’a plus de valeur “l´egale” possible
WA NT Q NSW V SA T
Probl`emes de satisfaction de contraintes
Propagation de contraintes
La v´erification en avant permet de propager l’information des variables affect´ees aux variables non affect´ees, mais ne permet pas de d´etecter tous les ´echecs
NT etSAne peuvent pas ˆetre tous les deux bleus!
Lapropagation de contraintespermet de v´erifier les contraintes localement
Probl`emes de satisfaction de contraintes
Propagation de contraintes
La v´erification en avant permet de propager l’information des variables affect´ees aux variables non affect´ees, mais ne permet pas de d´etecter tous les ´echecs
WA NT Q NSW V SA T
Lapropagation de contraintespermet de v´erifier les contraintes localement
Propagation de contraintes
La v´erification en avant permet de propager l’information des variables affect´ees aux variables non affect´ees, mais ne permet pas de d´etecter tous les ´echecs
WA NT Q NSW V SA T
Consistence des arcs
La forme la plus simple de propagation est de rendre les arcsconsistents X →Y est consistant ssi pourtoutevaleurx deX, il y aau moins uny autoris´e
WA NT Q NSW V SA T
Consistence des arcs
La forme la plus simple de propagation est de rendre les arcsconsistents X →Y est consisistant ssi pourtoutevaleurx deX, il y aau moins un y autoris´e
WA NT Q NSW V SA T
Consistence des arcs
La forme la plus simple de propagation est de rendre les arcsconsistents X →Y est consisistant ssi pourtoutevaleurx deX, il y aau moins un y autoris´e
WA NT Q NSW V SA T
Consistence des arcs
La forme la plus simple de propagation est de rendre les arcsconsistents X →Y est consisistant ssi pourtoutevaleurx deX, il y aau moins un y autoris´e
WA NT Q NSW V SA T
SiX perd une valeur, les voisins deX doivent ˆetre rev´erifi´es
Consistence des arcs
La forme la plus simple de propagation est de rendre les arcsconsistents X →Y est consisistant ssi pourtoutevaleurx deX, il y aau moins un y autoris´e
WA NT Q NSW V SA T
Algorithme de v´ erification de consis-
tence d’arcs
Probl` emes de satisfaction de contraintes
Exemples de CSP
Recherche en arri`ere pour les CSPs (backtracking search) Structure des probl`emes
CSP et recherche locale
Structure des probl` emes
Victoria
WA
NT
SA
Q
NSW V
T
La Tasmanie est unsous-probl`eme ind´ependant
CSPs structur´ es sous forme d’arbre
A
B C
D
E
F
Theorem
Algorithme pour les CSPs structur´ es sous forme d’arbre
1. Choisir une variable comme ´etant la racine, et ordonner les variables de la racine aux feuilles, de fa¸con `a ce que le parent de chaque nœud le pr´ec`ede
A B C
D E F
A B C D E F
2. Pourj den`a 2, appliquer RemoveInconsistent(Parent(Xj),Xj) 3. Pourj de 1 `an, affecterXjde fa¸con `a ce qu’il soit consistent avec
Parent(Xj)
CSPs quasiment structur´ es sous forme d’arbre
Conditionnement: instancier une variable, restreindre les domaines de ses voisins
Victoria
WA
NT
Q
NSW V
T T
Victoria
WA
NT
SA
Q
NSW V
Probl` emes de satisfaction de contraintes
Exemples de CSP
Recherche en arri`ere pour les CSPs (backtracking search) Structure des probl`emes
CSP et recherche locale
CSP et recherche locale
Les algorithmes de recherche locale fonctionnent avec des ´etats
“complets”, c’est `a dire dans lesquels toutes les variables sont affect´ees.
Pour appliquer ces algorithmes aux CSPs :
Permettre d’avoir des ´etats avec des contraintes non satisfaites Les op´erateurs permettent der´eaffecterla valeur d’une variable S´election des variables : n’importe quelle variable en conflit S´election d’une valeur grace `a l’heuristicemin-conflict
choisir une valeur qui enfreint le moins de contraintes
par exemple,hillclimbavech(n) = nombre total de contraintes non respect´ees
Exemple : les n reines
Etats: 4 reines sur 4 colonnes (44= 256 ´etats) Actions: d´eplacer une reine dans sa colonne Test du but: pas d’attaque entre les reines
Evaluation: h(n) est le nombre d’attaques sur le plateau
h = 5 h = 2 h = 0
Etant donn´e un ´etat initial al´eatoire, cet algorithme peut r´esoudre avec