Vous êtes sur la page 1sur 97

Cours Contraintes

Introduction la programmation par Contraintes


Michel RUEHER

Universit de Nice - Sophia Antipolis November 27, 2010

Cours Contraintes

Plan du cours Contraintes


1. Introduction Michel Rueher 2. Contraintes globales et modlisation Jean-Charles Rgin 3. Stratgie de recherche et mthodes heuristiques Gilles Trombettoni 4. Arithmtique dintervalles, algbre linaire, algbre non-linaire, applications de lanalyse par intervalles Jean Pierre Merlet

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

Partie I : prsentation informelle des concepts de base

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 ?

Chemin hamiltonien du cavalier: comment trouver les bonnes heuristiques ?

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

Exemple 1 : coloriage dun graphe


Le coloriage des artes (ou des sommets) dun graphe consiste affecter une couleur chaque arte (resp. sommet) tel que deux artes (resp. sommets) adjacentes ne soient pas colories de la mme manire. Problmes: Trouver le nombre minimal de couleurs pour colorier un graphe Rechercher un coloriage effectif pour un nombre donn de couleurs

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

Exemple 2 : problme de balistique


Le problme consiste trouver le point dimpact sur le sol dun objet lanc dans un champ gravitationnel uniforme g. La vitesse initiale Vi de lobjet a une incidence avec le sol. De plus les valeurs de ces deux dernires variables ne sont pas connues avec prcision (pour cause de tolrance mcanique ou dimprcision dans les mesures, etc). La solution sera donc un segment couvrant les points dimpact possibles pour le projectile.

Cours Contraintes

15

Problme de balistique
y

Vi

Vi

xf-

xf+

Figure 1: Trajectoires possibles du projectile

Cours Contraintes

16

Exemple 4: modlisation avec des contraintes boolennes

F O (O (X Y )) F A (A (X Y )) F N (N A) F G (Z (N O)) Figure 2: Porte XOR

Cours Contraintes

17

Exemple 5: Modlisation dun problme dordonnancement de tches


Dbut: Ts 0 Fondations: TA Ts + 7 Murs intrieurs: TB TA + 4 Murs extrieurs: Tc TA + 3 Chemine: TD TA + 3 Toit: TD TC + 2 Portes: TE TB + 2 Tuiles: TE TD + 3 Fentres: TE TC + 3 Est-ce que B C si la dure totale est de 15 jours ? (CH TE = 15) B C

Cours Contraintes

18

Stratgie de recherche naives : GT & BT


Generate & test : Tant que toutes les contraintes ne sont pas satisfaites Nouvelle instanciation de toutes les variables valuation des contraintes Backtracking : Tant que toutes les variables ne sont pas instancies Instanciation dune nouvelle variable valuation des contraintes totalement instancies Si le systme courant est inconsistant retour arrire (Choix dune nouvelle valeur pour la dernire variable instancie pour laquelle il reste des valeurs disponibles)

Cours Contraintes

19

Backtracking vs Generate & Test : exemple


Contraintes: DX = DY = DZ = {1, 2}, X = Y, X = Z, Y > Z
Generate & Test: X 1 1 1 1 2 1 2 2 Y 1 1 2 2 1 1 1 2 Z 1 2 1 2 1 1 2 1 Test fail fail fail fail fail fail fail succes 2 2 1 2 1 Backtracking: X 1 Y 1 Z 1 2 Test fail fail fail fail succes

Cours Contraintes

20

Partie II : la programmation en logique avec contraintes (CLP)

Cours Contraintes

21

Le traitement relationnel de larithmtique en programmation logique


Instruction Relation Spcication dune solution en terme de relations (produits cartsiens) entre entits (ou classes dentits) Rversibilit Exemple de append/3: append([],L,L). append([H|L1],L2,[H|L3]):- append(L1,L2,L3). concatnation mais aussi dcomposition de listes Programme en logique spcication excutable

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

LE PROGRAMME SEND + MORE = MONEY (SUITE) 900 M = 1000 S + 91 E + D 900 O 90 N Y Dou M


1 9

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

Et: 91 M 9 + 9000 + 9 D(M)={1}

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

Machine Abstraite dun langage PLC


