Ecriture de bases de connaissances en langage FIGARO ...

22
Ecriture de bases de connaissances en langage FIGARO : introduction Marc Bouissou

Transcript of Ecriture de bases de connaissances en langage FIGARO ...

Page 1: Ecriture de bases de connaissances en langage FIGARO ...

Ecriture de bases de connaissances en langage FIGARO :

introduction

Marc Bouissou

Page 2: Ecriture de bases de connaissances en langage FIGARO ...

Plan

� Rappels : FIGARO 1 et FIGARO 0� Un petit exemple complet� Définition exhaustive de FIGARO 0

– La syntaxe– Définition formelle de la sémantique

Page 3: Ecriture de bases de connaissances en langage FIGARO ...

Rappel : Principes de KB3 et FIGSEQ

Base de connaissances• Classes de composants génériques en langage

FIGARO d'ordre 1 Modèle FIGAROdu système

FIGSEQGénérateur d’arbres FIGARO d'ordre 0

KB3

EB1 EB2

Séquences avec leurs

probabilités

FIGARO 1 = moyen de générer des modèles en FIGARO 0

Code de quantification

• coupes minimales• probabilité Evt Indés.• facteurs d’importance

Page 4: Ecriture de bases de connaissances en langage FIGARO ...

Le langage FIGARO

� Développé en 1990� Validé par des centaines d’études de systèmes complexes

Caractéristiques– Orienté-objet (héritage multiple, objets =

instances de classes génériques)– Comportement dynamique décrit par des règles -> facile à

comprendre� De nombreuses bases de connaissances sont disponibles

– Bases abstraites : Diagfia, Markov, Petri, Digraph, BDMP...– Bases «métier» : Hydrau, Iftac, Elec, Opale, Res_tel...– La plus complexe : Topase = 27000 lignes de FIGARO d’ordre 1

Page 5: Ecriture de bases de connaissances en langage FIGARO ...

Objectifs du langage FIGARO

� donner un formalisme approprié pour développer des bases de connaissance (avec des descriptions génériques de composants)

� être plus général que tous les modèles classiques de fiabilité

� faire le meilleur compromis entre puissance de modélisation (ou généralité) et possibilités de traitement des modèles

� être aussi lisible que possible� être facilement associé à des représentations graphiques

Page 6: Ecriture de bases de connaissances en langage FIGARO ...

Contenu d'une base de connaissances

� Modèles génériques de comportement des composants de la bdc en langage FIGARO

� Informations de paramétrage de l'interface graphique pour : – Saisie des modèles (contraintes, instructions de

remplissage des interfaces)– Exploitation en simulation interactive (couleurs,

changements de textes et icônes)

Page 7: Ecriture de bases de connaissances en langage FIGARO ...

Contenu d'un modèle FIGARO 0

� Purement textuel� Déduit uniquement de la description des types

et de la liste des objets avec leurs interfaces renseignées par l'IHM graphique

� Base de tous les traitementsLe langage FIGARO 0 a été conçu de façon à être un "invariant"de l'atelier, défini une fois pour toutes, simple, facile à comprendre et à traiter par les algorithmes de KB3, Figseq, etc…

Page 8: Ecriture de bases de connaissances en langage FIGARO ...

BDC pour réseaux télécoms maillés(complète)

TYPE composant ;PANNE indisponibilite ;PARAMETRE_LOI gamma_indispo PAR_DEFAUT 0.00005 ;EFFET relie LIBELLE "%OBJET connecté à une source" ;ATTRIBUT indispo_testee DOMAINE BOOLEEN PAR_DEFAUT FAUX ;

OCCURRENCE SI NON indispo_testee IL_PEUT_SE_PRODUIRE DEFAILLANCE indisponibilite LOI INS ( gamma_indispo ) PROVOQUE indispo_testee <-- VRAI OU_BIEN TRANSITION non_indisponibilite PROVOQUE indispo_testee <-- VRAI ;(*--------------------------------------------------------*)TYPE noeud SORTE_DE composant ;CONSTANTE fonction DOMAINE 'source' 'but' 'intermediaire' PAR_DEFAUT 'intermediaire' ;INTERACTIONSI MARCHE ET fonction ='source' ALORS relie ;

TYPE arete_uni_dir SORTE_DE composant ;INTERFACE depart GENRE noeud CARDINAL 1 ; arrivee GENRE noeud CARDINAL 1 ;INTERACTION SI MARCHE ET relie DE depart ALORS relie DE arrivee;(*--------------------------------------------------------*)TYPE arete_bi_dir SORTE_DE composant ;INTERFACE extremite GENRE noeud CARDINAL 2 ;INTERACTION SI MARCHE ET ( IL_EXISTE x UNE extremite TELLE_QUE relie DE x ) ET ( QQSOIT x UNE extremite ON_A MARCHE DE x ) ALORS POUR_TOUT y UNE extremite FAIRE relie DE y ;

Page 9: Ecriture de bases de connaissances en langage FIGARO ...

