• Aucun résultat trouvé

Notre objectif est d'élaborer une procédure de transformation des problèmes du système expert écrits dans la logique des prédicats du premier ordre ni, en problèmes à base de contraintes. Pour parvenir à ce but, nous présentons d'abord un petit exemple puis nous décrivons une nouvelle classe de CSP dynamique nommée DDCSP. La suite de ce chapitre sera consacrée à l'étude des mécanismes de résolution et des propriétés des DDCSP.

4.3.1 Illustration sur un exemple

Soit un système expert à base de règles : p1(x, y) ∧ p2(y, z) ⇒ p1(x, z)et les faits p1(1, 2), p2(2, 3).

Ce SE peut être transformé en un CSP tel que  X = {x, y, z}

 D = {dx, dy, dz}avec dx= {1}, dy= {2}, dz= {3}  C = {cp1, cp2}

 R = {r1, r2}avec r1 = {(1, 2)}est l'ensemble des tuples autorisés de cp1

et r2= {(2, 3)}est l'ensemble des tuples autorisés de cp2

L'instanciation x = 1, y = 2, z = 3 est une solution de ce CSP. Lorsque cette solution est trouvée, la relation r1 doit être modiée dynamiquement pour lui ajouter le couple (1, 3). Cette mise à jour dynamique de r1 provoque également la mise à jour des domaines des variables x et y de la contrainte cp1.

La transformation que nous venons d'eectuer peut être généralisée et nous verrons qu'elle permet de transformer toute règle d'un SE à base de règles en un CSP dynamique dont les relations et les domaines évoluent en cours de résolution.

Dans la suite de cette section, nous donnons d'abord une dénition du CSP dynamique obtenu que nous appelons DDCSP, puis nous prouvons que tout SE à base de règles peut être transformé en un DDCSP.

Chapitre IV Protocole de communication entre SE et CSP

4.3.2 Dénition d'un DDCSP

Dénition 4.14 (eDDCSP) Un eDDCSP (elementary dynamic domain constraint satisfaction problem) est déni par δ = (X, D, C, R, Xs, Ds, cs, rs) où (X, D, C, R) désigne un CSP, où Xs est un sous-ensemble éventuellement vide de X, Ds est l'ensemble des domaines des variables de Xs et cs est une contrainte portant sur les variables de Xs. La relation rs associée à cs est ini-tialement connue, éventuellement vide.

Dénition 4.15 (résoudre un eDDCSP) Résoudre un eDDCSP δ = (X, D, C, R, Xs, Ds, cs, rs), c'est trouver une solution du CSP (X, D, C, R). Pour toute solution σ du CSP (X, D, C, R), la relation rs est modiée dyna-miquement par rs = rs∪ {σ[Xs]} où σ[Xs] est la projection de σ sur Xs. On dit alors que cs et rs sont "deltadépendantes de δ" ou simplement "deltadépen-dantes".

Exemple 4.5 (eDDCSP) Soit δ un eDDCSP δ = (X, D, C, R, Xs, Ds, cs, rs), avec X = {x1, x2, x3} D = {d1, d2, d3}, d1= {a, b}, d2= {b, c}, d3= {b, c} C = {c1, c2, c3} c1= (x1, x2), c2= (x2, x3), c3= (x1, x3) R = {r1, r2, r3} r1= {(a, b), (b, b), (b, c)}, r2= {(b, c), (c, b)}, r3= {(a, c)} Xs= {x1, x2, x3} cs= (x1, x2, x3) rs= ∅

Chapitre IV Protocole de communication entre SE et CSP

Figure 4.1  Hypergraphe associé au eDDCSP de l'exemple 4.5 Ce eDDCSP est représenté dans la gure 4.1 par un hypergraphe dont les n÷uds représentent l'ensemble des variables, les arcs représentent les contraintes binaires et les hyper-arcs schématisés par des polygones représentent les contraintes n-aires.