(1) (2) (3) = (W, t0 t1 . . . tn , S) s0 s1 . . . sm , R (m 0) = (W, s1 . . . sm t1 . . . tn , S R (s0 = t0))
W : liste des variables de la question initiale, t0 t1 . . . tn : liste de termes (buts) effacer, S : liste des contraintes courantes (contraintes satisables) s1 . . . sm : une suite de termes R : les contraintes de la rgle dinfrence reprsente le nouvel tat de la machine aprs application de la rgle (2) si S R (s0 = t0) est satisable

Solution du systme : f = (W,,Contraintes Finales).

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

Rsolution de systmes de contraintes linaires


Il existe des algorithmes polynomiaux pour rsoudre des systmes de contraintes linaires sur R Les contraintes linaires furent introduites dans des langages PLC ds le milieu des annes 80 Rsolution dun systme de contraintes linaires: Algorithme de GaussJordan Algorithme de Fourrier Simplexe (rsultats justes que sur les nombres rationnels, pour les nombres ottants, le simplexe peut donner des rsultats faux)

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

Figure 3: Algorithme de GaussJordan

Cours Contraintes

37

Partie III : les problmes de satisfaction de contraintes (CSP)

Cours Contraintes

38

Les techniques de satisfaction de contraintes en intelligence articielle


Paralllement aux travaux sur les CLP qui visaient avant tout donner un statut logique larithmtique, les techniques CSP ont t dveloppes en intelligence articielle pour rsoudre des problmes combinatoires.

Cours Contraintes

39

PRINCIPES DE LA PROGRAMMATION AVEC CONTRAINTES


Contrainte Une contrainte est une relation logique (une proprit qui doit tre vrie) entre diffrentes inconnues. Elle restreint les valeurs que peuvent prendre simultanment les variables. Exemple : x + 3 y = 12 restreint les valeurs que lon peut affecter simultanment aux variables x et y

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

Dnition dun CSP


Un CSP P = (X , D, C, R) est dni par : Un ensemble de variables X = {x1 , . . . , xn } Un ensemble de domaines D = {D1 , . . . , Dn } o Di est le domaine associ la variable xi Un ensemble de contraintes C = {C1 , . . . , Cm } o chaque contrainte Ci est dnie sur un ensemble de variables {xi1 , . . . , xip } X Un ensemble de relations R = {R1 , . . . , Rm } o chaque relation Ri est la projection des solutions de la contrainte CI sur le domaine de ses variables; Ri est un sous ensemble du produit cartsien Dxi1 . . . Dxip .

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

Modlisation sous la forme dun CSP


identier lensemble des variables X (les inconnues du problme) et leurs domaines identier les contraintes C entre les variables On ne se soucie pas de savoir comment rsoudre le problme : on cherche simplement le spcier formellement

Notion de CSP surcontraint ou sous-contraint


Un CSP qui na pas de solution est surcontraint max-CSP (prfrences entre les contraintes) Un CSP qui admet beaucoup de solutions diffrentes est sous-contraint

Cours Contraintes

45

Cours Contraintes

46

Exemple : modlisation des n-reines (suite)

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

Rsolution dun CSP


La rsolution dun CSP est un problme NP-complet dans le cas gnral. Le mcanisme de rsolution consiste (schmatiquement) rpter les deux tapes: Rduction des problmes par ltrage, Parcours de larbre de recherche. La rduction des problmes par ltrage repose sur des proprits de consistance (ou cohrence) partielle: degr de compatibilit entre valeurs des domaines et contraintes.

Cours Contraintes

48

Rsolution dun CSP (suite)

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

Consistance darc (suite)


La consistance darc est une consistance locale qui ne garantit pas lexistance dune solution Le ltrage par consistance darc consiste liminer les lments qui ne peuvent trivialement gurer dans aucune solution (valeurs ou n-uplets de relations). Il sagit dune application: P = (X , D, C, R) P = (X , D , C , R)

Cours Contraintes

51

Consistance darc (suite)


IN(in C, inout D) Queue C ; while Queue = c POP Queue; D narrow(c, D); if D = D then D D ; Queue Queue {c C | V ar(c) V ar(c ) = } endif endwhile

Figure 4: Algorithme gnrique de ltrage AC3

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

Illustration du ltrage par AC3


x5
1 x1 6 2 x2 4 8 3 5

x3
9 1

x4
6 7 8

