• Nenhum resultado encontrado

Comparaison avec MELODÍA a) Introduction-Synthèse

FILTREUR de Bases

7) Comparaison avec MELODÍA a) Introduction-Synthèse

7) Comparaison avec MELODÍA

Suffisante. Une CNS est bien sur préférable, mais la condition (seulement) suffisante de MELODÍA est très pertinente.

Par contre, les conjectures d'incohérence fournies par MELODÍA ne sont pas minimales. On entend par là qu'elles fournissent des conditions de validité d'une base de faits initiale (cf le Filtreur de BFi, présenté au 4)) qui sont trop fortes.

Autrement dit, elles peuvent empêcher de lancer une inference avec une base de faits initiale pourtant valide. MELOMIDIA, lui, fournit les conjectures exactes.

Enfin, signalons en faveur de MELOMIDIA les points suivants:

Io) On sait précisément ce qu'il fait (on possède les démonstrations précises de toutes les étapes de l'algorithme). Donc on peut envisager sereinement d'étendre ces fonctionnalités (voir conclusion)

2°) Il constitue une chaîne opérationnelle (en libre service sur l'un des ordinateurs de l'EDF à Clamart) et complète (cf parties 2, 3 et 4 de ce chapitre). De plus, il permet la détection des règles indéclenchables qui, on l'a vu, a fourni sur nos jeux de test des résultats significatifs.

3°) H a des performances bien meilleures que celles de MELODÍA. Il est difficile d'avancer un facteur de performances dans la mesure où cette différence n'apparait que sur de très grandes bases de règles, que MELODÍA ne pouvait traiter complètement, mais on a schéma de performances comparées du type:

Temps à i usure

CPU

3 mn

10 000 20 000 Nombre de Règles Toutefois,

- d'une part les deux algorithmes sont clairement exponentiels,

- d'autre part la meilleure performance de MELOMIDIA est exclusivement due à une programmation plus fine (ce qui est normal puisque l'on partait du programme MELODÍA dont les défauts étaient connus) et plus spécialisée (MELODÍA est plus général que MELOMIDIA, bien que les différences soient à ce niveau assez mineures).

115

b) Exemples théoriques

On donne ici des exemples théoriques, c'est-à-dire correspondant à des ensembles de clauses ne pouvant être produit par notre traducteur à partir de bases de règles écrites dans la syntaxe GENESIA1JTR. En effet, avec cette syntaxe, il est impossible d'obtenir e dont nous avons besoin ici, à savoir que la traduction d'un conséquent de règle donne un littéral négatif (ie un littéral de la forme ->A, avec A une variable propositionnelle). On part donc directement de bases de règles élémentaires (pas de disjonction en prémisse, un seul conséquent par règle) d'ordre zéro pur.

Dans les exemples qui vont suivre, on notera toujours:

->X pour non X

EIj une variable/entité initiale

A, B, ... les variables/entités non initiales

(suite page suivante)

116

b.l) Premier exemple : différence concernant l'opération de coupure Soit la base de règles:

RI : Si E U Alors A R2 : Si EI2 Alors B R3 : Si A Alors -iB R4 : Si -«A Alors -iB

à laquelle correspond le tableau suivant:

R I R2 R3 R4

: S i : S i : S i : S i

REGLES

E U A l o r s A E I 2 A l o r s B

A A l o r s -iB

—iA A l o r s -iB

CLAUSES MELODÍA

c l : - . E l l v c 2 : - i E l 2 v c 3 : ~iA v c 4 : A v

A B - i B

—iB

CLAUSES-REGLES MELOMIDIA

c r i : E U c r 2 : E I 2 c r 3 : A c r 4 : —iA

A*

B * - . B *

- i B *

- Vérification par MELOMIDIA

> Elimination des clause-règle annexes

cr4 est éliminée puisque A est non initial est ->A n'est pas déductible

=> cr4 est indéclenchable

> Coupure sur la variable A. On obtient le système:

crl3: Ell - B * cr2: EE B*

> Coupure sur la variable B. On obtient le système:

crl22 : Ell EI2

> Arrêt

