Vous êtes sur la page 1sur 45

Cours de Programmation par Contraintes

Wady Naanaa
Facults des Sciences, Universit de Monastir
5 novembre 2011
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 1 / 38
Plan
1
Introduction
2
Filtrage de CSP
3
Rsolution de CSP
4
CSP Soft
5
Modlisation de Problmes rels
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 2 / 38
Plan
1
Introduction
2
Filtrage de CSP
3
Rsolution de CSP
4
CSP Soft
5
Modlisation de Problmes rels
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 2 / 38
Plan
1
Introduction
2
Filtrage de CSP
3
Rsolution de CSP
4
CSP Soft
5
Modlisation de Problmes rels
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 2 / 38
Plan
1
Introduction
2
Filtrage de CSP
3
Rsolution de CSP
4
CSP Soft
5
Modlisation de Problmes rels
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 2 / 38
Plan
1
Introduction
2
Filtrage de CSP
3
Rsolution de CSP
4
CSP Soft
5
Modlisation de Problmes rels
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 2 / 38
Plan
1
Introduction
2
Filtrage de CSP
3
Rsolution de CSP
4
CSP Soft
5
Modlisation de Problmes rels
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 3 / 38
La programmation par contraintes : cest quoi ?
Cest un paradigme de programmation ddi la rsolution de
problmes combinatoires, en particulier, les problmes de satisfaction et
doptimisation de contraintes
Atouts de la PPC :
Formulations efcaces de problmes doptimisation combinatoire;
Permet dexploiter la structure des problmes pour mieux les
rsoudre.
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 4 / 38
La programmation par contraintes : comment a marche?
Avec les langages de programmation par contraintes, il suft de
1
exprimer le problme rsoudre en termes de variables et de contraintes ;
2
passer le programme obtenu lordinateur ;
3
lordinateur le rsout et afche les solutions (si elles existent).
4
Pas besoin de prciser comment lordinateur doit procder.
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 5 / 38
Un exemple de problme de satisfaction de contraintes
La rgle de Golomb
Trouver un ensemble de n entiers positifs infrieurs une constante
donne k tels que toutes les diffrences entre les entiers, pris deux
deux, sont distinctes.
Solutions pour n = 4 et k = 7 : (0, 1, 3, 7), (0, 1, 4, 6).
Ce problme se gnralise en un problme dallocation de frquence
radio.
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 6 / 38
Un deuxime exemple
Sudoku
4 1
3 5 1 9
6 3
7 5 8
8 1 9 6
9 2 7
6 9
8 1 2 4
4 9
Complter la grille avec les
chiffres de 1 9 de telles sorte
quun mme chiffre ne se rpte
pas sur la mme ligne, la mme
colonne ou dans le mme carr
33 ;
Solution ?
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 7 / 38
Un deuxime exemple
Sudoku
5 4 2 1 3 9 8 7 6
7 6 3 5 4 8 2 1 9
1 9 8 7 2 6 5 4 3
4 3 7 6 9 5 1 2 8
2 8 1 4 7 3 9 6 5
9 5 6 2 8 1 7 3 4
6 2 4 9 5 7 3 8 1
8 1 9 3 6 2 4 5 7
3 7 5 8 1 4 6 9 2
Complter la grille avec les
chiffres de 1 9 de telles sorte
quun mme chiffre ne se rpte
pas sur la mme ligne, la mme
colonne ou dans le mme carr
33 ;
Solution ?
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 7 / 38
Application rels Trs diverses
Informatique Analyse de programme, Robotique;
Chimie identication de structures molculaires ;
Biologie Repliement de protine, Squencage de lADN;
conomie Ordonnancement ;
Linguistique Analyse grammaticale ;
Mdecine Aide la diagnostique ;
Physique Modlisation dun systme ;
Gographie Systmes de goinformation.
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 8 / 38
Quest-ce quune contrainte ?
Cest une relation entre diffrentes inconnues (variables), prenant
chacune ses valeurs dans un ensemble donn (domaine)
Une contrainte restreint les valeurs que peuvent prendre,
simultanment, les variables.
Exemple : E = mc
2
qui restreint les valeurs que lon peut affecter,
simultanment, aux variables E et m, c tant une constante.
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 9 / 38
Types de contraintes
Contraintes arithmtiques, portant sur des variables valeurs
numriques :

