Académique Documents
Professionnel Documents
Culture Documents
Amal HALLOU
amalhallou@gmail.com
•Un problème :
Vérifier qu’une solution résout le problème
Simulation, Vérification
Trouver une solution du problème
Programmation par Contraintes
Trouver la meilleure solution du problème
Programmation Linéaire
Objectif :
Trouver une solution réalisable
•qui respecte des contraintes faciles à vérifier
Formules mathématiques simples, tableaux de
valeurs possibles
•avec des ensembles de valeurs possibles pour les variables de
décision
c) CSP continus
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI18
1. PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)
1) Domaine
Soit 𝑉1 , 𝑉2 , …, 𝑉𝑛 les variables de décision d’un CSP
Chaque variable 𝑉𝑖 doit prendre ses valeurs dans le domaine 𝐷𝑉𝑖
- Discret {1,5,7} ou continu [1,9]
- Fini ou infini
2) Contraintes
Une contrainte restreint les valeurs que l’on peut affecter
simultanément à des variables (les variables concernées par cette
contrainte)
* Une contrainte restreint les valeurs que l’on peut affecter à une
variable (x<5); à deux variables simultanément (x<y); ou a
plusieurs variables simultanément (x+y<z+t)
2) Contraintes
2 types de déclaration:
- En extension : énumération des valeurs admises
(x = 1 et y = 2) ou (x = 2 et y = 4) ou (x = 3 et y = 0)
- En compréhension : formules mathématiques, …
x<y;
(ABC) forme un triangle isocèle ;
x, y, z distincts deux à deux
2) Contraintes
-Contraintes logiques
Si x = 4 alors y = 5
x = y ou x = 2y
-Contraintes globales
Toutes les variables sont différentes
-Méta-contraintes
La valeur 5 est utilisée exactement 3 fois
2) Contraintes
- Contrainte unaire :
X<5
porte sur une seule variable
- Contrainte binaire :
X<Y
porte sur deux variables
- Contrainte n-aire :
porte sur n variables X+Y<Z+T
2) Contraintes
- Contrainte induite :
Contrainte satisfaite par toutes les solutions de P
peut être rajouté au CSP sans modifier l’ensemble des solutions
Assignation (Affectation)
Une assignation A de V dans D est une fonction qui associe à une
variable 𝑉𝑖 de V une valeur 𝑑𝑖 du sous-domaine 𝐷𝑉𝑖
𝑑𝑖 est assignée à 𝑉𝑖 par A
Exemple : A = {(X1,V1), (X3,V3), (X4,V4)}
Assignation (Affectation)
Une affectation peut-être :
- Partielle : affectation de certaines variables
ou
- Totale : affectation de toutes les variables
Assignation (Affectation)
Exemple :
V = {a, b, c, d}
D(a) = D(b) = D(c) = D(d) = {0, 1} Domaine discret fini
C = {a ≠ b ; c ≠ d ; a + c < b} 2 contraintes binaires , 1 contrainte 3-aires
A1 = {(a, 1), (b, 0), (c, 0), (d, 0)} totale, inconsistante
A4 = {(a, 0), (b, 1), (c, 0), (d, 1)} totale, consistante
Solution du CSP
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI18
PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)
Types de CSP :
• CSP Discret / Continu :
CSP discret : CSP dont tous les domaines sont finis ou infinis de
valeurs symboliques ou numériques dénombrables
CSP continu : CSP dont tous les domaines sont numériques
indénombrables, en général des intervalles sur R
• CSP Binaire ou non :
CSP binaire : CSP dont toutes les contraintes binaires
Types de CSP :
• CSP consistant
C’est un CSP qui admet une solution
• CSP globalement consistant
C’est un CSP dont toute instanciation consistante est globalement
consistante
Exemples d’application
1. Problème des quatre couleurs
Exemples d’application
2. Problème des N Reines
Exemples d’application
3. Le Carré magique
= 15 = 15 = 15
= 15
= 15
= 15
= 15 = 15
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI18
PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)
Exemples d’application
D’abord, appliqué à des problèmes de jeu,
maintenant orienté sur des CSP de taille réelle :
- aménagement intérieur d’un avion à l’Aérospatiale
- planification du réseau France Telecom
...
Domaines d’application
•Agencement
• Diagnostique et Vérification
• Planification
• Ordonnancement et Emplois du temps
• Emballage et Placement
• Logistique
Domaines d’application
• Informatique : Analyse de programme, Robotique
• Biologie : Repliement de protéine, Séquençage de l’ADN
• Économie : Ordonnancement
• Linguistique : Analyse grammaticale
• Médecine : Aide au diagnostique
• Physique : Modélisation des systèmes
• Géographie : Systèmes de géo-information
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI18
PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)
Secteurs d’application
•Industrie : transport de matières nucléaires (CEA) …
•Transport : rotation d’équipages (Corsair), gestion de port (port
de Singapour) …
•Télécommunications : composants visuels (Hewlett-Packard) …
•Biologie moléculaire : prédiction de structure protéique (Esprit) …
•Environnement : pollution des eaux (ville de Venise), recyclage
(Michelin) …
•Banques : aide à l’attribution de crédits (Crédit Lyonnais, Société
Générale) …
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI18
2. MODÉLISATION DES PROBLÈMES DE SATISFACTION DES
CONTRAINTES (CSP)
Exemples :
1) Le problème des N Reines
Placer N reines dans un échiquier N*N sans qu’elles ne se
menacent
Une reine - par ligne,
- par colonne
- par diagonale
Exemples :
1) Le problème des N Reines
N=4
Exemples :
2) Le retour de la monnaie
On s’intéresse à un distributeur automatique de boissons.
L’utilisateur insère des pièces de monnaie pour un total de T
centimes de dirhams, puis il sélectionne une boisson, dont le prix
est de P centimes de dirhams (T et P étant des multiples de 10).
Il s’agit alors de calculer la monnaie à rendre, sachant que le
distributeur a en réserve A pièces de 2 dirhams, B pièces de
1dirham, C pièces de 50 centimes, D pièces de 20 centimes et E
pièces de 10 centimes
Exemples :
3) Send More Money
On considère l’addition suivante :
SEND
+ MORE
= MONEY
Chaque lettre représente un chiffre différent (entre 0 et 9).
On souhaite connaitre la valeur de chaque lettre, sachant que la
première lettre de chaque mot représente un chiffre non nul
𝑹𝒊 𝐃𝐗𝟏 x… x 𝐃𝐗𝑖
Ci = <Si, Ri>
|Si| = l’arité de Ci
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI18
MODÉLISATION DES PROBLÈMES DE SATISFACTION DES
CONTRAINTES (CSP)
Modélisation des CSP à contraintes en extension
Exemple : Firme automobile
C1=<S1,R1> , S1={Cca,Cp}, R1={(rose,rose),(rouge,rouge),(noire,noire)}
C2=<S2,R2> , S2={Cc,Cp},
R2={(rose,rose),(rouge,rouge),(noire,noire)}=R1
C3=<S3,R3> , S3={Cca,Cc},
R3={(rose,rose),(rouge,rouge),(noire,noire)}=R1
C4=<S4,R4> , S4={Ce,Cca}, R4={(rose,rouge),(rose,noire),(rouge,noire)}
C5=<S5,R5> , S5={Cpc,Cca},
R5={(blanche,rose),(blanche,rouge),(blanche,noire)}
C6=<S6,R6> , S6={Cb,Cca}, R6={(rouge,noire)}
X2 X3 Hyper-graphe
C1 C2
X1 X4
C3
Dans le cas d’un CSP binaire, un graphe suffit
arrêtes = ensemble de 2 sommets connectés
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI18
MODÉLISATION DES PROBLÈMES DE SATISFACTION DES
CONTRAINTES (CSP)
Modélisation des CSP à contraintes en extension
Dans le cas d’un CSP binaire, un graphe suffit
arc = ensemble de 2 sommets connectés
Le sens de la flèche dans ce cas est très important (Relation
Ri) : les valeurs dans Ri dépendent des variables sources et
destination : relation unidirectionnelle
C4=<S4,R4> , S4={Ce,Cca}, R4={(rose,rouge),(rose,noire),(rouge,noire)}
Source=Ce (rose, rouge) ; destination =Cca
Si la relation est bidirectionnelle :
C1=<S1,R1> , S1={Cca,Cp}, R1={(rose,rose),(rouge,rouge),(noire,noire)}
Cca et Cp jouent le même rôle dans la relation arrête
Un CSP peut-être :
- Unaire : toutes les contraintes sont unaires
- Binaire : toutes les contraintes sont binaires
- N-aire
binaire
Discret
-CSP N-aire
continu
…..
T_R[3]=1 T_R[3]=4
A.Affectation
HALLOU totale inconsistante PROGRAMMATION PAR CONTRAINTES GI18
1. RÉSOLUTION DES PROBLÈMES DE SATISFACTION DES
CONTRAINTES (CSP) BINAIRES DISCRETS
1. Résolution naïve
Les remèdes :
-S’arrêter quand une affectation partielle est inconsistante
backtrack
-Restreindre les domaines des variables durant l’exécution
propagation de contraintes
-Utiliser des heuristiques
-Utiliser nos connaissances sur le problème étudié
...
Affectation
partielle
inconsistante
L2=4
D(L3)={1}
D(L3)={2} D(L4)={1,3}
D(L3)={} D(L4)={3}
D(L4)={3}
D(L4)={3}
L3=2
𝑿𝟑 = 𝟎
X3 ≠X4 D(X4)={1} 𝑿𝟒 = 𝟏
arg3(𝑋5 ) = X3 𝑿𝟓 = (𝟎, 𝟏, 𝟎)
Une solution du CSP équivalent S’=(X1=0,X2=1,X3=0,X4=1,X5=(0,1,0))
Une solution du CSP initial : S=(X1=0,X2=1,X3=0,X4=1)
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI18
1. RÉSOLUTION DES PROBLÈMES DE SATISFACTION DES
CONTRAINTES (CSP) BINAIRES DISCRETS
3. Propagation des contraintes
b. Look ahead (anticipation par arc) :
A chaque étape k de 1…k…n
1) instancier la variable X𝑘 par une valeur v𝑘
2) ∀ X𝑖 , i>k et ∀ C𝑗 reliant X𝑖 et X 𝑘 : enlever toutes les valeurs de
X𝑖 incompatibles avec la valeur v𝑘 choisie pour X𝑘
3) ∀ X𝑖 , ∀ X𝑗 , ∀ C𝑖 reliant X𝑖 et X𝑗 i > j et j ≥ k, enlever toutes les
valeurs de X𝑗 qui n'ont pas de valeurs compatibles dans X𝑖
4) si dom(X𝑖 ) = ∅ alors on essaie la valeur suivante pour X𝑘 s'il y
en a une, sinon retour-arrière
5) Sinon, on passe à l’étape suivante
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI18
1. RÉSOLUTION DES PROBLÈMES DE SATISFACTION DES
CONTRAINTES (CSP) BINAIRES DISCRETS
3. Propagation des contraintes
b. Look ahead (anticipation par arc) :
Exemple : Jeu des 4 reines D(L2)={4}
D(L3)={1,3}
L1=1 D(L4)={1,3,4}
D(L2)={3,4}
L2=4
D(L3)={2,4}
D(L3)={1}
D(L4)={2,3}
D(L4)={1,3}
L3=1
L2=3 D(L3)={}
D(L4)={3}
D(L2)={4}
L2=4 D(L3)={2}
L3=3 D(L4)={}
X1 X2
{R, {R,
J, J,
V} V}
X1 X3
{R, {R,
V} V}
X2 CSP arc-consistant
{R,
V}
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI18
1. RÉSOLUTION DES PROBLÈMES DE SATISFACTION DES
CONTRAINTES (CSP) BINAIRES DISCRETS
L’arc-consistance
• X = {X1 , X2 , X3 }
• D1 = D2 = D3 = {rouge, vert}
• C = {X1 ≠ X2 , X1 ≠ X3 , X2 ≠ X3 }
X1 X3
{R, {R,
V} V}
V}
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI18
1. RÉSOLUTION DES PROBLÈMES DE SATISFACTION DES
CONTRAINTES (CSP) BINAIRES DISCRETS
L’arc-consistance
• X = {X1 , X2 , X3 }
• D1 = D2 = D3 = {rouge, vert}
• C = {X1 ≠ X2 , X1 ≠ X3 , X2 ≠ X3 }
L’exemple est consistant d’arc alors qu’il ne possède pas de
solution
La consistance d’arc est une consistance locale qui ne garantit pas
l’existence d’une solution
Un CSP qui n’est peut pas être rendu arc-consistant n’est pas
consistant
Un CSP qui est arc-consistant peut être inconsistant
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI18
1. RÉSOLUTION DES PROBLÈMES DE SATISFACTION DES
CONTRAINTES (CSP) BINAIRES DISCRETS
L’arc-consistance
x<y
x y
{1, {1, u
2, 2, {1,
3, 3, 2,
4, 4, 3,
5, 5, y<z 4,
6, 6, 5,
7} 7} 6,
7}
t y<t z
x<t {1, {1,
2, 2, z<u
3, 3,
4, 4,
5, 5,
6, 6,
7} t<z 7}
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI18
2. RÉSOLUTION DES PROBLÈMES DE SATISFACTION DES
CONTRAINTES (CSP) N-AIRES DISCRETS
Toutes les méthodes de résolution qui s’utilisent pour les CSP
binaires peuvent être utilisées également pour les CSP n-aire :
1. Résolution naïve (Generate & test)
2. Backtracking
3. Propagation des contraintes :
- Forward checking
- Look ahead
……
Affectation totale consistante = une solution du CSP
CSP continu
= Les domaines des variables sont des intervalles
Utilité des intervalles
- manipuler des données imprécises
•U = 12 V ± 0.025 ∈ [11.975, 12.025]
- représenter les réels
• 1 + 1/3 ∈ [1.3333333, 1.33333334]
- raisonner sur des ensemble de valeurs
• x ∈ [3,9] ∧ y ∈ [2,12] ⇒ x + y ∈ [5,21]
Règles de calcul :
Soit ⊙ un opérateur binaire parmi {+,−, ∗, /} et
[a, b] ⊙ [c, d] = {x ⊙ y tel que a ≤ x ≤ b et c ≤ y ≤ d} alors :
X + Y = [a, b] + [c, d]
= [a + c, b + d]
X - Y = [a, b] - [c, d]
= [a - d, b - c]
X * Y = [a, b] * [c, d]
= [min(a*c, a*d, b*c, b*d), max(a*c, a*d, b*c, b*d)]
X / Y = [a, b] / [c, d]
= [a, b] * [1/d, 1/c] si 0 ∉ [c, d]
Règles de calcul :
Exemples:
[-2, 3] + [1,4] =
[-1, 7]
[-2, 3] - [1,4] =
[-6, 2]
[-2, 3] * [1,4] =
[-8, 12]
[-2, 3] / [1,4] =
[-2, 3]
Règles de calcul :
Propriétés classiques
0 + X = [0, 0] + [a, b] = X
1 * X = [1, 1] * [a, b]
= [min(a, b), max(a, b)] = [a, b]
=X
X + X = [a, b] + [a, b]
= [a + a, b + b] = [2 * a, 2 * b]
=2*X
Particularités
X - X = [a, b] - [a, b] = [a - b, b -a]
≠ 0 ([0, 0])
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI18
3. RÉSOLUTION DES CSP CONTINUS
Règles de calcul :
+ et * sont commutatives et associatives
* est sous-distributive par rapport à + :
A * (B + C) ⊆ A* B + A * C
(distributivité lorsque B * C > 0)
Exemple:
A = [-2, -1], B = [1, 2], C = [-1, 3]
-A * (B + C) = [-2, -1]*([1, 2]+[-1, 3])
= [-2, -1]*[0, 5] = [-10, 0]
-A * B + A * C = [-2, -1]*[1, 2]+[-2, -1]*[-1, 3]
= [-4, -1]+[-6, 2] = [-10, 1]
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI18
3. RÉSOLUTION DES CSP CONTINUS
CSP continu :
Un CSP à intervalles (ou ICSP) est un triplet (X, D, C) où
-X = {X1 , …, Xn} est un ensemble de n variables numériques
-D = {D1 , …, Dn} est l'ensemble des domaines des n variables
avec Di = dom(Xi) est un intervalle ou une union d'intervalles
-C = {C1 , …, Cm} est un ensemble de contraintes
La 2-B-consistance:
approximation de la consistance d’arc
⋄ La contrainte Cj est 2B-Consistante pour la variable Xi de domaine
Di= [a, b], s’il existe des valeurs dans les domaines de toutes les
autres variables qui satisfont Cj lorsque Xi est instanciée avec a et
lorsque Xi est instancié avec b
Un CSP est 2B-Consistant ssi toutes ses contraintes sont 2B–
Consistantes
La 2-B-consistance:
La 2-B-Consistance est une consistance plus faible que la
consistance d’arc :
⋄ La consistance d’arc impose une condition sur tous les éléments
des domaines
⋄ La 2-B-Consistance impose une condition aux seules bornes de
l’intervalle qui contient les domaines
La 2-B-consistance:
Exemple :
P = {{x, y}, {Dx, Dy}, {x = y*y}} avec
Dx = [1, 4], Dy = [−2,+2]
P est 2-B-Consistant, mais pas consistant d’arc car la valeur 0 de
Dy n’a pas de support dans Dx
2-B-consistance :
x=y*y : * x=1: y=1 donc x=1 a un support dans le domaine de y
* x=4 : y=2 ou -2 : x=1 a un support dans le D(y)
* y=-2: x=4 donc y=-2 a un support dans le D(x)
* y=2 : x=4 donc y=2 a un support dans le D(x)
Donc CSP 2-b-consistant
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI18
3. RÉSOLUTION DES CSP CONTINUS
Résolution de ICSP :
- Etape 1 : Déterminer les variables de cycle
- Etape 2 : Expression en fonction des variables hors cycle
- Etape 3 : Elimination des règles calculant une variable de cycle
- Etape 4 : Ajout des règles obtenues à l’étape 2
Résolution de ICSP :
Exemple
c1 : X + T = Y ; c2 : Y + T = Z
1) déterminer les variables des cycles : Y et T
2) expression en fonction des variables hors cycles :
Y = (X + Z) /2 et T = (Z - X) /2
3) élimination des règles calculant une variable de cycle :
Y = X + T, Y = Z - T, T = Y - X, T = Z - Y
4) ajout des règles obtenues en 2 :
Y = (X + Z) / 2, T = (Z - X) / 2, X = Y - T, Z = Y + T
Avec : dom(X) = [1, 1], dom(Y) = [1, 11], dom(T) = [0, 10],
dom(Z) = [11, 11]
Solution : x =1, y = 6, t = 5, z = 11
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI18
3. RÉSOLUTION DES CSP CONTINUS
Résolution de ICSP :
Exemple
dom(X) = [1, 10], dom(Y) = [1, 11], dom(T) = [0, 10],
dom(Z) = [-1, 11]
c1 : X + T = Y ; c2 : Y + T = Z
X=Y-T; T=Y-X; Y=X+T (3)
Y=Z-T; Z=Y+T; T=Z-Y(3)
1) déterminer les variables des cycles : Y et T
2) expression en fonction des variables hors cycles :
T-Y=X et T+Y=Z 2*T=X+Z T=(X+Z)/2
T-Y-T-Y=X-Z -2*Y=X-Z Y=(Z-X)/2
3) élimination des règles calculant une variable de cycle :
4) ajout des règles obtenues en 2 :
X=Y-T; Z=Y+T; T=(X+Z)/2 ; Y=(Z-X)/2
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI18
3. RÉSOLUTION DES CSP CONTINUS
Résolution de ICSP :
Exemple
dom(X) = [1, 10], dom(Y) = [1, 11], dom(T) = [0, 10],
dom(Z) = [-1, 11]
X=Y-T; Z=Y+T; T=(X+Z)/2 ; Y=(Z-X)/2
X=[1,10]∏([1,11]-[0,10])=[1,10] ∏[-9,11]=[1,10]
Z=[-1,11] ∏([1,11]+[0,10])=[-1,11] ∏[1,21]=[1,11]
T=[0,10] ∏([1,10]+[1,11])/[2,2])=[0,10] ∏([2,21]*[1/2,1/2])
=[0,10] ∏[1,10]=[1,10]
Y=[1,11] ∏([1,11]-[1,10]/[2,2])=[1,11] ∏([-9,10]*[1/2,1/2])
=[1,11] ∏[-4,5]=[1,5]
Les solutions du problèmes se trouvent dans les intervalles suivants
dom(X) = [1, 10], dom(Y) = [1, 5], dom(T) = [1, 10],
dom(Z)=[1,11] : X=1; Y=2; T=1; Z=3
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI18
Solveurs PPC
* Gratuites (académiques)
• Choco
• Gecode
• AIspace
• JaCoP
…
* Payants
• ILOG CP
• CPLEX
A. HALLOU… PROGRAMMATION PAR CONTRAINTES GI18
FIN