Une BFI incohérente est une BFI contenant au moins Ell et EI2 - Vérification par MELODÍA

> Coupure sur là variable A. On obtient le système:

d 3 : -«Ell v - B c34: -»B

c2: -.EE v B

>Elimination des subsomptions

On supprime la clause cl 3 qui est subsumée par la clause c34

> Coupure sur la variable B. On obtient le système:

c2' : -iEI2 =* conjecture d'incohérence: EI2

> Arrêt

L'algorithme détecte donc bien l'incohérence, mais ne donne pas la bonne conjecture d'incohérence. En effet, d'après MELODÍA, si une base de faits initiale contient l'entité EI2, elle entrainera des déductions contradictoires lors de l'inférence. Ce qui est trop restrictif: il faut aussi que la BFi contienne Ell pour qu'il y ait production d'incohérence.

117

b.2) Deuxième exemple : différence dans l'élimination des règles annexes Soit la base de règles:

RI : Si E U Alors A

R2 : Si EI2 et B Alors -iA R3 : Si -iB Alors B

à laquelle correspond le tableau suivant:

R I R2 R3

S i S i S i

REGLES

E U A l o r s A

E I 2 e t B A l o r s -.A

~iB A l o r s B

CLAUSES MELODÍA

c l : - I E I I v A

c 2 : - i E I 2 v -iB v -.A c 3 : B

CLAUSES-REGLES MELOMIDIA

c r i : E U A*

c r 2 : E I 2 B -iA*

c r 3 : -.B B*

- V é r i f i c a t i o n p a r MELOMIDIA

> Elimination des clause-règle annexes

cr3 est éliminé puisque B est non initial est ->B n'est pas déductible

=> cr3 est indéclenchabie

—> cr2 est éliminé puisque B est non initial est B n'est pas déductible

=> cr2 est indéclenchabie

- > cri est éliminé puisque A est n'est pas contredit et n'est pas utilisé dans la partie prémisse d'une autre règle.

=> cri est inutile

=> le système est vide . Arrêt.

Pour MELOMIDIA, cette base de règles est cohérente. En effet, les BFI valides (ie contenant seulement des EIj) n'entraînent de contradiction: seule RI est déclenchable.

- Vérification par MELODÍA

> Coupure sur la variable B. On obtient le système:

cl: -<EI1 v A c23: ^EI2 v -.A

> Coupure sur la variable A. On obtient le système:

cl2 : -iEII v -<EI2 => conjecture d'incohérence: Ell A EI2

> Arrêt

Cet algorithme trouve la base incohérente. En regard des BFI valides, elle ne l'est pourtant pas. Si on fournit comme base de faits initiale l'ensemble {Ell, EI2}, aucune contradiction n'est inférée.

118

b.3) Troisième exemple : différence dans l'élimination des subsomptions Soit la base de règles:

RI : Si Ell et EI2 Alors -.A R2 : Si E U et A Alors B R3 : Si E U et A Alors -.B R4 : Si -iA Alors C

R5 : SI EI3 Alors -iC

à laquelle correspond le tableau suivant:

RI R2 R3 R4 R5

S i : S i : S i : S i : S I

REGLES

E l l e t E I 2 A l o r s - A E U e t A A l o r s B E U e t A A l o r s -iB

—iA A l o r s C E I 3 A l o r s -iC

CLAUSES MELODÍA c l : - i E I l v - ¡ E I 2 c 2 : - i E I l V - A v c 3 : - i E I l v -,A V c4 : A V C c 5 : - i E l 3 v -iC

v —iA

B

—iB

CLAUSES-REGLES MELOMIDIA c r i : E U

c r 2 : E U c r 3 : E U c r 4 : —iA c r 5 : E I 3

E I 2 - A * A B*

A -iB*

C*

- i C *

- Vérification par MELOMIDIA

> Elimination des clause-règle annexes

cr2 et cr3 sont éliminées puisque A est non initial et A n'est pas déductible

=> cr2 et cr3 sont indéclenchables

> Coupure sur la variable C. On obtient le système:

c r i : Ell EI2 - A * cr45: -A ED

> Coupure sur la variable A. On obtient le système:

crl45: Ell EX2 EI3