x5
1 x1 x2 4 2

x3
9

x4
7 8

Cours Contraintes

54

Limites de la consistance darc

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

Contrainte globale algorithmes de ltrage efcaces pour des contraintes spciques


Exemple: alldiff Les variables doivent prendre deux deux des valeurs diffrentes

Problme: identier les groupes de k variables qui ne peuvent pendre que k valeurs ... 2k groupes possibles

D(x1 ) = {1, 2} D(x4 ) = {3, 4}

D(x2 ) = {2, 3} D(x5 ) = {2, 4, 5}

D(x3 ) = {1, 3} D(x6 ) = {5, 6, 7}

Cours Contraintes

56

Contraintes Globales (suite)

Cours Contraintes

57

Parcours de larbre de recherche


Heuristiques qui permettent dans de nombreux cas dliminer a priori certaines branches Combinaison ltrage & heuristiques: forward checking, looking ahead ou MAC effectuent des oprations de ltrage aprs chaque tape de recherche (i.e., chaque instanciation de variable). Llimination des solutions symtriques est un problme majeur dans de nombreuses applications.

Cours Contraintes

58

Dfauts du backtrack chronologique


Le backtrack chronologique peut entrainer la rptition dchecs causs par une mme raison.

Cours Contraintes

59

Backtrack dirig par le graphe de contraintes : GBJ


En cas dchec sur une variable j, retour sur la variable i connecte j par une contrainte et la plus rcemment instancie. Intressant pour les graphes de contraintes peu denses.

point de retour "intelligent"

point de retour chronologique j

Cours Contraintes

60

Partie IV : Les contraintes dans le domaine continu la propagation dintervalles


1. Arithmtique des Intervalles 2. 2BConsistance et 2B(w)Consistance 3. 3BConsistance 4. BoxConsistance et BoundConsistance

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

1 Arithmtique des Intervalles


Notations
x, y, z : variables dnies sur les rels ; X, Y, Z : variables dnies sur les intervalles ; u, v : constantes dans R ; f, g : fonctions dnies sur les rels ; F, G : fonctions dnies sur les intervalles ; c : contrainte dnie sur les rels ; C : relation dnie sur les intervalles ; cstc (P ) : fermeture (ou le ltrage) par la consistance cstc (o cstc est 2B, Box, 3B, Bound) de P .

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

Bases du calcul dintervalles


Un intervalle [a, b] avec a, b I est lensemble de nombres rels F {r R | a r b} r : plus petit intervalle de I contenant un nombre rel r F S est le plus petit intervalle I tel que S I (S est un sous ensemble de R)

I : ensemble de tous les intervalles U(I) : ensemble de toutes les unions dintervalles

Cours Contraintes

67

Incidence de la prcision des calculs


Le terme plus petit (w.r.t. inclusion) sous-ensemble doit tre interprt en fonction de la prcision des calculs lors des oprations en virgule ottante. Hypothses : 1. Tous les rsultats des calculs sont arrondis vers lextrieur 2. Erreur maximale lors du calcul dune borne dun intervalle est toujours infrieure un ottant (peut ncessiter de recourir des "grands ottants")

Cours Contraintes

68

Extension aux intervalles


Une fonction sur les intervalles F : I n I est une extension aux intervalles de f : Rn R ssi : I1 , . . . , In I : r1 I1 , . . . , rn In f (r1 , . . . , rn ) F (I1 , . . . , In ). Une relation sur les intervalles C : I n Bool est une extension aux intervalles de la relation c : Rn Bool ssi : I1 , . . . , In I : r1 I1 , . . . , rn In [c(r1 , . . . , rn ) C(I1 , . . . , In )] Exemple : . Soit I1 = I2 (I1 I2 ) = . La relation = est une extension aux intervalles de la relation dgalit sur les rels.

Cours Contraintes

69

Extension naturelle aux intervalles


Une fonction sur les intervalles F : I n I est une extension naturelle aux intervalles de f : Rn R ssi F est lextension aux intervalles de f obtenue en remplaant dans f : chaque constante k par son extension naturelle aux intervalles k chaque variable par une variable sur les intervalles chaque opration arithmtique par son extension optimale aux intervalles (opration qui calcule le plus petit intervalle qui conserve lensemble des solutions)

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

Extension naturelle aux intervalles : exemples