Dans cet exemple l'instanciation σ = {x1= a, x2= b, x3= c}est consistante dans le CSP (X, D, C, R) dont elle est une solution. Pendant la résolution, la relation rsest modiée dynamiquement par rs = rs∪ {(a, b, c)}.

Exemple 4.6 (eDDCSP) Modions à présent l'exemple précédent. On a à présent un nouveau eDDCSP δ = (X, D, C, R, Xs, Ds, cs, rs), avec

X = {x1, x2, x3} D = {d1, d2, d3} d1= {a, b}, d2= {b, c}, d3= {b, c} C = {c1, c2} c1= (x1, x2), c2= (x2, x3) R = {r1, r2} r1= {(a, b), (b, b), (b, c)}, r2= {(b, c), (c, b)} Xs= {x1, x3} cs= (x1, x3) rs= ∅

Chapitre IV Protocole de communication entre SE et CSP

Chapitre IV Protocole de communication entre SE et CSP Ce eDDCSP est représenté dans la gure 4.2. Dans cet exemple les instan-ciations {x1 = a, x2 = b, x3 = c}, {x1 = b, x2 = b, x3 = c}et {x1 = b, x2 = c, x3 = b} sont consistantes. Pendant la résolution, la relation rs est modiée dynamiquement par rs= rs∪ {(a, c), (b, c), (b, b)}.

Dénition 4.16 (eDDCSP dépendant) Un eDDCSP δ =(X, D, C, R, Xs, Ds, cs, rs) est dit dépendant si et seulement si l'une au moins des contraintes de C ou l'une au moins des relations de R est deltadépendante.

Dénition 4.17 (relation deltadépendance) Soient deux eDDCSP δ1

=(X1, D1, C1, R1, Xs1, Ds1, cs1, rs1) et δ2 =(X2, D2, C2, R2, Xs2, Ds2, cs2, rs2) , on dit que δ1 est deltadépendant de δ2 si et seulement si l'une au moins des contraintes de C1 est deltadépendante de δ2.

Dans un eDDCSP dépendant, les contraintes deltadépendantes sont dyna-miques. En eet, conformément à la dénition 4.15, de nouveaux tuples consis-tants sont ajoutés à une relation d'une contrainte deltadépendante chaque fois qu'une solution du eDDCSP associé est trouvée. Au contraire, dans un eDDCSP indépendant, par dénition aucune contrainte de C n'est deltadépen-dante. La seule relation dynamique d'un eDDCSP indépendant est rs. Toutes les contraintes de C sont donc statiques et on peut en déduire que cs∈ C/ .

Les deux eDDCSP des exemples 4.5 et 4.6, considérés séparément, sont tous les deux indépendants contrairement au eDDCSP suivant :

Exemple 4.7 (eDDCSP dépendant) Modions à nouveau l'exemple 4.5. Et considérons le eDDCSP δ = (X, D, C, R, Xs, Ds, cs, rs), avec

X = {x1, x2, x3} D = {d1, d2, d3} d1= {a, b}, d2= {b, c}, d3= {b, c} C = {c1, c2} c1= (x1, x2), c2= (x2, x3) R = {r1, r2} r1= {(a, b), (b, b)}, r2= {(b, c)} Xs= {x1, x3} cs= (x1, x3) rs= r1

Ce eDDCSP est représenté dans la gure 4.3. Nous attirons l'attention sur le fait rs = r1 n'est pas une simple commodité d'écriture mais signie que la relation rs partage avec r1 la même liste de couples autorisés. Donc modier

Chapitre IV Protocole de communication entre SE et CSP rsrevient à modier r1et réciproquement. Dans cet exemple les instanciations {x1 = a, x2 = b, x3 = c}, {x1 = b, x2 = b, x3 = c} sont consistantes. Puisque rs = r1, pendant la résolution, la relation r1 est modiée dynamiquement par r1 = r1∪ {(a, c), (b, c)}.

Figure 4.3  Hypergraphe associé au eDDCSP de l'exemple 4.7 avant et après la résolution