Contraintes numriques sur les rels : U = RI, x2+y2 1

contraintes de diffrence : x ,= y

Contraintes numriques sur les entiers : x y [2]


Contraintes logiques portant sur des variables propositionnelles :
x y, x y z ;
Contrainte explicites :
(x, y) (1, 2), (1, 3), (2, 3), (3, 1), (x, y, z) (1, 2, 3), (2, 1, 3).
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 10 / 38
Arit dune contrainte
Cest le nombre de variables impliques dans la contraintes
On distingue :
contraintes unaire (arit = 1) : x 0 [2]
contraintes binaire (arit = 2), qui mettent en relation 2 variables :
x ,= y
contraintes ternaire (arit = 3), qui mettent en relation 3 variables :
x x +y y = z z
contraintes n-aire (arit = n), qui mettent en relation un ensemble
de n variables : All-Different(x
1
, . . . , x
n
)
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 11 / 38
Dnition formelle dun CSP
Denition
Un Problme de Satisfaction de Contraintes (CSP) est dni par un triplet
(X, D, C) o :
X =x
1
, . . . , x
n
: ensemble ni de variables
D =D
1
, . . . , D
n
: ensemble de domaines de valeurs, D
i
est tant le
domaine de valeur de x
i
C =c
1
, . . . , c
m
: ensemble ni de contraintes, chaque c
i
est dnie par

une porte var (c


i
) =x
i
1
, . . . , x
i
r
X

une relation rel (c


i
) D
i
1
. . . D
i
r
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 12 / 38
CSP domaines nis
Tout ensemble isomorphe une partie nie de N
Ensemble des entiers naturels reprsentables en machine
boolens : faux,vrai ou 0,1
couleurs : Rouge, Vert, Bleu,. . .
jours de la semaine : lundi, mardi,. . .
un ensemble ni de rels
etc. . ..
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 13 / 38
Modlisation de problmes en termes de CSP
identier les variables (les inconnues)
identier les domaines de valeur de ces variables
identier les contraintes
souvent plusieurs modlisations possibles, critres de choix :

simplicit

efcacit : nombre de variable, taille des domaines, arit des contraintes.


Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 14 / 38
Modlisation de problmes en termes de CSP (un exemple)
Le problme des 4 reines
Placer 4 reines sur chiquier 44 de telle sorte
quaucune paire de reine ne soit en prise (pas sur
la mme ligne, pas sur la mme colonne, pas sur la
mme diagonale).
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 15 / 38
Modlisation de problmes en termes de CSP (suite)
Une modlisation possible du problme des 4 reines
X =x
1
, x
2
, x
3
, x
4
;
D =D
1
, D
2
, D
3
, D
4
avec D
i
=1, 2, 3, 4 pour tout i , 1 i 4 ;
C = ligne diagonale