> Arrêt

La base de règles est incohérente. Une BFI qui contient au moins les faits Ell, EI2 et EI3 provoquera la production de contradictions lors de l'inférence ,

- Vérification par MELODÍA

> Coupure sur la variable B. On obtient le système:

c l : -EU v -EI2 v - A c23: -Ell v - A

c4: A v C c5 : -EI3 v - C

> Coupure sur la variable C. On obtient le système:

cl : -EU v -EI2 v - A c23: -EU v - A

c45: A v -EI3

> Elimination des subsomptions

La clause cl est subsumée par la clause c23

=> on élimine cl.

119

Il reste: c23: -Ell v i A c45: A v -EI3

> Coupure sur la variable A. On obtient le système:

c2345: -Ell v -ED

> Arrêt => conjecture d'incohérence: Ell A EI3

Là encore, l'algorithme ne donne pas les bonnes BFI à interdire à l'entrée du moteur. Si une BFi contient seulement Ell et EI3, elle ne permet pas la déduction de faits contradictoires lors de l'inférence.

c) Exemple pratique

Nous allons ici fournir un exemple "concret" de la différence des deux démarches. Il est un peu long, aussi nous ne ferons que survoler les étapes suivies par les deux vérificateurs.

c l ) La Base de Règles Soit la base de règles:

REGLE UN-UN

SI A = 1 ALORS B = Vrai' REGLE UN-DEUX

SI A = 2 ALORS B = 'faux' REGLE UN-TROIS

SI B = 'vrai' ALORS E = 1 REGLE UN-QUATRE

SI B * 'vrai* ALORS E = 2 REGLE DEUX-UN

SI A = 3 ALORS C = Vrai' REGLE DEUX-DEUX

SI A = 4 ALORS C = 'faux' REGLE DEUX-TROIS

SI C = 'vrai' ALORS E = 2 REGLE DEUX-QUATRE

SI C / 'vrai' ALORS E = 3 REGLE TROIS-UN

SI A = 5 ALORS D = 'vrai' REGLE TROIS-DEUX

SI A = 6 ALORS D = 'faux' 120

REGLE TROIS-TROIS

SI D = 'vrai' ALORS E = 1 REGLE TROIS-QUATRE

SI D * 'vrai' ALORS E = 3 c.2) Comportement de MELODÍA

Cette base de règles est transformée par MELODÍA en un ensemble de clauses.

On note a¡ le nombre représentant l'expression A = i, e¡ le nombre représentant l'expression E = i,

bv et bf les nombres représentant respectivement (B = 'vrai') et (B = 'faux'), cv et cf les nombres représentant respectivement (C = 'vrai') et (C = 'faux'), dv et df les nombres représentant respectivement (D = 'vrai') et (D = 'faux').

En raison de la symétrie évidente de la BR, on présente l'ensemble des clauses sur 3 colonnes correspondant aux trois blocs constitutifs de la BR.

cil:

cl2:

cl3:

cl4:

-al -a2 -bv bv

V V V V

bv bf el e2

d 5 : d 6 : d 7 : c!8:

-a3 -a4 -cv cv

V V

V V

cv cf e2 e3

cl9:

cllO:

c l l l : cll2:

-a5 -a6 -dv d v

V V V V

dv df

e l e3 A cet ensemble s'ajoutent:

* les 3 clauses d'exclusion sur les 3 variables représentant l'entité E:

clxEl: -el v -e2 clxE2: -e2 v -e3 clxE3: -el v -e3

* les 3 clauses d'exclusion sur les couples (bv, bf), (cv, cf) et (dv, df):

clxB: -bv v -bf dxC: -cv v -cf clxD: -dv v -df

* les 15 clauses d'exclusion entre les 6 variables représentant l'entité A qui sont toutes de la forme

clxAj: -ai v -ak avec i <k et i et j compris entre 1 et 6.

Le vérificateur de la BC-Cohérence de MELODÍA répond pour ce système qu'il est insatisfiable. En effet, on a le phénomène suivant:

- le couple de clauses: -bv v donne, par coupure sur bv, la clause: el