Soit les fonctions sur les rels : f1 (x) : x2 x f2 (x) : x(x 1) Extension naturelle aux intervalles : F1 ([0, 5]) = [5, 25] F2 ([0, 5]) = [5, 20] Valeur de lextension optimale aux intervalles de f1 et f2 sur [0, 5] est [0.25, 20] (la drive de f1 et f2 sannulle pour x = 0.5).

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

CSP sur les domaines continus


(X , D, C) o X = {x1 , . . . , xn } est un ensemble de variables D = {Dx1 , . . . , Dxn } est un ensemble de domaines (Dxi est le domaine contenant toutes les valeurs potentielles de la variable xi ) C = {c1 , . . . , cm } est un ensemble de contraintes On note V ar(C) le sous ensemble de X des variables de C.

Cours Contraintes

74

Approximation dun CSP


Il est en gnral impossible de calculer toutes les solutions dun CSP calcul dune approximation de cet ensemble de solutions. Soit A un domaine dapproximation sur R, une relation n-aire sur R. La fonction N : An An est un oprateur de narrowing pour la relation ssi pour tout u, v An on a : 1. N (u) u (contractance) 2. u N (u) (correction) 3. u v N (u) N (v) (monotonie)

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 ) }

Un CSP est 2BConsistant ssi toutes ses contraintes sont 2BConsistantes

Cours Contraintes

79

Consistance darc versus 2BConsistance


La 2BConsistance est une consistance plus faible que la consistance darc : La consistance darc impose une condition sur tous les lments des domaines La 2BConsistance impose une condition aux seules bornes de lintervalle qui contient les domaines Exemple P = {{x, y}, {Dx , Dy }, {x = y 2 }} avec Dx = [1, 4], Dy = [2, +2] P est 2BConsistant, mais pas consistant darc car la valeur 0 de Dy na pas de support dans Dx

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

Algorithme de calcul de la 2BConsistance


Calcul des fonctions extremum dans la fonction narrowing de lalgorithme IN-1

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

Arrt prmatur de lalgorithme de propagation


En cas de convergences asymptotiques, il nest pas raliste de vouloir rduire tous les intervalles jusqu ce quaucun lment de I (i.e., aucun ottant) ne puisse tre enlev F arrt de la propagation avant datteindre le point xe.

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]

il est prfrable darrter la propagation avant datteindre le point xe ...

Cours Contraintes

84

Largeur de borne

a+w dnote le (w + 1)ieme oattant aprs a. aw dnote le (w + 1)ieme oattant avant a.

+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

Algorithme de ltrage par 3Bconsistance = une suite de tentatives de refutation

Soit Dx = [a, b] dans un CSP P , si 3B (PDx [a, a+b ] ) = ,


2

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

Dnition et proprits de la BoxConsistance


Soit (X , D, C) un CSP et c C une contrainte kaire dnie sur les variables (x1 , . . . , xk ). c est BoxConsistant si, pour tout xi dans {x1 , . . . , xk } tel que Dxi = [a, b], les relations ci-dessous sont vries : 1. C(Dx1 , . . . , Dxi1 , [a, a+ ), Dxi+1 , . . . , Dxk ), 2. C(Dx1 , . . . , Dxi1 , (b , b], Dxi+1 , . . . , Dxk ). Le ltrage par BoxConsistance de P est dni de manire similaire au ltrage par 2BConsistance de P , et est not Box (P ).

Cours Contraintes

93

Intervalle quantis (1)

Cours Contraintes

94

Intervalle quantis (2)

Cours Contraintes

95

Contrainte globale

Cours Contraintes

96

Quelques limites de la programmation par contraintes


Exemple des limites lies au choix des domaines Nombre doiseaux et de chats qui totalisent 12 ttes et 34 pattes. Contraintes : {p=4c+2o,t=c+o} Rsolution dans Q avec un algorithme de Gauss: p = 12, t =34 c = 5, o =7 p= 6, t= 4 c = -1, o =5 p= 7, t= 3 c = 1/2, o =5/2 Il est possible dajouter des contraintes linaires pour obliger c et o prendre des valeurs positives, mais il nest pas possible dexprimer avec des contraintes linaires le fait que ces variables doivent prendre des valeurs entires.

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 ...

Vous aimerez peut-être aussi