Variante pour les règles d’occurrenceTYPE composant ;PANNE def_fonc ;PARAMETRE_LOI lambda PAR_DEFAUT 0.00005 ; mu PAR_DEFAUT 0.1 ;EFFET relie LIBELLE "%OBJET connecté à une source" ;

OCCURRENCE IL_PEUT_SE_PRODUIRE DEFAILLANCE def_fonc LOI EXP ( lambda ) ;

IL_PEUT_SE_PRODUIRE REPARATION rep

REPARE def_fonc LOI EXP ( mu ) ;

lambda

mudef_fonc =FAUX

def_fonc =VRAI

Grâce à l’utilisation du mot-clé MARCHE, il n’y a rien d’autre à changer pour obtenir une nouvelle bdc (malgré le changement du nom de la panne)

Page 10: Ecriture de bases de connaissances en langage FIGARO ...

Un exemple de réseau

OBJET n1 EST_UN noeud ;

OBJET n2 EST_UN noeud ;

OBJET source EST_UN noeud ; CONSTANTE fonction = 'source';

OBJET a1 EST_UN arete_uni_dir ; INTERFACE depart = source ; arrivee = n1 ;

OBJET a2 EST_UN arete_uni_dir ; INTERFACE depart = source ; arrivee = n2 ;

OBJET a3 EST_UN arete_bi_dir ; INTERFACE extremite = n1 n2 ;

Description FIGARO produitepar l’IHM

(fichier systeme.fi)

Représentation graphiqueservant à la saisie

Page 11: Ecriture de bases de connaissances en langage FIGARO ...

Instanciation à l’ordre 0 de l’objet a3OBJET a3 EST_UN arete_bi_dir ;INTERFACE extremite = n1 n2 ;ATTRIBUT indispo_testee DOMAINE BOOLEEN = FAUX ;(* PANNE *) indisponibilite DOMAINE BOOLEEN = FAUX ;EFFET relie LIBELLE "%OBJET connecté à une source" ;PARAMETRE_LOIgamma_indispo = 5e-005 ;

OCCURRENCExx1 SI ( indispo_testee DE a3 = FAUX ) ET ( indisponibilite DE a3 = FAUX ) IL_PEUT_SE_PRODUIRE DEFAILLANCE indisponibilite LOI INS ( gamma_indispo DE a3 ) PROVOQUE indisponibilite DE a3<--VRAI, indispo_testee DE a3<-- VRAI OU_BIEN TRANSITION non_indisponibilite PROVOQUE indispo_testee DE a3 <-- VRAI ;INTERACTIONxx4 ETAPE etape_par_defaut SI ( ( ( ( indisponibilite DE a3 = FAUX ) ) ) ET ( ( relie DE n1 = VRAI ) OU ( relie DE n2 = VRAI ) ) ) ET ( ( ( ( indisponibilite DE n1 = FAUX ) ) ) ET ( ( ( indisponibilite DE n2 = FAUX ) ) ) ) ALORS relie DE n1 <-- VRAI , relie DE n2 <-- VRAI ;

Page 12: Ecriture de bases de connaissances en langage FIGARO ...

Eléments d’un modèle FIGARO d’ordre 0ORDRE_DES_ETAPES E1 ; E2 ; .....En ;

TYPE t1 ; (* simple déclaration des types, pour traçabilité / ordre 1 *)TYPE tp ;

GLOBAL (* même type de contenu que pour un objet standard *)

OBJET o1 EST_UN t1 t2; (* facultatif : rappelé pour traçabilité / ordre 1 *)PARAMETRE_LOI

p1 = 5e-005 ;p2 = {expression numérique constante} ;

CONSTANTEc1 = ‘v1’ ;c2 = {expression constante} ;

INTERFACE Inter1 = obj1 obj2 ; (* facultatif : rappelé pour traçabilité *)

ATTRIBUT Att1 DOMAINE BOOLEEN = FAUX ; Att2 DOMAINE ENTIER = 1 ;Att3 DOMAINE REEL = 0.67E-4 ;Att4 DOMAINE ‘v1’ ‘v2’ ‘v3’ = ‘v2’ ;

EFFET Eff1;

OCCURRENCE {règles d’occurrence} INTERACTION {règles d’interaction}

NB : on peut avoirplusieurs paragraphesd’un type donné (p.e.)OCCURRENCE dansla description d’un objet(pratique pour utilisationde macros à l’ordre 1)mais chaque objet doit êtredéclaré une seule fois

Pour les attributs, la facette = qui définit l’état initial de l’attribut par une expression constante peut être remplacée par une facette REINITIALISATION suivie d’une expression constante

Page 13: Ecriture de bases de connaissances en langage FIGARO ...

Les expressionsexpression := atome |

expression op expression |( expression )NON expression

op := ET | OU | + | - | * | / | = | < | > |<>| < = | >= |

atome := symbole | etat DE objet1chaine de caractères | ‘ouvert’nombre | 1.2E6VRAI | FAUX

Une expression constante a tous ses atomes constants

Page 14: Ecriture de bases de connaissances en langage FIGARO ...

Compatibilité entre types d’expression