- le couple de clauses: :cv v donne, par coupure sur cv, la clause: e2

- le couple de clauses: -dv v donne, par coupure sur dv, la clause: el

el v e2 v el v

e2 e3 e3

bv cv dv

e2 e3 e3

121

On se retrouve donc après les coupures sur bv, cv et dv avec dans le système les six disjonctions

Clauses obtenues par coupure

Clauses d'exclusion associées à E qui est un système de clauses clairement insatisfiable.

Cette erreur vient du fait que, dans la logique de MELODÍA, soit B (ou C ou D ou E) vaut 'vrai', soit il vaut quelque chose de différent de 'vrai'. Il n'est pris en considération le fait qu'il puisse ne pas exister.

Donc des deux clauses non (B = vrai) OU (E = 1) et (B = vrai) OU (E = 2) ü déduit (E = 1) OU (E =2).

cl3-4:

cl7-8:

clll-12:

clxEl:

clxE2:

clxE3:

el e2 el -el -e2 -el

V V V V V V

e2 e3 e3 -e2 -e3 -e3

On a donc, d'après MELODÍA, une base de règles totalement contradictoire. Donc toute base de faits initiale valide doit déclencher des démonstrations contradictoires!

c.3) Comportement de MELOMIDIA

Le vérificateur de MELOMIDIA est plus pragmatique. On sait que la traduction est identique à celle ci-dessus aux nuances suivantes près:

- le littéral représentant le conséquent est étoile,

- nous n'inversons pas le signe des littéraux dans nos clauses, et ne les considérons donc pas comme des disjonctions mais comme des productions. On obtient donc les clauses-règles suivantes:

cil:

d2:

d3:

cl4:

al a2 bv -bv

bv*

bf*

el*

e2*

cl5:

d6:

cl7:

cl8:

a3 a4 cv -cv

cv*

cf*

e2*

e3*

cl9:

cllO:

clll:

cll2:

a5 a6 dv -dv

dv*

df*

el*

e3*

- Par ailleurs, nos clauses d'exclusion sont:

* les 3 clauses d'exclusion sur les 3 variables représentant l'entité E:

el e2 e2 e3 el e3

* les 3 clauses d'exclusion sur les couples (bv, bf), (cv, cf) et (dv, df):

bf -bv*

cf -cv*

df -dv*

* les 15 clauses d'exclusion entre les 6 variables représentant l'entité A qui sont toutes de la forme: clxAj: aj ak avec 1 < i < k < 6

clxEl:

clxE2:

clxE3:

clxB clxC clxD

122

MELOMIDIA opère d'abord les coupures sur bv et bf, cv et cf, dv et df, qui conduisent au système (on ne répète pas les clauses d'exclusion):

cll-3:

cl2-x-4:

al a2

el*

e2*

cl5-7:

cl6-x-8:

a3 a4

e2*

e3*

C19-11:

cllO-x-12:

a5 a6

e l * e3*

Puis, il opère les coupures sur el, e2 et e3. A chaque fois la clause obtenue est subsumée par une clause d'exclusion:

- coupure sur e l . On obtient les nouvelles clauses:

cll-3-xl: al -e2 cll-3-x2: al -e3 cl9-ll-xl: a5 -e2 cl9-ll-x2: a5 -e3

- coupure sur e2. On obtient (partiel) les nouvelles clauses:

d[l-3-xl]-[5-7]: al a3 cl[9-ll-xl]-[5-7]: a5 a3

qui sont subsumées par les clauses d'exclusion associées à A.

Il ne nous reste donc à la fin que les quinze clauses d'exclusion associées à l'entité A.

Celles-ci constituent les conjectures d'incohérence du SF (cf Théorème 3 du chapitre III). Mais comme elles correspondent aux contraintes naturelles sur les faits (par exemple, la clause d'exclusion al a3 signifie que si on a le fait A = 1, on ne peut avoir en même temps le fait A = 3), on ne les considère pas comme telles.

MELOMIDIA déclarera donc la base cohérente.

On vérifiera aisément qu'aucune base de faits initiale valide ne permet d'inférer des faits contradictoires.

123

PARTIE 2 : Cohérence de Bases de