Académique Documents
Professionnel Documents
Culture Documents
Cours Contraintes
Cours Contraintes
Confrences : CP (Int. Conf. on Principles and Practice of Constraint Programming) CPAIOR (Int. Conf. on Integration of AI and OR Techniques in Constraint Programming for Combinatorial Optimization Problems) Revues: Constraint Journal, Journal of AI Ouvrages: Handbook of Constraint Programming. Edited by Francesca Rossi, Peter van Beek, Toby Walsh. Elsevier, 978 pages, 2006 Constraint and Integer Programming: Toward a Unied Methodology, Michela Milano (Ed.), Kluwer Academic Pub. (2003) Kim Marriott and Peter J. Stuckey . Programming with Constraints: an Introduction . MIT Press, 1998. P. Van Hentenryck, Y. Deville, and L Michel. Numerica. A modelling language for global optimization. MIT Press, 1997. Franois Fages Programmation logique par contraintes, Editions Ellipses, 1996.
Cours Contraintes
Plan du Introduction
1. Prsentation informelle des concepts de base 2. La programmation en logique avec contraintes (CLP) 3. Les techniques de satisfaction de contraintes (CSP) Domaines nis 4. Les contraintes dans le domaine continu: la propagation dintervalles 5. Application des techniques de programmation par contraintes la gnration de jeux de test et la vrication de programmes
Cours Contraintes
Cours Contraintes
Constraint programming represents one of the closest approaches computer science has yet made to the Holy Grail of programming: the user states the problem, the computer solves it. Eugene C.Freuder, Constraints, April 1997
Cours Contraintes
Origines
IA : Scene Labelling - Waltz, rsolution de problmes,.. Programmation Logique : unication constraint solving Recherche Oprationelle: problme combinatoires NP Difciles
Cours Contraintes
Intuitions
La complexit dans le pire des cas est en gnral trop pessimiste Une analyse de la complexit en moyenne est en gnral impossible CP: Etude des problmes comme des phnomnes naturels
Cours Contraintes
Intuitions (suite)
SEND+MORE=MONEY : comment infrer linformation pertinente ? N Reines : comment prvoir les impasses ?
Cours Contraintes
10
Applications Lordonnancement La planication La gestion de ressources Loptimisation de systmes non-linaires ... Apports Plus grande souplesse pour noncer et rsoudre les problmes Utilisation dans un cadre uniforme des techniques combinatoires, de recherche oprationnelle, danalyse numrique
Cours Contraintes
11
Cours Contraintes
12
A PPLICATIONS : Le coloriage dune carte : il sagit de colorier une carte (e.g. la carte de France) tel que deux rgions voisines soient colories avec des couleurs diffrentes. Modlisation : les sommets du graphe correspondent aux rgions, les arcs relient deux sommets qui correspondent des rgions ayant une frontire commune Quatre couleurs sont sufsantes lorsque le graphe est planaire mais il nexiste pas dalgorithme polynomial permettant deffectuer le coloriage.
Cours Contraintes
13
Planication des examens : il sagit de dnir un planning des examens tel que le temps requis pour lensemble des examens soit minimal, et quil ny ait pas dincompatibilits pour les tudiants. Modlisation : les sommets du graphe correspondent aux preuves, les arcs relient deux sommets qui correspondent des preuves que doivent passer les mmes tudiants (le nombre de couleurs correspond alors au nombre minimal de crneaux horaires requis) Si k est le nombre de salles dont on dispose, alors chaque couleur peut au plus colorier k noeuds. Le problme se complique lorsquil faut prendre en compte les contraintes de prfrence (e.g. viter quun tudiant ne passe plus de 3 preuves en deux jours).
Cours Contraintes
14
Cours Contraintes
15
Problme de balistique
y
Vi
Vi
xf-
xf+
Cours Contraintes
16
Cours Contraintes
17
Cours Contraintes
18
Cours Contraintes
19
Cours Contraintes
20
Cours Contraintes
21
Cours Contraintes
22
Le problme de larithmtique en programmation logique(1) Le prdicat =/2 nvalue pas ses arguments et le prdicat is/2 nest pas une relation. ?- 1 + X = 3. ?- X is 3 - 1. ?- X + 1 is 3.
-> -> -> fail X = 2 % 1+X correspond larbre +(1,x) % is : valuation du terme droit
erreur dexcution
Le premier objectif de la Programmation en Logique avec Contraintes tait de donner un statut relationnel larithmtique.
Cours Contraintes
23
Cours Contraintes
24
Cours Contraintes
25
Cours Contraintes
26
Cours Contraintes
27
Cours Contraintes
28
max(D(S)) + max(D(R))
91 1 1 max(D(E)) + 9000 max(D(D)) + 900 9000 1 1 1 min(D(O)) 100 min(D(N)) 9000 min(D(Y)) 10
9 900
0 10
0 100
0 9000
= 1.102
Cours Contraintes
29
Cours Contraintes
30
La programmation en logique avec contraintes = thorie du premier ordre qui prserve les proprits de calcul associes aux clauses de Horn
des classes de langages de programmation en logique avec contraintes dont les variables peuvent prendre des valeurs sur des domaines varis
Cours Contraintes
31
Cours Contraintes
32
Rponse dun systme CLP: ensemble de contraintes satisables (ventuellement un ensemble inni de solutions, e.g., 1 < x < 1)
Apport des contraintes : La stratgie generate and test de Prolog est remplace par une stratgie prune and search larbre de recherche est lagu a priori
Cours Contraintes
33
Cours Contraintes
34
Une expression linaire est de la forme a1 x1 + a2 x2 + . . . an xn avec : ai xi (1 i n) est un nombre rel; (1 i n) est une variable.
Une quation linaire est de la forme e1 = e2 o e1 et e2 sont des expressions linaires Une inquation linaire est de la forme e1 < e2 ou e1 e2 o e1 et e2 sont des expressions linaires Une contrainte linaire est une conjonction dquations et inquations linaires
Cours Contraintes
35
Algorithme de GaussJordan
Le principe de cet algorithme consiste rcrire un systme dquations linaires en un systme quivalent jusqu lobtention dune forme trivialement solvable ou insovable Litration de base, de lalgorithme de GaussJordan est consistue de deux oprations: 1. rcriture dune contrainte c sous la forme x = e o x napparat pas dans e, 2. remplacement de x par e dans toutes les autres contraintes. La complexit temporelle de cet algorithme est en (m n2 ) pour un systme de m quations avec n variables.
Cours Contraintes
36
% r : constante relle(non nulle) x : variable, c: equation % e : expression linaire % C, C , S : conjonctions dquations 1 function GAUSS-JORDAN(in C, return BOOL) 2 S true 3 while C = empty conjonction true 4 let C = c C0 5 C C0 6 if c can be written as 0 = r 7 then return false 8 else write c as x = e (x does not occur in e) 9 substitute e for x throughout C and S 10 S S x=e 11 endif 12 endwhile
Cours Contraintes
37
Cours Contraintes
38
Cours Contraintes
39
Cours Contraintes
40
Les inconnues, appeles variables, prennent leurs valeurs dans un ensemble donn, appel domaine Une contrainte est relationnelle, dclarative et peut tre dnie en extension ou en intension : numration des tuples de valeurs de la relation : (x = 0 y = 1) (x = 0 y = 2) (x = 1 y = 2) Dnition des proprits mathmatiques connues: x < y ou encore A B C Types de contraintes : Les contraintes numriques, entires ou relles (linaires ou non linaires) Les contraintes ensemblistes, contraintes boolennes, univers de Herbrandt ...
Cours Contraintes
41
Cours Contraintes
42
Coloriage de graphe: X = {x1 , x2 , x3 } D1 = D2 = D3 = {rouge, vert} C = {x1 = x2, x1 = x3 } R1 = R2 = R3 = {< rouge, vert >, < vert, rouge >} Solutions : < x1 = rouge, x2 = x3 = vert >, < x1 = vert, x2 = x3 = rouge >
Cours Contraintes
43
Problme des n reines avec n = 4: X = {x1 , x2 , x3 , x4 } D1 = D2 = D3 = D4 = {1, 2, 3, 4} C = {xi = xj pour 1 i < n, xi = xj + (j i) pour 1 i < j n, xi = xj (j i) pour 1 i < j n} Solutions : < 2, 4, 1, 3 >, < 3, 1, 4, 2 >
Cours Contraintes
44
Cours Contraintes
45
Cours Contraintes
46
Les contraintes les reines doivent tre sur des lignes diffrentes: Xi = Xj pour tout i dans {1, 2, 3, 4} Les reines doivent tre sur des colonnes diffrentes : aucune contrainte avec la deuxime modlisation ! les reines doivent tre sur des diagonales diffrentes : Xi = Xj + / (i j)pour i, j dans {1, 2, 3, 4} et i = j
Cours Contraintes
47
Cours Contraintes
48
Filtrage par consistance locale et utilisation dheuristiques Principes: limination a priori des valeurs qui ne peuvent tre dans aucune solution (travail local chaque contrainte) Choix des variables et valeurs (lors de lnumration) qui devraient permettre de dcouvrir rapidement les impasses
Cours Contraintes
49
Consistance darc
Consistance darc: un domaine Dx est consistant darc ssi pour chaque contrainte de C, toute valeur de Dx a un support dans les domaines des autres variables de cette contrainte. Plus formellement: Ci C tel que V ar(Ci ) = (x, x1 , . . . , xn , ) v Dx v1 . . . vk D1 . . . Dk tel que < v, v1 , . . . , vk > Ri Un CSP est consistant darc si tous ses domaines sont consistants darc: Ck C, xi V ar(Ck ), xi (Rk ) = Di =
Cours Contraintes
50
Cours Contraintes
51
Cours Contraintes
52
AC3 (suite)
Exemple Soit le systme suivant: C = {x1 < x2 , x5 + 3 = x2 , x3 > x1 , x4 x2 + 3} dx1 = {2, 6}, dx2 = {3, 4, 8}, dx3 = {1, 9}, dx4 = {6, 7, 8}, dx5 = {1, 5}
Cours Contraintes
53
x3
9 1
x4
6 7 8
x5
1 x1 x2 4 2
x3
9
x4
7 8
Cours Contraintes
54
Lexemple ci-dessous est consistant darc alors quil ne possde pas de solution: X = {x1 , x2 , x3 } D1 = D2 = D3 = {rouge, vert} C = {x1 = x2, x1 = x3 x2 = x3 }
Cours Contraintes
55
Problme: identier les groupes de k variables qui ne peuvent pendre que k valeurs ... 2k groupes possibles
Cours Contraintes
56
Cours Contraintes
57
Cours Contraintes
58
Cours Contraintes
59
Cours Contraintes
60
Cours Contraintes
61
La propagation dintervalles est un cas particulier de CSP dont la spcicit rside essentiellement au niveau du domaine des variables qui reprsentent ici un ensemble inni de valeurs Problmes dnis sur des variables relles par un ensemble dquations et dinquations non linaires voire non polynomiales
Cours Contraintes
62
Problmes sur variables relles 1. Problmes physiques Donnes imprcises problmes sous-contraints (innit de solutions) Contraintes non linaires il nexiste pas dalgorithme symbolique efcace 2. Exemple U =RI 10.5 R 11 1I 2
10.5 U 22
Cours Contraintes
63
Propagation dintervalles : caractristiques Raisonnement numrique sur les domaines de variation (une solution numrique est plus pertinente quune formule algbrique dans de nombreuses applications) Approximation des domaines de variation Rduction de domaines laide de consistances partielles Simplication, efcacit sur les problmes en variables entires
Cours Contraintes
64
Cours Contraintes
65
Notations (suite)
R = R {, +} : ensemble des rels tendu aux symboles des innis. I : un sous-ensemble ni de R contenant en particulier F {, +} ; F (I : un ensemble de nombres ottants utiliss dans une implmentation machine) a, b : constantes dans I F F a+ (resp. a ) : plus petit (resp. plus grand) nombre de I strictement plus grand (resp. plus petit) que a.
Cours Contraintes
66
I : ensemble de tous les intervalles U(I) : ensemble de toutes les unions dintervalles
Cours Contraintes
67
Cours Contraintes
68
Cours Contraintes
69
Cours Contraintes
70
Extensions optimales aux intervalles pour les oprations de base sur les intervalles (Moore) Soit un oprateur binaire parmi {+, , , /} et [a, b] [c, d] = {x y tel que a x b et c y d} alors : [a, b] [c, d] = [a d, b c] [a, b] [c, d] = [a + c, b + d] [a, b] [c, d] = [min(ac, ad, bc, bd), max(ac, ad, bc, bd)] b b b [a, b] [c, d] = [min( a , a , b , d ), max( a , a , c , d )] if 0 [c, d] c d c c d Les extensions optimales aux intervalles peuvent tre dnies pour quasiment toutes les fonctions lmentaires la forme syntaxique dune fonction a une trs forte inuence sur la prcision de lextension naturelle aux intervalles
Cours Contraintes
71
Cours Contraintes
72
Limites de la sous-distributivit
Exemple : a) [1, 2] ([1, 2] [1, 2]) = [2, 2] [1, 2] [1, 2] [1, 2] [1, 2] = [3, 3] f1 : R R F1 : I I xxx iii Si I0 = [10, 20] alors F1 (I0 ) = [10, 10]
b)
Cours Contraintes
73
Cours Contraintes
74
Cours Contraintes
75
Algorithme standard de narrowing 1 IN1 (in C, inout D) 2 Q {< xi , Cj > | Cj C and xi V ar(Cj )} 3 while Q = 4 extract < xi , Cj > from Q 5 D narrowing(D, xi , Cj ) 6 if D = D then 7 D D 8 Q Q {< xl , Ck > |(xl , xi ) V ar(Ck )} 10 endif 11 endwhile
Cours Contraintes
76
Consistances partielles
les consistances strictement locales ne travaillent que sur une seule contrainte les consistances partielles qui ne sont pas strictement locales vrient certaines proprits sur un sous-ensemble du systme de contraintes
Cours Contraintes
77
2 2BConsistance et 2B(w)Consistance
La 2BConsistance : approximation de la consistance darc Intuitions : La contrainte c est 2BConsistante pour la variable x, de domaine Dx = [a, b], sil existe des valeurs dans les domaines de toutes les autres variables qui satisfont c lorsque x est instanci avec a et lorsque x est instanci avec b. si c peut scrire sous la forme f (x) = 0, alors a et b sont respectivement le plus petit et le plus grand zro de f (x)
Cours Contraintes
78
2BConsistance
Soit (X , D, C) un CSP et c C une contrainte k-aire sur les variables (x1 , . . . , xk ). La contrainte c est 2BConsistante ssi : i, Dxi = {vi Dxi | v1 Dx1 , . . . , vi1 Dxi 1 , vi+1 Dxi +1 , . . . vk Dxk tel que c(v1 , . . . , vi1 , xi , vi+1 . . . , vk ) }
Cours Contraintes
79
Cours Contraintes
80
Calcul de la 2BConsistance
Approximation des fonctions de projection (utilises dans narrowing(D, x, C) de IN-1) la porte des vrications effectues par la 2BConsistante est rduite par la dcomposition : si une variable x possde des occurrences multiples dans une contrainte c C, alors les diffrentes occurrences de x dans decomp(c) pourront varier indpendamment les unes des autres le ltrage par 2BConsistance de decomp(C) sera plus faible que celui de C
Cours Contraintes
81
1 function narrow (D, xi , Cj ) : set of domains 2 m M inxi (C, Dxi ) 3 M M axxi (C, Dxi ) 4 return D[Dxi [m, M ]]
F IG . 1 Fonction narrowing pour le calcul de la 2BConsistance
Cours Contraintes
82
Cours Contraintes
83
Exemple 2.1. Soit : X =2Y Y =X DX = [10, 10], DY = [10, 10] La 2B-consistance va oprer les rductions suivantes : DY = [5, 5] DY = [2.5, 2.5, DY = [1.25, 1.25] DY = [0.625, 0.625] ...... DX DX DX DX = [5, 5] = [2.5, 2.5] = [1.25, 1.25] = [0.625, 0.625]
Cours Contraintes
84
Largeur de borne
+w a
-w b
Cours Contraintes
85
2B(w)Consistance
Soit (X , D, C) un CSP, x X , Dx = [a, b], w un entier positif. Dx est 2B(w)Consistant si pour toute contrainte c(x, x1 , . . . , xk ) de C : 1) v [a, a+w ), v1 , . . . , vk Dx1 Dxk | c(v, v1 , . . . , vk ) 2) v (bw , b], v1 , . . . , vk Dx1 Dxk | c(v , v1 , . . . , vk ) Un CSP est 2B(w)Consistant ssi tous ses domaines sont 2B(w)Consistants Algorithme de ltrage par 2B(w)Consistance : modication de la fonction Narrow pour que les rductions de domaine effectues soient suprieures w.
Cours Contraintes
86
Problmes de la 2B(w)Consistance
Le ltrage par 2B(w)Consistance dpend de lordre dvaluation des fonctions de projection (pas de point xe) Il ny a pas de rapport direct entre la valeur de w et la prcision du ltrage Le mode de dcomposition dun systme de contraintes inuence lordre dvaluation des fonctions de projection et peut donc affecter le rsultat dun ltrage par 2B(w1 )Consistance Si les nombres manipuls ont des valeurs trs htrognes, il est indispensable dutiliser une valeur relative pour w
Cours Contraintes
87
3 3BConsistance
Principe de la 3BConsistance : vrier si le systme de contraintes ne devient pas trivialement inconsistant lorsquune variable est instancie par la valeur dune des bornes de lintervalle qui lui est associe la 3BConsistance cherche vrier si une borne peut effectivement tre solution
Cours Contraintes
88
3BConsistance : intuition
Cours Contraintes
89
3BConsistance (dnition)
Soit P = (X , D, C) un CSP et x une variable de X de domaine [a, b] et soit : 1 PDx [a,a+ ) le CSP deriv de P en substituant Dx dans D par 1 Dx = [a, a+ ) ; 2 PDx (b ,b] le CSP deriv de P en substituant Dx dans D par 2 Dx = (b , b]. 1 2 Dx est 3BConsistant ssi 2B (PDx ) = P et 2B (PDx ) = P . Un CSP est 3BConsistant ssi tous ses domaines sont 3BConsistants kBConsistance : gnralisation de la 3BConsistance
Cours Contraintes
90
alors la portion [a, a+b ) de Dx est limine et le ltrage se 2 poursuit sur lintervalle [ a+b , b] ; 2 sinon le ltrage se poursuit avec lintervalle [a, a+b ]. 4 Lalgorithme sarrte lorsque le point xe est atteint ou lorsque lintervalle quon essaye de refuter devient plus petit quune valeur absolue (ou relative) w xe.
Cours Contraintes
91
4 La BoxConsistance et BoundConsistance
La BoxConsistance est une approximation plus grossire de la consistance darc que la 2BConsistance La BoxConsistance gnre un systme de fonctions univariables qui peut tre rsolu par la mthode de Newton La BoxConsistance namplie pas le problme de localit des consistances partielles
Cours Contraintes
92
Cours Contraintes
93
Cours Contraintes
94
Cours Contraintes
95
Contrainte globale
Cours Contraintes
96
Cours Contraintes
97
Consquences des erreurs de calculs Lalgorithme du simplexe est numriquement instable sur les ottants et la correction dun systme CLP(RLin )qui approxime les rels par des ottants ne peut tre assure. Problmes insolubles Un problme avec 4 variables : C = {xn + y n = z n } avec x, y, z, n N et n > 2 Le thorme dincompltude de Goedel limite les possibilits dans N ...