ligne =x
i
,= x
j
[ 1, i < j 4

diagonale =[x
i
x
j
[ ,=[i j [ [ 1 i < j 4

pour les colonnes, cest implicite, pas besoin de contrainte


Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 16 / 38
Instanciations et consistance
Instanciation : une affectation de valeurs aux variables

(x
1
, 2), (x
2
, 4), (x
3
, 1)) (pb des 4-reines)
Si une instenciation I instancie toutes les variables du CSP alors I est
complte sinon I est partielle

(x
1
, 2), (x
2
, 1), (x
3
, 3), (x
4
, 4)) est complte
I satisfait une contrainte c si toutes les variables de var (c) sont
instancies dans I par une combinaison de rel (c)
I est consistante si elle satisfait toutes les contraintes, elle est
inconsistante si elle viole une ou plusieurs contraintes
Solution : une instanciation complte consistante

(x
1
, 2), (x
2
, 4), (x
3
, 1), (x
4
, 3))
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 17 / 38
Structure dun CSP
Cest un hypergraphe o :
les sommets variables
les hyperartes portes des contraintes
Pour les CSPs binaires, cest un graphe simple.
Exemple : graphe de contrainte du CSP
modlisant le problme des 4 reines.
Graphe de contraintes
x
2
x
1
x
3
4
x
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 18 / 38
Espace de recherche
Ensemble dans lequel la solution doit tre cherche : D
1
D
2
. . . D
n
Si [D
i
[ = d, pour i = 0, . . . , n 1 alors on a d
n
combinaisons possibles
Un example impliquant 4 variables avec D
1
= D
2
= D
3
=0, 1 et
D
4
=0, 1, 2
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 19 / 38
Modlisation du problme de la rgle de Colomb
X =x
1
, . . . , x
n
x
i ,j
[ 1 i < j n
D =D
1
, . . . , D
n
D
i ,j
[ 1 i < j n

D
i
=0, . . . , n, i : 1, . . . , n

D
i ,j
=1, . . . , n, i , 1 i < j n
C = C
2
C
/
2
C
3

C
2
=x
i
< x
i +1
[ 1 i < n

C
/
2
=x
i ,j
,= x
k,l
[ 1 i < j n, 1 k < l n, (i , j ) (k, l )

C
3
=x
i ,j
= x
j
x
i
[ 1 i < j n
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 20 / 38
Application relle : Etiquettage de scne
On dispose dune image dune scne contenant
des batiments et le but est de reconnatre les
btiments dans la scne en tiquetant les artes
qui les dlimitent.
Il y a 4 tiquettes possibles :
+ : arte convexe
: arte concave
: objet droite
: arrire plan gauche
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 21 / 38
Application relle : tiquetage de scne (suite)
Les jonctions possibles
Une solution
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 22 / 38
Application relle : tiquetage de scne (suite)
Modlisation
Les variables les artes de limage
Les domaines les tiquettes
Les contraintes les jonctions
Les relations dnissant les contraintes :

V =(, ), (, ), (, ), (, ), (+, ), (, +)

F =(, +, ), (, +, ), (+, , +)

Y =(+, +, +), (, , ), (, , ), (, , ), (, , )

T =(, +, ), (, , ), (, , ), (, , )
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 23 / 38
Application relle : tiquetage de scne (suite)
Formellement
X =x
1
, . . . , x
17

D =D
1
, . . . , D
17
avec D
i
=+, , , pour tout i , 1 i 17
C =c
1
, . . . , c
13

var (c
1
) =x
1
, x
2
, x
3
, var (c
2
) =x
1
, x
5
, . . .

rel (c
1
) = F, rel (c
2
) = V, rel (c
4
) = Y, rel (c
8
) = T, . . .
c
6
c
1
c
2
x
7 c
7
x
12
c
11
x
14
x
3
x
1 x
x
x
x
x
5
x
6
2 x
13
x
4
8
x
9
x
11
x
10
x
15
16
17
c
c
c
c
3
5
c
8
c
c
10
9
12
c
4
13
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 24 / 38
Le cavalier dal adli
Modlisez le problme suivant en
termes de CSP binaire : Comment faire
visiter par un cavalier chaque case dun
chiquier pour le faire revenir son
point de dpart sans jamais repasser
sur la mme case ?
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 25 / 38
Plan
1
Introduction
2
Filtrage de CSP
3
Rsolution de CSP
4
CSP Soft
5
Modlisation de Problmes rels
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 26 / 38
Filtrage de CSP
But : rduire les domaines des variables et les relations des contraintes pour
acclrer la rsolution de problmes.
Il existe plusieurs niveaux de ltrage :
sommet-consistance,
arc-consistance,
k-consistance,
singleton arc-consistance
En pratique, on utilise le sommet et larc-consistance, rarement les autres
niveaux
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 27 / 38
Sommet-consistance
Une contrainte unaire c
x
sur la variable x ayant le domaine D
x
est
sommet-consistante ssi :
a D
x
, a rel (c
x
)
Un CSP est sommet-consistant si toutes les contraintes qui le composent
sont sommet-consistantes.
Exemples

Si D
x
=4, 6 et c
x
= pair (x) alors c
x
est sommet-consistante.

Si D
x
= [2 ..12] et c
x
= x > 5 alors c
x
nest pas sommet-consistante.
Un CSP non sommet-consistent peut toujours tre transform en un CSP
sommet-consistent quivalent par ltrage des domaines.
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 28 / 38
Algorithme de sommet-consistance
Procdure NC-1(X, D, C)
1
Pour tout x X faire
2
pour tout v D
x
faire
3
si c C tel que var (c) =xv / rel (c) alors
4
D
x
D
x
v
Complexit de NC-1
O(nd) o n =[X[ et d = max
xX
[D
x
[.
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 29 / 38
Arc-consistance
Nous nous limitons aux contraintes binaires (pour des raisons de
simplicit).
Une contrainte binaire c
x,y
est arc-consistente ssi :
u D
x
v D
y
telle que (u, v) rel (c
x,y
)
Un CSP binaire est arc-consistent si toutes ses contraintes sont
arc-consistentes.
Exemples

Si D
x
=1, 3, D
y
=2, 4 et c
x,y
= x +y 5 alors c
x,y
est arc-consistante.

Si D
x
=1, 3, D
y
=2, 4 et c
x,y
= x +y < 5 alors c
x,y
nest pas
arc-consistante.
Un CSP binaire non arc-consistent peut toujours tre transform en un
CSP binaire arc-consistent quivalent par ltrage des domaines.
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 30 / 38
Algorithme darc-consistance
Procdure AC-3(X, D, C)
1
NC-1(X, D, C)
2
E (x, y) [ c
x,y
C
3
Tant que E ,= faire
4
E E (x, y)
5
si Revise_domaine((x, y), X, D, C) alors
6
E E (z, x) [ c
z,x
Cz ,= y
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 31 / 38
Algorithme darc-consistance (suite)
Fonction Revise_domaine((x, y), X, D, C)
1
elim faux
2
pour tout u D
x
faire
3
si v D
y
tel que (u, v) rel (c
x,y
) alors
4
D
x
D
x
u
5
elim vrai
6
retourner(elim)
Complexit de AC-3
O(ed
3
) o e =[C[ et d = max
xX
[D
x
[.
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 32 / 38
Exemple darc-consistance
Soit le CSP dcrit par le graphe de contrainte suivant :
On suppose le mme domaine pour toutes les variables : {0,1,2}
On cherche tablir larc-consistance.
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 33 / 38
Exemple darc-consistance
Soit le CSP dcrit par le graphe de contrainte suivant :
On suppose le mme domaine pour toutes les variables : {0,1,2}
On cherche tablir larc-consistance.
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 33 / 38
Singleton arc-consistance
Procdure SAC(X, D, C)
1
Rpter
2
considrer x X et v D
x
3
rduire momentanment D
x
v
4
appliquer un algorithme darc-consistance
5
Si un domaine devient vide alors
6
D
x
D
x
v
7
Jusqu pas de changement.
Complexit de SAC
O(end
3
) o e =[C[, n =[X[ et d = max
xX
[D
x
[.
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 34 / 38
Exemple de singleton arc-consistance
On part du CSP arc-consistent de lexemple prcdant
On cherche tablir le singleton arc-consistance.
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 35 / 38
Exemple de singleton arc-consistance
On part du CSP arc-consistent de lexemple prcdant
On cherche tablir le singleton arc-consistance.
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 35 / 38
Plan
1
Introduction
2
Filtrage de CSP
3
Rsolution de CSP
4
CSP Soft
5
Modlisation de Problmes rels
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 36 / 38
Plan
1
Introduction
2
Filtrage de CSP
3
Rsolution de CSP
4
CSP Soft
5
Modlisation de Problmes rels
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 37 / 38
Plan
1
Introduction
2
Filtrage de CSP
3
Rsolution de CSP
4
CSP Soft
5
Modlisation de Problmes rels
Wady Naanaa (FSM) Cours de PPC 5 novembre 2011 38 / 38

Vous aimerez peut-être aussi