� Les règles de compatibilité sont intuitives� A noter :

– Une chaîne de caractères ne peut aucunement être transformée en valeur numérique

– Une expression booléenne peut être implicitement considérée comme un réel ce qui permet d'écrire par exemple :taux_def � 0.01 * (temperature = 'OK' ) +

0.1 * (temperature = 'elevee' )

Page 15: Ecriture de bases de connaissances en langage FIGARO ...

Syntaxe des règles d’occurrence (2 types)

nom_règle (* type 1 : transitions temporisées *)SI expression booléenneIL_PEUT_SE_PRODUIRETRANSITION nom_tr1

LOI EXP ( expression numérique )PROVOQUE liste d’affectations ;

nom_règle (* type 2 : transitions instantanées *)SI expression booléenneIL_PEUT_SE_PRODUIRETRANSITION nom_tr1

LOI INS ( expression numérique )PROVOQUE liste d’affectations

OU_BIEN TRANSITION non_indisponibilite

PROVOQUE nom_tr2LOI INS ( expression numérique )PROVOQUE liste d’affectations

...OU_BIEN TRANSITION nom_trn

PROVOQUE liste d’affectations ;

Le mot-clé TRANSITIONpeut éventuellement être remplacé par DEFAILLANCE, ou REPARATION (aucune différence de fond)

liste d’affectations : série d’instructions du typevariable <-- expressionséparées par des virgules

Page 16: Ecriture de bases de connaissances en langage FIGARO ...

Syntaxe des règles d’interaction

nom_règleETAPE nom_étapeSI expression booléenneALORS liste d’affectationsSINON liste d’affectations

La facette SINON est facultative

On peut avoir une règle ne contenant qu’une facette ALORS : c’est une liste d’affectations systématique, faite sanscondition.

Page 17: Ecriture de bases de connaissances en langage FIGARO ...

Définition formelle de FIGARO 0

� Sémantique d’un modèle FIGARO 0 = automate non déterministe

� Définissable à l’aide de notions mathématiques élémentaires : ensembles, fonctions, vecteur d’état… (Cf. communications au ����)

� La définition formelle permet :– de vérifier le respect de cette sémantique par un outil

(FIGSEQ…)– de voir où les problèmes d’incohérence peuvent surgir

Page 18: Ecriture de bases de connaissances en langage FIGARO ...

Sémantique du langage FIGARO 0

Y0

V0

L’initialisation de l’automate est faite uniquement par la valeur des attributs nonréinitialisables (ici, les variables Etat1 et Etat2 – les flux sont réinitialisés à "nul")

Y1

V1

RI

RI: règles d’interaction (automate déterministe)RO: règles d’occurrence (automate non déterministe)

Y0

V2

Y3

V3

RI

Y0

V4

Y5

V5

RI

Flux1 = nulEtat1 = ferme

Flux1 = CCEtat1= Demande_ouvertureFlux1 = OK

Etat1 = ferme

Flux2 = CCEtat2 = CCFlux2 = OK

Etat2 = OKFlux2 = nulEtat2 = OK

RORO

ROEtat2 <- CC

Un modèle FIGARO est un automate non

déterministe

Etat1 <- OI

Flux1 = nulEtat1 = OI

Flux2 = nulEtat2 = OK

Page 19: Ecriture de bases de connaissances en langage FIGARO ...

Les étapes dans les R.I.

� R.I. : déduction de tous effets déterministes et instantanés après une transition

� Il est très utile de pouvoir organiser ces déductions en étapes. Ex :– propagation d’un flux PUIS– décisions d’ouverture/fermeture de vannes

� L’état du modèle en sortie d’une étape sert d’entrée à l’étape suivante

Page 20: Ecriture de bases de connaissances en langage FIGARO ...

Les groupes de règles

� Objectif : permettre plusieurs utilisations d’un modèle, saisi une seule fois

� Chaque règle peut être associée à un ou plusieurs groupes (repérés par des noms)

� Au niveau de l’exploitation d’un modèle en FIGARO 0, on peut sélectionner les groupes à prendre en compte

� Les groupes TOUT et SANS_NOM sont ajoutés systématiquement à la liste déclarée explicitement

� Pas supportés par la V2 de KB3

Page 21: Ecriture de bases de connaissances en langage FIGARO ...

Possibilités du langage FIGARO

� Le langage est très flexible– Avantage : plus général que la grande majorité des

formalismes qui pourraient être utilisés pour le même type d'applications (y compris AltaRica)

– Inconvénient : nécessité de travailler suivant une méthodologie précise en n'employant que telle ou telle partie des possibilités en fonction des objectifs à atteindre

Page 22: Ecriture de bases de connaissances en langage FIGARO ...

Suite de la formation…

� Syntaxe complète de FIGARO d'ordre 1� Paramétrage de l'interface graphique associé à

une BDC (Ces deux premiers points seront vus pour des bdc destinées uniquement à produire des arbres de défaillances)

� Retour sur l'ensemble des possibilités pour les systèmes dynamiques. Contrôle de la cohérence

� Travail en commun sur une bdc de votre choix