Chapitre IV Protocole de communication entre SE et CSP Dénition 4.18 (DDCSP) Un DDCSP est déni par (X, D, C, R, ∆), où ∆ = {δ0, δ1, . . . , δn} est un ensemble de eDDCSP, tels que ∀i ∈ {0, . . . , n}, δi = (Xi, Di, Ci, Ri, Xsi, Dsi, csi, rsi), avec X = ∪n i=0Xi, D = ∪n i=0Di, C = ∪n i=0Ci∪ {cs0, . . . , csn} et R = ∪n i=0Ri∪ {rs0, . . . , rsn}.

Dénition 4.19 (résoudre un DDCSP) Résoudre un DDCSP, c'est ré-soudre δ0.

Si X0 = ∅, alors par convention on cherche toutes les solutions de tous les eDDCSP de ∆.

Exemple 4.8 (DDCSP) Soit le DDCSP (X, D, C, R, ∆) de la gure 4.4, avec ∆ = {δ0, δ1, δ2}, tels que : δ0 = (X0, D0, C0, R0, Xs0, Ds0, cs0, rs0), δ1 = (X1, D1, C1, R1, Xs1, Ds1, cs1, rs1), et δ2= (X2, D2, C2, R2, Xs2, Ds2, cs2, rs2).

δ0 est déni par : X0= {x01, x02, x03} D0= {d01, d02, d03} d01 = ∅, d02= ∅, d03 = ∅ C0= {c01} c01= (x01, x02, x03) r01 = rs2 = ∅ Xs0 = ∅ cs0 = ∅ rs0= ∅

δ1 est déni par : X1= {x11, x12, x13} D1= {d11, d12, d13} d11 = {a, b}, d12 = {b, c}, d13= {b, c} C1= {c11, c12} c11= (x11, x12), c12 = (x12, x13) R1= {r11, r12} r11 = {(a, b), (b, b)}, r12 = {(b, c)} Xs1 = {x11, x13} cs1 = (x11, x13) rs1= r21

δ2 est déni par : X2= {x21, x22, x23} D2= {d21, d22, d23}

Chapitre IV Protocole de communication entre SE et CSP C2= {c21, c22} c21= (x21, x22), c22 = (x22, x23) R2= {r21, r22} r21 = rs1 = {(a, b), (c, b)}, r22 = {(b, c)} Xs2 = {x21, x22, x23} cs2 = (x21, x22, x23) rs2= r01 = ∅

Figure 4.4  Hypergraphe associé au DDCSP de l'exemple 4.8

La gure 4.4 est la représentation graphique de l'exemple 4.8. Ce DDCSP est constitué par deux eDDCSP principaux qui sont δ1 et δ2. Le eDDCSP δ0

représente le but associé à la question de l'utilisateur. Donc, ce δ0peut varier en fonction de l'objectif souhaité. Les èches représentent les relations de "delta-dépendance" des contraintes. On voit que δ2 est deltadépendant de δ1 puisque

Chapitre IV Protocole de communication entre SE et CSP la contrainte c21 dépend de la contrainte cs1. En eet, elles ont la même rela-tion r21 = rs1. De même, δ0 est deltadépendant de δ2 car c01 dépend de cs2 puisqu'elles ont même relation rs0 = rs2.

Propriété 4.1 Tout CSP est un eDDCSP indépendant.

Preuve 4.1 Soit un CSP P = (X, D, C, R). P est égal au eDDCSP δ = (X, D, C, R, Xs, Ds, cs, rs)où Xs, Ds, cs et rssont vides.

Propriété 4.2 Tout eDDCSP est un DDCSP.

Preuve 4.2 Soit un eDDCSP δ = (X, D, C, R, Xs, Ds, cs, rs) et sa relation associée rs deltadépendante. On peut toujours construire le DDCSP δ0 = (X0, D0, C0, R0, ∆)où ∆ = {δ} et X0= X, D0= D, C0= C∪{cs}, R0= R∪{rs}. Résoudre δ0 est équivalent à résoudre δ.