• Aucun résultat trouvé

Diagnostic : étude d’un raisonnement complexe et multi-dimensionnel

N/A
N/A
Protected

Academic year: 2021

Partager "Diagnostic : étude d’un raisonnement complexe et multi-dimensionnel"

Copied!
230
0
0

Texte intégral

(1)

HAL Id: tel-01984666

https://hal.laas.fr/tel-01984666

Submitted on 17 Jan 2019

HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

multi-dimensionnel

Yannick Pencolé

To cite this version:

Yannick Pencolé. Diagnostic : étude d’un raisonnement complexe et multi-dimensionnel. Automatique

/ Robotique. Université Toulouse 3 - Paul Sabatier, 2018. �tel-01984666�

(2)

pr´ esent´ ee devant

l’Universit ´ e Toulouse III- Paul Sabatier

Membre de l’UNIVERSITE FEDERALE TOULOUSE MIDI-PYRENEES sp ´ ecialit ´ e : INFORMATIQUE

par

Yannick Pencol´ e

Diagnostic : ´ etude d’un raisonnement complexe et multi-dimensionnel

soutenue le 19 septembre 2018 devant le jury compos ´ e de :

Michel Combacau, professeur des universit´ es, Universit´ e de Toulouse III Philippe Dague, professeur des universit´ es, Universit´ e Paris-Sud [Pr´ esident]

Antoine Grall, professeur des universit´ es, Universit´ e Technologique de Troyes Stefan Haar, directeur de recherche INRIA, LSV-CNRS, ENS de Cachan

Pierre Marqis, professeur des universit´ es, Universit´ e d’Artois

Louise Trav´ e-Massuy` es, directeur de recherche CNRS, LAAS, Toulouse au vu des rapports de :

Antoine Grall, professeur des universit´ es, Universit´ e Technologique de Troyes Stefan Haar, directeur de recherche INRIA, LSV-CNRS, ENS de Cachan

Pierre Marqis, professeur des universit´ es, Universit´ e d’Artois

(3)
(4)

En tout premier lieu je tenais ` a remercier tous les membres de mon jury pour avoir accept´ e de participer ` a cette habilitation. Merci donc ` a Philippe Dague mon rapporteur de th` ese de doctorat qui a ´ et´ e promu pr´ esident de mon jury d’habilitation avec qui j’ai eu un ´ enorme plaisir ` a ´ echanger au cours des diff´ erents projets qu’on a eu ensemble.

Merci ` a mes trois rapporteurs, je leur ai impos´ e la lecture d’un gros volume certes, mais je l’ai ´ ecrit avec plaisir et j’esp` ere qu’ils l’ont lu avec plaisir. Merci donc ` a Pierre Marquis pour cette tˆ ache mais ´ egalement pour avoir accept´ e de rapporter la th` ese de Nuno B´ elard. Merci ` a Stefan Haar, qui, depuis notre rencontre ` a l’IRISA, a toujours eu une influence sur ma recherche en diagnosticabilit´ e et r´ eseau de Petri, merci ` a lui

´

egalement pour avoir rapport´ e la th` ese de Houssam-Eddine Gougam. Enfin, merci

`

a Antoine Grall d’avoir accept´ e le jeu de l’Universit´ e Paul Sabatier et d’ˆ etre devenu mon rapporteur myst` ere. Merci ` a Louise, notre cheffe d’´ equipe ´ eternelle et ma tutrice d’habilitation, pour toutes les opportunit´ es et pour tous les projets auxquels elle m’a propos´ e de participer. Et enfin, merci ` a Michel pour m’avoir accept´ e dans son bureau et dans sa science et pour m’avoir donn´ e l’exp´ erience de deux encadrements de th` eses enrichissantes, (le bel ´ echange d’un 27 et d’un 61 !).

Et bien s ˆ ur, il y a les autres et en particulier mes anciens doctorants : Anika,

Pauline, Nuno, Houssam, Xingyu. Ils m’ont offert leur confiance, ce qui a ´ et´ e essentiel

dans la d´ emarche scientifique ` a laquelle nous nous sommes tous attel´ es. Je pense

avoir eu la chance de rencontrer des ´ etudiants de cultures diff´ erentes dans des lieux

diff´ erents ce qui a conduit ` a des ´ echanges riches autant sur le plan scientifique que

sur le plan humain. La science doit se nourrir de tous les regards, de tous les points

de vue, c’est le seul moyen de ne pas passer ` a c ˆ ot´ e d’une id´ ee novatrice, de casser les

formats de pens´ ees et leur carcans. Merci ´ egalement pour leur sens de l’humour au

quotidien et leur politesse pour avoir accept´ e le mien. Merci ` a tous les membres du

RSISE d’avoir accept´ e un Frenchy et ` a tous les membres de DISCO d’avoir accept´ e un

informaticien. Ce travail est l’aboutissement des nombreux ´ echanges et collaborations

que j’ai pu avoir avec vous tous. Je voudrais remercier plus particuli` erement Audine

Subias et Sylvie Thi´ ebaux qui m’ont ´ egalement donn´ e l’opportunit´ e de rencontrer et

de co-encadrer Houssam et Anika.

(5)

Enfin, je voudrais remercier celle qui ne veut pas ˆ etre remerci´ ee ( je le fais en dos

de page, cela ne se verra pas…). Que cela soit en sortant du RSISE ou du LAAS, elle

a toujours ´ et´ e l` a pour me soutenir et me faire d´ ecouvrir tant de choses sur la nature

humaine ` a travers ce monde.

(6)

1 Diagnostic : un raisonnement complexe et multi-dimensionnel 11

1.1 Introduction g´ en´ erale . . . . 11

1.2 Formalisation g´ en´ erique du probl` eme de diagnostic . . . . 14

1.3 Organisation de ce document . . . . 16

2 Diagnostic et sa vision statique 17 2.1 Rappels sur la th´ eorie logique du diagnostic . . . . 17

2.1.1 Connaissance du syst` eme et sa repr´ esentation . . . . 18

2.1.2 Probl` eme de diagnostic et solutions . . . . 20

2.1.3 Algorithme de diagnostic de coh´ erence . . . . 22

2.2 Dito , un outil CSP pour le diagnostic de coh´ erence . . . . 23

2.2.1 Contexte des travaux . . . . 23

2.2.2 Codage d’un probl` eme de diagnostic en CSP . . . . 23

2.2.3 Rappel : algorithme de diagnostic guid´ e par les conflits . . . . . 25

2.2.4 Algorithme de Dito . . . . 27

2.2.5 Strat´ egie de recherche des candidats minimaux . . . . 30

2.3 Diagnosticabilit´ e des syst` emes logiques . . . . 32

2.3.1 Contexte des travaux . . . . 32

2.3.2 Notion de diagnosticabilit´ e dans les syst` emes logiques . . . . . 33

2.3.3 Diagnosticabilit´ e revisit´ ee . . . . 36

2.4 Th´ eorie logique du m´ eta-diagnostic . . . . 38

2.4.1 Contexte des travaux . . . . 38

2.4.2 Syst` eme de diagnostic . . . . 39

2.4.3 Sur les performances d’un syst` eme de diagnostic . . . . 41

2.4.4 Indicateurs de d´ efaillance d’un syst` eme de diagnostic . . . . 46

2.4.5 Formalisation et r´ esolution d’un probl` eme de m´ eta-diagnostic . 48 2.4.6 Exemples . . . . 50

2.4.7 Extensions . . . . 54

2.5 R´ esum´ e . . . . 55

5

(7)

3 Diagnostic de comportements s ´ equentiels 57

3.1 Caract´ erisation g´ en´ erale du probl` eme et formalisations . . . . 58

3.1.1 D´ efinition du probl` eme g´ en´ eral, un point de vue langage . . . . 58

3.1.2 Quelques variantes/extensions du probl` eme initial . . . . 63

3.2 Spectre d’algorithmes de diagnostic symboliques . . . . 64

3.2.1 Contexte des travaux . . . . 64

3.2.2 Probl´ ematique . . . . 64

3.2.3 Mod´ elisation symbolique du probl` eme . . . . 68

3.2.4 Diagnostic bas´ e sur le mod` ele compositionnel . . . . 72

3.2.5 Diagnostic bas´ e sur le mod` ele global symbolique . . . . 73

3.2.6 Diagnostic bas´ e sur une machine symbolique abstraite . . . . . 75

3.2.7 Diagnostic bas´ e sur un diagnostiqueur symbolique . . . . 77

3.2.8 Quelques r´ esultats exp´ erimentaux . . . . 79

3.2.9 R´ esum´ e . . . . 85

3.3 Diagnosticabilit´ e des syst` emes ` a ´ ev´ enements discrets . . . . 86

3.3.1 Contextes des travaux . . . . 86

3.3.2 D´ efinition du probl` eme . . . . 87

3.3.3 Analyse d´ ecentralis´ ee . . . . 88

3.3.4 Analyse par agr´ egations distribu´ ees . . . . 93

3.3.5 Diagnosticabilit´ e de motifs d’int´ erˆ et . . . . 95

3.3.6 Extensions . . . 102

3.3.7 R´ esum´ e . . . 107

3.4 Pr´ ecision du diagnostic dans le cadre distribu´ e . . . 108

3.4.1 Contexte des travaux . . . 108

3.4.2 Diagnostiqueur sp´ ecialis´ e . . . 108

3.4.3 Diagnostiqueur pr´ ecis . . . 110

3.4.4 Caract´ erisation d’un diagnostiqueur pr´ ecis . . . 111

3.4.5 Diagnostiqueur pr´ ecis et abstraction de connexions . . . 113

3.5 R´ esum´ e . . . 114

4 Diagnostic temporel 117 4.1 Diagnostic temporel et reconnaissance de chroniques . . . 118

4.1.1 Contexte des travaux . . . 118

4.1.2 Syst` emes ` a ´ ev´ enements discrets temporels . . . 118

4.1.3 Probl` eme de diagnostic temporel . . . 119

4.1.4 Reconnaissance de chroniques . . . 121

4.2 Mod´ elisations et analyses de chroniques . . . 124

4.2.1 Contexte de ces travaux . . . 124

4.2.2 Formalisation des chroniques et de leur reconnaissance pour le diagnostic . . . 125

4.2.3 Crit` eres de qualit´ e . . . 128

(8)

4.2.4 Chroniques exclusives et diagnosticabilit´ e . . . 132

4.2.5 R´ esum´ e . . . 135

4.3 Analyses de diagnosticabilit´ e et chroniques . . . 136

4.3.1 Contexte des travaux . . . 136

4.3.2 Formalisme d’analyse . . . 136

4.3.3 Analyse de l’exclusivit´ e de chroniques . . . 138

4.4 M´ ethode de d´ etection et de localisation de d´ efauts sur des graphes d’´ ev´ enements temporis´ es . . . 143

4.4.1 Contexte des travaux . . . 143

4.4.2 Syst` emes (max,+) lin´ eaires . . . 143

4.4.3 D´ efinition des indicateurs de d´ ecalages temporels par r´ esiduation 147 4.4.4 Localisations des sources de d´ ecalage . . . 151

4.4.5 R´ esum´ e . . . 152

4.5 R´ esum´ e . . . 152

5 Diagnostic et ses applications ` a la d ´ ecision 153 5.1 Syst` emes autogu´ erissants . . . 153

5.1.1 Contexte et objectif . . . 153

5.1.2 Notion de r´ eparation . . . 154

5.1.3 Caract´ erisation d’un syst` eme autogu´ erissant . . . 157

5.1.4 Lien entre diagnosticabilit´ e et r´ eparabilit´ e pour l’autogu´ erison . 158 5.2 Diagnostic actif sur les syst` emes ` a ´ ev´ enements discrets . . . 161

5.2.1 Contexte des travaux . . . 161

5.2.2 Extension de mod` ele pour le diagnostic actif . . . 162

5.2.3 Diagnostic actif sur un SED . . . 163

5.2.4 Diagnostiqueur actif . . . 165

5.2.5 Utilisation du diagnostiqueur actif dans un processus de diag- nostic actif . . . 169

5.3 Diagnostic et maintenance . . . 173

5.3.1 Contexte et objectif . . . 173

5.3.2 Formalisation g´ en´ erique pour le diagnostic d’un syst` eme int´ egr´ e en vue de sa maintenance . . . 173

5.3.3 Int´ egration diagnostic-pronostic . . . 181

5.3.4 Diagnostic et pronostic d’un syst` eme dynamique diff´ erentiable par une m´ ethode ensembliste . . . 184

5.4 R´ esum´ e . . . 192

6 Quelques aspects logiciels 193 6.1 Dito : outil de diagnostic logique . . . 193

6.1.1 Mode non graphique . . . 194

6.1.2 Mode d´ emonstration . . . 194

(9)

6.3 Autres contributions logicielles . . . 198

6.3.1 Plateforme logicielle Tipadiag . . . 198

6.3.2 Plateforme logicielle Maxpluslin . . . 199

6.3.3 Plateforme logicielle Prognospice . . . 199

7 Bilan et perspectives 203 7.1 Synth` ese des travaux de recherche . . . 203

7.1.1 Spectre de m´ ethodes de diagnostic automatique . . . 203

7.1.2 Diagnosticabilit´ e des syst` emes . . . 204

7.1.3 Diagnostic d´ ecentralis´ e . . . 204

7.1.4 M´ eta-diagnostic . . . 205

7.1.5 Diagnostic et ses applications . . . 205

7.2 Perspectives . . . 205

7.2.1 Court terme . . . 205

7.2.2 Moyen terme . . . 208

8 Bibliographie 213 8.1 Contributions . . . 213

8.2 R´ ef´ erences . . . 220

(10)

Ce document est un rapport d’habilitation ` a diriger des recherches. Ce document a ainsi pour but de donner ` a qui de droit les moyens de statuer sur mon aptitude ` a l’obtention d’une habilitation ` a diriger des recherches. De quoi parlons-nous donc ? Faisant r´ ef´ erence au texte l´ egal initial de l’Arrˆ et´ e du 23 novembre 1988 relatif ` a l’habi- litation ` a diriger des recherches, la r´ eponse ` a cette question se trouve dans le premier paragraphe de son article 1 que je cite ici dans son int´ egralit´ e.

L’habilitation ` a diriger des recherches sanctionne la reconnaissance du haut niveau scientifique du candidat, du caract` ere original de sa d´ emarche dans un domaine de la science, de son aptitude ` a maˆıtriser une strat´ egie de recherche dans un domaine scientifique ou technologique suffisamment large et de sa capacit´ e ` a encadrer de jeunes chercheurs.

On distingue ainsi quatre crit` eres ` a ´ evaluer et je me propose ` a travers ce document de fournir les ´ el´ ements n´ ecessaires ` a cette ´ evaluation.

1. La reconnaissance du haut niveau scientifique du candidat. Dans ce document, je fournis une synth` ese de mes travaux postdoctoraux qui ont ´ et´ e publi´ es et valid´ es par mes pairs ainsi qu’une description de l’ensemble des productions logicielles qui ont conduit ` a la r´ ealisation de ces travaux mais ´ egalement aux r´ esultats de contrats de collaborations scientifiques tant avec des partenaires acad´ emiques qu’avec des partenaires industriels.

2. Le caract`ere original de sa d´emarche dans un domaine de la science. Le premier chapitre de ce document a pour objectif de pr´ eciser le champ scientifique de ma d´ emarche globale et le dernier en pr´ ecisera les perspectives. Chaque contribu- tion sera expliqu´ ee ` a partir de son contexte initial.

3. Son aptitude `a maˆıtriser une strat´egie de recherche dans un domaine scientifique ou

technologique suffisamment large. Le premier chapitre est consacr´ e ` a la d´ emarche

globale de mes travaux. Les chapitres suivants ont pour objectif de situer les

diff´ erents travaux effectu´ es dans cette d´ emarche globale. Chaque chapitre re-

groupe les travaux d’une th´ ematique particuli` ere et ne suivent donc en aucun

cas un ordre chronologique, chaque th´ ematique ´ etant en compl´ ement d’une

(11)

adoptant un regard compl´ ementaire.

4. Sa capacit´e `a encadrer de jeunes chercheurs. Ce document et les r´ esultats qu’il contient sont issus de diff´ erentes collaborations avec des chercheurs, enseignants-chercheurs, doctorants et stagiaires. Tout au long de cette synth` ese, les collaborations et encadrements aff´ erents ` a toute contribution seront syst´ ematiquement pr´ ecis´ es.

Cessons maintenant de limiter l’habilitation ` a diriger des recherches ` a un simple paragraphe de droit afin de voir si l’habilitation n’est pas finalement la marque de l’acquisition d’une comp´ etence nouvelle par rapport ` a un doctorat. J’avais conclu ma th` ese en disant que son aboutissement amenait finalement ` a la connaissance de soi : et l’hell´ eniste que je suis ´ ecrivait ainsi dans son pr´ eambule la fameuse phrase ´ ecrite sur le temple de Delphes et illustrant ce constat : Γνῶτι σεαυτον. Je voulais rebondir sur ce constat de jeune docteur avec les ann´ ees et l’exp´ erience acquise et ainsi formuler ce que je crois ˆ etre la comp´ etence nouvellement acquise pendant ces ann´ ees post-doctorales.

Et donc, l’hell´ eniste que je suis toujours a voulu r´ epondre sous forme de clin d’œil

au jeune docteur que j’ai ´ et´ e. Selon moi, apr` es la connaissance de soi, la comp´ etence

nouvelle qui donne sens ` a l’habilitation est la connaissance d’autrui : Γνῶτι αλλον !

(12)

Diagnostic : un raisonnement

complexe et multi-dimensionnel

1.1 Introduction g ´ en ´ erale

D´ emarrons en posant une premi` ere d´ efinition conceptuelle de la notion fondamen- tale qui sera trait´ ee tout au long de ce document : le diagnostic.

D ´ efinition 1.1 (Diagnostic) Le diagnostic est un raisonnement, une d´emarche intellec- tuelle, qui consiste `a identifier la nature d’une situation, d’un mal, d’une difficult´e, d’un dysfonctionnement par l’interpr´etation de signes ext´erieurs.

Avant de rentrer dans plus de d´ etails, arrˆ etons-nous un instant sur cette d´ efinition.

La premi` ere chose ` a noter est que le diagnostic est un raisonnement, typiquement une activit´ e humaine. Son ´ etude et sa simulation ` a l’aide d’ordinateurs est une branche de l’intelligence artificielle. L’objectif de ce raisonnement est d’identifier la nature d’une situation, autrement dit le diagnostic n´ ecessite une classification a priori des situa- tions (le sain et le malade, le bon fonctionnement et le dysfonctionnement, le bien et le mal, etc) et d´ ecide pour une situation donn´ ee quelles sont les classes possibles de cette situation. Le troisi` eme point ` a noter est que ce raisonnement se fait ` a l’aide d’une interpr´etation de signes ext´erieurs. Autrement dit, une sous-activit´ e essentielle au diag- nostic est la perception de signes qui sont ´ emis et dont l’interpr´ etation est orient´ ee en vue de d´ ecider de la nature de la situation.

Cette premi` ere d´ efinition est tr` es conceptuelle mais elle montre que l’activit´ e de

diagnostic est une activit´ e tr` es g´ en´ erale qui peut ˆ etre utilis´ ee dans tous les domaines et

peut profiter ` a tous. En premier lieu, on pense bien ´ evidemment au diagnostic m´ edical

(identifier une maladie ` a l’aide de sympt ˆ omes) ou encore au diagnostic de pannes

chez le garagiste. Mais ce raisonnement peut s’appliquer dans biens d’autres domaines

socio-´ economiques.

(13)

Si l’on doit r´ esumer en une phrase l’objectif des travaux pr´ esent´ es dans ce do- cument, alors le but ultime est la synth`ese informatique d’un agent ou d’un ensemble d’agents ayant des capacit´es cognitives suffisantes pour surveiller, d´etecter et diagnos- tiquer des situations dans leur environnement. Par agent, nous entendons ici une en- tit´ e capable d’interagir avec son environnement (voir la figure 1.1) et en ce sens nous adoptons le mˆ eme point de vue qu’en planification automatique [Ghallab et al., 2016].

N´ eanmoins, ` a la diff´ erence d’un probl` eme de planification o ` u l’agent a pour objectif d’agir sur son environnement pour le mener dans un ´ etat but, l’agent diagnostiqueur a pour objectif d’analyser son environnement en l’observant (action non-intrusive) afin qu’il affine son ´etat de croyance et ´ emette des hypoth` eses pouvant expliquer une situa- tion qualifi´ ee d’anormale dans l’environnement. En ce sens, un agent diagnostiqueur n’a pas l’objectif de modifier son environnement par une d´ ecision (mˆ eme s’il peut en avoir la capacit´ e comme c’est le cas dans le cadre d’un diagnostic actif (voir notamment la section 5.2 page 161)) mais de le comprendre par la simple observation de celui-ci.

La r´ ealisation d’un diagnostic passe en g´ en´ eral par un ensemble d’´ etapes illustr´ ees par la figure 1.1. ` A partir des observations disponibles, la premi` ere d’entre elle est la d´etection. Cette ´ etape d´ etermine si le comportement observ´ e est consid´ er´ e comme normal ou non. Ensuite vient la phase de localisation : elle consiste ` a isoler dans l’en- vironnement des parties suspectes qui seraient ` a l’origine du comportement anormal.

La phase d’identification, quant ` a elle, a pour objectif de d´ eterminer dans ces parties suspectes la nature du probl` eme. La derni` ere phase, celle d’explication, g´ en` ere la re- lation cause-effet entre les probl` emes/dysfonctionnements identifi´ es et les observa- tions, en cela elle explique la raison de telle ou telle observation (observation symp- tomatique). La mise en œuvre effective de ces diff´ erentes ´ etapes d´ epend notamment de la disponibilit´ e des connaissances sur le syst` eme. La d´ etection requiert une notion de mod` ele fonctionnel de l’environnement (fonctionnement normal). La localisation n´ ecessite en plus une notion de mod` ele structurel (un ensemble de parties). L’identi- fication n´ ecessite un mod` ele de comportement/fonctionnement en cas de d´ efaillance et l’´ etape d’explication requiert en plus une information cause-effet entre le dysfonc- tionnement et ses sympt ˆ omes. Toute ´ etape de diagnostic peut ˆ etre rendue active. Le diagnostic actif n´ ecessite des moyens d’actions/planification sur l’environnement en particulier des choix de mesures, des applications de tests afin d’infirmer/confirmer des hypoth` eses de diagnostic.

Enfin, le diagnostic peut s’effectuer de fac ¸on collaborative par plusieurs agents

diagnostiqueurs. En fonction de l’environnement ` a surveiller, diff´ erentes architec-

tures d’agents peuvent ˆ etre envisag´ ees. L’architecture centralis´ee consiste en un

seul agent qui a une connaissance globale de l’environnement et dispose de toutes

les observations disponibles. Il fournit un diagnostic global. Dans une architecture

d´ecentralis´ee/distribu´ee, plusieurs agents ont une connaissance locale de l’environne-

ment et fournissent des diagnostics locaux. Afin de garantir une coh´ erence globale, ils

(14)

Environnement

agir (tests, choix de mesures,etc) percevoir

(signaux)

Plateforme d’ex´ ecution observations

connaissance d´ etection

localisation identification

explication

planification diagnostic

(hypoth` eses)

(messages)

Figure 1.1 – Agent diagnostiqueur g´ en´ erique.

proc` edent par ´ echange de messages soit pour fournir un diagnostic global (dans une architecture d´ ecentralis´ ee) soit pour fournir des diagnostics locaux mais globalement coh´erents (architecture distribu´ ee).

Comparer d’entr´ ee de jeu diagnostic et planification n’est pas anodin. L’agent diag- nostiqueur peut ˆ etre vu entre autres comme l’assistant d’un agent planificateur. En fournissant une analyse compl` ete de la situation environnementale au planificateur, il offre ` a celui-ci un moyen de revoir ses objectifs et d’affiner ses d´ ecisions d’actions pour mieux conduire son environnement dans un ´ etat but encore acceptable et d’en expliquer l’´ echec s’il n’est plus possible de mener l’environnement dans un tel ´ etat.

Mais le diagnostic n’est pas uniquement li´ e au probl` eme de planification automatique, ce raisonnement peut en effet ˆ etre utilis´ e dans d’autres contextes en particulier ceux qui seront d´ evelopp´ es au chapitre 5.

Dans ce document, nous consid´ erons que l’agent diagnostiqueur se focalise sur la supervision et le diagnostic d’un syst` eme dans l’environnement. Un syst` eme ici est ` a prendre au sens large du terme.

D ´ efinition 1.2 (Syst ` eme) Un syst`eme est un ensemble identifi´e d’´el´ements r´eels de l’en-

vironnement interagissant entre eux selon certaines r`egles et dont l’interaction avec l’en-

vironnement externe a une finalit´e.

(15)

L` a encore, arrˆ etons-nous un instant sur cette deuxi` eme d´ efinition. Premi` erement, un syst` eme est un ensemble d’´el´ements r´eels, autrement dit un syst` eme est une partie de la r´ ealit´ e. Dans ce document, nous ferons toujours la distinction entre le syst` eme et toute repr´ esentation intellectuelle de celui-ci (commun´ ement appel´ e mod` ele). Le deuxi` eme point important ici est que cet ensemble est identifi´e comme un tout par celui qui perc ¸oit le syst` eme (en particulier le diagnosticien) au milieu de son environ- nement. Un syst` eme interagit avec son environnement et peut, en particulier, fournir des signes ext´ erieurs au diagnosticien. On demande ´ egalement au syst` eme d’avoir une finalit´ e. L’interaction du syst` eme avec son environnement a un but, un objectif qui peut ne pas ˆ etre atteint d` es lors que le syst` eme est en dysfonctionnement. Ainsi, le diagnosticien impose au syst` eme d’avoir une fonction vis-` a-vis de son environnement.

La vue syst´ emique est propre au domaine de recherche en automatique. C’est par ce point de vue que toute une communaut´ e scientifique issue de l’automatique aborde

´

egalement l’´ etude du diagnostic de syst` emes.

Par mod` ele de syst` emes, nous adopterons le point de vue d´ efini dans [Chittaro et al., 1993]. Un syst` eme, une r´ ealit´ e physique, peut ˆ etre mod´ elis´ e avec de nombreux points de vue (mod` eles fonctionnels, mod` eles structurels, mod` eles compor- tementaux) qui peuvent ´ egalement ˆ etre exploit´ es ensemble pour obtenir un r´ esultat plus pr´ ecis ou de fac ¸on plus efficace.

D ´ efinition 1.3 (Mod ` ele de syst ` eme) Un mod`ele est une repr´esentation math´ematique d’un point de vue sur le syst`eme.

Dans les travaux pr´ esent´ es, diff´ erents formalismes (langages) de repr´ esentation de la connaissance sur un syst` eme seront exploit´ es. Du point de vue du diagnostic, un mod` ele (peu importe sa nature) constitue ainsi la base de connaissances sur laquelle va se fonder le raisonnement.

1.2 Formalisation g ´ en ´ erique du probl ` eme de diag- nostic

Soit  un langage de repr´ esentation de la connaissance. ` A l’aide de ce langage  , on peut d´ ecrire des phrases logiques 𝜋

1

, 𝜋

2

, … et ainsi repr´ esenter dans une base de connaissance DS la description du syst`eme que l’on souhaite diagnostiquer par un en- semble de phrases de  . Soit ⊧ l’op´ erateur s´ emantique de cons´ equence logique associ´ e

`

a ce langage  , tout au long de ce document on consid´ erera que cet op´ erateur est Tars- kien, ` a savoir :

1. ⊧ est une relation monotone : pour toute base de connaissance 𝐵 si 𝐵 ⊧ 𝜋 alors

pour toute phrase 𝜋

, 𝐵 ∪ {𝜋

} ⊧ 𝜋 (l’ajout de connaissance n’invalide pas de

cons´ equence).

(16)

2. ⊧ est idempotente : si 𝐵 ⊧ 𝜋 et 𝐵 ∪ {𝜋 } ⊧ 𝜋

alors 𝐵 ⊧ 𝜋

(l’ajout de cons´ equences de la base 𝐵 dans 𝐵 n’entraˆıne pas de nouvelles cons´ equences).

3. ⊧ est extensible : 𝐵 ⊧ 𝜋 pour tout 𝜋 ∈ 𝐵 (toute phrase de la base 𝐵 est cons´ equence de la base 𝐵).

Tout au long de ce document, on supposera que l’agent diagnostiqueur dispose ` a un instant donn´ e d’une description du syst` eme DS (un mod` ele du syst` eme ` a diagnostiquer) d’un ensemble d’observations OBS et d’un ensemble de propri´ et´ es d’int´ erˆ ets 𝜋

1

, … , 𝜋

𝑛

et son objectif sera de d´eterminer a partir de ` DS et de OBS si l’une ou plusieurs de ces propri´ et´ es 𝜋

𝑖

sont possibles. Formellement, si l’on distingue dans OBS les observations symptomatiques OBS

S

des autres OBS

C

alors l’agent diagnostiqueur a pour objectif de d´ eterminer les 𝜋

𝑖

telles que :

DS ∪ {𝜋

𝑖

} ∪ OBS

C

∪ OBS

S

̸⊧ ⊥ et

DS ∪ {𝜋

𝑖

} ∪ OBS

C

⊧ OBS

S

.

La propri´ et´ e 𝜋

𝑖

est ainsi un diagnostic candidat d` es lors que les observations sont en coh´ erence avec le syst` eme d´ ecrit par DS affect´e par la propri´ et´ e 𝜋

𝑖

(ce que l’on nomme diagnostic fond´ e sur la coh´ erence (consistency-based diagnosis)). De plus, si des observations symptomatiques OBS

S

sont pr´ esentes alors la pr´ esence de la propri´ et´ e 𝜋

𝑖

sur le syst` eme DS est une cause possible de ces sympt ˆ omes (diagnostic abductif ).

La formalisation du probl` eme pr´ esent´ ee ci-dessus est g´ en´ erique, elle repose sur un langage de repr´ esentation  et un op´ erateur ⊧ qui lui est associ´ e. Les travaux pr´ esent´ es dans ce document d´ ecrivent des instances de ce probl` eme g´ en´ erique o ` u le choix de

 est d´ etermin´ e par le type d’information (la/les dimension(s)) trait´ e sur un syst` eme donn´ e. Nous exposerons notamment diff´ erents probl` emes associ´ es ` a ce probl` eme de diagnostic. Le premier d’entre eux est bien ´ evidemment calculatoire, le diagnostic par d´ efinition est li´ e ` a la notion de satisfaisabilit´ e qui est d´ ej` a un probl` eme NP-complet sur la logique propositionnelle, ce qui revient ` a dire que le succ` es d’une approche de diagnostic repose essentiellement sur l’efficacit´e de la m´ethode propos´ee. La deuxi` eme source de difficult´ e est li´ ee ` a la disponibilit´ e et la qualit´ e des observations OBS. Une trop faible disponibilit´ e peut induire un nombre consid´ erable de diagnostics candidats et conduire ainsi ` a l’´ echec d’un tel raisonnement (que dire en effet si le raisonnement de diagnostic aboutit ` a la conclusion que tout est possible ?). L’´ etude a priori du lien entre la disponibilit´ e des observations et les potentielles ambigu¨ıt´ es qui peuvent ˆ etre lev´ ees grˆ ace ` a elles dans DS est ce que l’on d´ esigne par l’´etude de diagnosticabilit´e, des travaux seront ´ egalement expos´ es sur cette th´ ematique. Enfin, une derni` ere difficult´ e dans le raisonnement de diagnostic est la qualit´ e de la connaissance sur le syst` eme.

Plus g´ en´ eralement le raisonnement fait certaines hypoth` eses sur DS, notamment que

la connaissance est correcte (tout ce qui est d´ ecrit, est) voire compl` ete (tout ce qui n’est

(17)

pas d´ ecrit, n’est pas : hypoth` ese du monde clos). Qu’en est-il si ces hypoth` eses ne sont pas effectives ? L’analyse de ces questions sont des probl` emes de m´eta-diagnostic.

1.3 Organisation de ce document

La suite de ce document est organis´ ee de la fac ¸on suivante. Les chapitres 2 ` a 4 pr´ esentent les diff´ erentes contributions au probl` eme de diagnostic (diagnostic, diag- nosticabilit´ e, . . .). Le chapitre 𝑛 + 1, 𝑛 ∈ {2, 3} traite du diagnostic de syst` emes en pre- nant en compte une dimension suppl´ ementaire par rapport aux syst` emes trait´ es dans le chapitre 𝑛. Ce classement n’est donc pas chronologique mais th´ ematique. Avec le chapitre 2, on d´ emarre donc avec les syst` emes statiques o ` u le temps ne modifie donc pas l’´ etat de sant´ e du syst` eme. Le chapitre 3 pr´ esente les travaux sur les syst` emes ` a

´

ev´ enements discrets, o ` u l’´ etat du syst` eme change avec l’occurrence d’´ ev´ enements au cours du temps. Le chapitre 4 introduit la dimension temporelle dans le syst` eme ` a savoir que la date de l’occurrence des ´ ev´ enements a une importance contrairement aux syst` emes pr´ esent´ es dans le chapitre 3. Le chapitre 5, quant ` a lui, pr´ esentera des contributions sur l’int´ egration du diagnostic pour l’aide ` a la d´ ecision (r´ eparation auto- matique, autonomie d´ ecisionnelle, maintenance correctionnelle et pr´ evisionnelle). Le chapitre 6 a pour objectif de rappeler quelques aspects autour des logiciels qui ont

´

et´ e d´ evelopp´ es et ont contribu´ e ` a la production des r´ esultats exp´ erimentaux. Enfin le

chapitre 7 pr´ esente les conclusions de ces travaux et les perspectives de recherche.

(18)

Diagnostic et sa vision statique

Ce chapitre est consacr´ e au raisonnement diagnostique sur des syst` emes en adop- tant un point de vue purement statique. La th´ eorie d´ ecrite ici repose sur le fait que le syst` eme ´ etudi´ e est consid´ er´ e ˆ etre dans un ´ etat de sant´ e permanent (´ etat anor- mal ou non). De mˆ eme, la notion d’observation introduite ici repr´ esente une infor- mation partielle de cet ´ etat. Cette th´ eorie constitue ´ egalement la trame fondamen- tale des travaux qui ont ´ et´ e initi´ es dans les ann´ ees 80-90 et qui ont fait ´ emerger la communaut´ e scientifique dite du

diagnostic ` a base de mod` ele

dont l’acro- nyme est DX [Hamscher et al., 1992]. Beaucoup de travaux ont d´ ej` a eu lieu sur cette th´ ematique et cet aspect du raisonnement diagnostique a finalement ´ et´ e laiss´ e de c ˆ ot´ e pendant de nombreuses ann´ ees. L’un des freins majeurs dans ce domaine est la complexit´ e des algorithmes qui n´ ecessitent, comme nous le verrons, l’utilisation intensive de prouveurs de th´ eor` emes logiques, d’outils de raisonnement automa- tiques [Mozetic and Holzbaur, 1994]. Ce n’est que tr` es r´ ecemment, que l’on perc ¸oit au sein de la communaut´ e un regain d’int´ erˆ et pour ce domaine dont l’origine est la mont´ ee en puissance des ordinateurs et des progr` es scientifiques notamment sur la programmation par contraintes et le calcul de satisfaisabilit´ e de formules propo- sitionnelles [Feldman et al., 2010a], [Feldman et al., 2014], [Marques-Silva et al., 2015], [Jannach et al., 2016], [Stern et al., 2017].

2.1 Rappels sur la th ´ eorie logique du diagnostic

Le principe fondamental de la th´ eorie propos´ ee par [Reiter, 1987] a ´ et´ e initi´ ee

par [deKleer, 1976] suivie de [Davis, 1984], [Genesereth, 1984] pour une applica-

tion dans les circuits ´ electroniques. Dans cette th´ eorie du raisonnement de diag-

nostic, on distingue la connaissance du syst` eme analys´ e et le raisonnement lui-

mˆ eme qui est d´ ecrit ` a l’aide d’un moteur g´ en´ erique de diagnostic. La connaissance

du syst` eme est repr´ esent´ ee ` a l’aide d’un mod` ele d´ ecrit dans une logique. Cette

(19)

connaissance est dite de principes premiers, ` a savoir que le mod` ele d´ ecrit comment le syst` eme fonctionne (en particulier comment le syst` eme fonctionne normalement).

Cette connaissance est g´ en´ eralement issue d’une mod´ elisation qualitative du fonction- nement physique du syst` eme analys´ e. Cette connaissance est ` a opposer ` a la connais- sance dite de surface, o ` u l’on associe directement des observations (sympt ˆ omes) ` a des causes de dysfonctionnement (connaissance utilis´ ee en g´ en´ eral par des syst` emes ex- perts [Giarratano and Riley, 2004]).

2.1.1 Connaissance du syst ` eme et sa repr ´ esentation

La connaissance du syst` eme ` a diagnostiquer est repr´ esent´ ee ` a l’aide d’un mod` ele formel qui s’appuie dans le cas des syst` emes logiques sur la logique du premier ordre.

D ´ efinition 2.1 (Mod ` ele du syst ` eme) Le mod`ele d’un syst`eme est un couple (DS, COMPS) o`u :

— DS est un ensemble fini de phrases logiques du premier ordre, aussi appel´e la des- cription du syst` eme ;

— COMPS est un ensemble de symboles de la logique sous-jacente, chaque symbole repr´esentant un composant d’int´ erˆ et dans le syst`eme.

La d´ efinition 2.1, issue des travaux originaux de [Reiter, 1987] et de [deKleer and Williams, 1987] est tr` es abstraite et ne met pas v´ eritablement en avant le fait que DS mod´ elise le comportement d’un syst` eme. Dans la vision statique, un syst` eme r´ ealise une fonction qui, ` a partir d’un ensemble d’entr´ ees, produit une sortie. Dans [5], on se propose d’affiner cette d´ efinition (sans en restreindre son application) afin de mieux rendre compte que DS mod´ elise le comportement d’un syst` eme.

D ´ efinition 2.2 (Param ` etre [5]) Un param`etre est un terme logique p d´esignant toute quantit´e physique qui peut ˆetre ´echang´ee entre le syst`eme et son environnement, le terme v(p) d´esignant sa valeur.

Le param` etre d´ esigne donc une quantit´ e ´ echang´ ee, par exemple : une tension v(T) = 10.5, une pression v(p) = [2, 5], un signal bool´ een EstVrai(v(s)), . . . C’est ` a partir de ces param` etres que la fonction du syst` eme est mise en œuvre. Un param` etre peut ˆ etre un param` etre d’entr´ ee (le syst` eme n’influe pas sur sa valeur) ou un param` etre de sortie (le syst` eme influe/g´ en` ere sa valeur). C’est la notion de contexte.

D ´ efinition 2.3 (Contexte [5]) Le contexte CXT d’un syst`eme est une partition 𝑃

𝐸

∪ 𝑃

𝑆

de l’ensemble de param`etres du syst`eme : 𝑃

𝐸

est l’ensemble des param`etres d’entr´ee, 𝑃

𝑆

est l’ensemble des param`etres de sortie. En logique un contexte est d´ecrit par une conjonction :

CXT

𝐝𝐞𝐟

= ⋀

p∈𝑃𝐸

Entree(p) ∧ ⋀

p∈𝑃𝑆

¬Entree(p).

(20)

La notion de contexte permet d’exprimer le fait qu’un syst` eme peut avoir diff´ erents modes de fonctionnement o ` u les flux d’´ echanges avec l’ext´ erieur sont diff´ erents. Quand le syst` eme n’a qu’un seul contexte, il est en g´ en´ eral omis dans DS. Cette notion de contexte interviendra en particulier dans la th´ eorie du m´ eta-diagnostic (section 2.4 page 38).

Dans la description du syst` eme, on doit pouvoir ensuite distinguer les compor- tements dits normaux des comportements dits anormaux. C’est l’objectif du pr´ edicat d’anomalie.

D ´ efinition 2.4 (Pr ´ edicat d’anomalie) Le pr´edicat An(.) est le pr´edicat unaire qui si- gnifie pour tout composant c ∈ COMPS, que le composant c a un comportement anormal.

La figure 2.2 illustre une telle description logique du comportement normal du cir- cuit logique de la figure 2.1, circuit qui a ´ et´ e initialement d´ ecrit dans [Davis, 1984].

L’ensemble des composants de ce circuit est :

COMPS = {M

1

, M

2

, M

3

, A

1

, A

2

}.

M

3

M

2

M

1

A

2

A

1

e d c b a

f

g x

y

z

Figure 2.1 – Circuit logique contenant 3 multiplicateurs (M

1

, M

2

and M

3

) et 2 addi- tionneurs (A

1

et A

2

).

La premi` ere phrase logique d´ ecrit le contexte unique du syst` eme et chaque autre phrase logique de la figure 2.2 d´ ecrit un comportement nominal du circuit. Par exemple, la phrase M

1

desc exprime que si le composant M

1

est dans un ´ etat normal alors la valeur de sa sortie est le r´ esultat de la multiplication de ses deux entr´ ees a et c.

Dans l’exemple pr´ ec´ edent, on ne d´ ecrit que le comportement normal : toute phrase est de la forme ¬An(C) ⇒ … , autrement dit : si le composant 𝐶 fonctionne normale- ment alors,… . On peut ´ evidemment int´ egrer ` a cette connaissance, des comportements anormaux : un comportement anormal est un comportement explicite et anticip´ e du syst` eme dans un contexte particulier (que l’on appelle couramment un mode anormal).

Un mode anormal peut juste expliciter le comportement anormal d’un composant avec

une phrase de la forme An(C) ⇒ … , par exemple, si l’on sait qu’un multiplicateur

(21)

CXT ∶ Entree(𝑎) ∧ Entree(𝑏) ∧ Entree(𝑐) ∧ Entree(𝑑)∧

Entree(𝑒) ∧ ¬Entree(𝑓 ) ∧ ¬Entree(𝑔) M

1

desc ∶ ¬An(M

1

) ⇒ (v(x) = v(a) ∗ v(c)) M

2

desc ∶ ¬An(M

2

) ⇒ (v(y) = v(b) ∗ v(d)) M

3

desc ∶ ¬An(M

3

) ⇒ (v(z) = v(c) ∗ v(e)) A

1

desc ∶ ¬An(A

1

) ⇒ (v(f ) = v(x) + v(y)) A

2

desc ∶ ¬An(A

2

) ⇒ (v(g) = v(y) + v(z))

Figure 2.2 – Description du comportement normal du circuit de la figure 2.1.

anormal de la figure 2.1 produit toujours une sortie ` a 0, on pourra ajouter au mod` ele, la connaissance suivante :

An(M

1

) ⇒ (v(x) = 0) ∧ An(M

2

) ⇒ (v(y) = 0) ∧ An(M

3

) ⇒ (v(z) = 0).

On peut ´ egalement int´ egrer des modes anormaux plus complexes int´ egrant plu- sieurs composants et des contextes comme par exemple :

(v(a) > 50) ∧ An(M

1

) ∧ An(A

1

) ⇒ (v(f ) = 50).

On peut enfin, introduire des modes de dysfonctionnement pour chaque composant en ´ etendant par exemple le pr´ edicat d’anomalie ` a des modes :

An

M

(M

1

, toujours0) ⇒ An(M

1

), An

M

(M

1

, toujours0) ⇒ (v(x) = 0)

2.1.2 Probl ` eme de diagnostic et solutions

A l’aide du pr´ ` edicat d’anomalie, il est possible d’exprimer un ´ etat de sant´ e pour le syst` eme. Chaque composant c est soit normal (¬An(c)), soit anormal (An(c)).

D ´ efinition 2.5 ( ´ Etat de sant ´ e) Un ´etat de sant´e du syst`eme mod´elis´e par (DS, COMPS) est une conjonction 𝜎 (Δ) de la forme :

𝜎 (Δ)

𝐝𝐞𝐟

= ⋀

c∈Δ

An(c) ∧ ⋀

c∈COMPS⧵Δ

¬An(c) o`u Δ est l’ensemble des composants anormaux du syst`eme.

Il ne peut y avoir de raisonnement diagnostique sans la pr´ esence d’observations.

Une observation est une information issue de la mesure du syst` eme. Dans cette th´ eorie

logique, les observations OBS du syst` eme sont repr´ esent´ ees par une conjonction de

faits logiques : chaque fait repr´ esente une information partielle mais observ´ ee de l’´ etat

(22)

du syst` eme. Revenant sur l’exemple de la figure 2.1, si les entr´ ees a, b, c, d, e et les sorties f , g sont observables alors la conjonction

v(a) = 1 ∧ v(b) = 2 ∧ v(c) = 3 ∧ v(d) = 4 ∧ v(e) = 5

∧v(f) = 11 ∧ v(g) = 23 constitue l’ensemble OBS des observations du syst` eme.

Dans la notion d’observation, on va ´ egalement distinguer deux types d’observa- tions :

1. les observations symptomatiques OBS

S

sont un sous-ensemble d’observations qui sont consid´ er´ ees comme anormales (l’effet d’un comportement anormal) et dont on va chercher la cause par une explication,

2. les observations contextuelles OBS

C

sont les autres observations disponibles : OBS = OBS

S

∧ OBS

C

, les diagnostics propos´ es devront ˆ etre coh´ erents avec OBS

C

.

Le raisonnement de diagnostic a pour objectif de d´ eterminer ` a partir de la connais- sance disponible du syst` eme et des observations l’ensemble des ´ etats de sant´ e qui sont possibles selon OBS et qui explique les sympt ˆ omes OBS

S

. Le probl` eme du diagnostic peut donc s’introduire de la fac ¸on suivante.

D ´ efinition 2.6 (Probl ` eme de diagnostic logique) Un probl`eme de diagnostic lo- gique PD s’exprime par un quadruplet PD

𝐝𝐞𝐟

= (DS, COMPS, OBS

C

, OBS

S

).

La solution de ce probl` eme est l’ensemble des diagnostics candidats. Un candidat est un ´ etat de sant´ e qui est coh´erent avec le mod` ele (DS, COMPS) et l’observation OBS du syst` eme et qui explique les sympt ˆ omes OBS

S

.

D ´ efinition 2.7 (Diagnostic candidat) Soit le probl`eme PD = (DS, COMPS, OBS

C

, OBS

S

), un diagnostic candidat (ou encore plus simplement un candidat) de PD est un ´etat de sant´e 𝜎 (Δ) tel que :

1. DS ∧ OBS

C

∧ OBS

S

∧ 𝜎 (Δ) est satisfaisable ; 2. DS ∧ OBS

C

∧ 𝜎 (Δ) ⊧ OBS

S

.

La d´ efinition pr´ ec´ edente de diagnostic candidat, ici formul´ ee dans le cadre des

syst` emes logiques, illustre un des aspects fondamentaux du raisonnement diagnos-

tique, ` a savoir la mise en coh´ erence du fait observ´ e (les observations issues de la me-

sure du syst` eme r´ eel) et la base de connaissance (condition 1). Un ´ etat de sant´ e 𝜎 (Δ)

est un candidat parce qu’il est un mod` ele de DS ∧ OBS, autrement dit, ce candidat rend

possible l’observation de OBS dans le mod` ele DS : on retrouve ici l’un des principes

fondateurs du diagnostic ` a base de mod` eles. Dans cette d´ efinition g´ en´ erale, on retrouve

(23)

´

egalement la notion d’explication de sympt ˆ omes (condition 2), non seulement le can- didat est coh´ erent avec les observations mais il est ´ egalement la cause des sympt ˆ omes, il existe des propagations causales dans DS qui induisent OBS

S

.

D ´ efinition 2.8 (Diagnostic) Soit PD un probl`eme, sa solution, aussi appel´ee le diag- nostic, est l’ensemble des diagnostics candidats de PD.

La d´ efinition 2.6 propose en fait tout un spectre de probl` emes de diagnos- tic [Console and Torasso, 1990], [Console and Torasso, 1991] qui est d´ efini en fonction du choix des observations symptomatiques. On distingue en particulier les deux cas extrˆ emes.

1. Dans le cas o ` u il n’y a aucune observation symptomatique OBS

S

= ⊤, la condition 2 est automatiquement v´ erifi´ ee d` es lors que la condi- tion 1 l’est. Ce cas sp´ ecifique et largement ´ etudi´ e est le diagnostic de coh´erence o ` u l’on cherche uniquement a ` retrouver les etats ´ de sant´ e en coh´ erence avec les observations [Reiter, 1987][Hamscher, 1988], [deKleer and Williams, 1989],[Hamscher, 1988], [deKleer and Williams, 1989], [Coste-Marquis and Marquis, 1998].

2. Le cas o ` u il n’y a que des sympt ˆ omes OBS

C

= ⊤ s’appelle le diagnostic abduc- tif. Dans ce contexte DS repr´ esente en fait un graphe causal de d´ efaillances et l’objectif est de d´ eterminer les causes de toutes les observations [Poole, 1989a], [Peng and Reggia, 1990], [Koitz and Wotawa, 2015].

2.1.3 Algorithme de diagnostic de coh ´ erence

Le diagnostic de coh´ erence est un cas particulier qui est de grande importance en r´ ealit´ e. ` A l’oppos´ e du diagnostic abductif, il ne n´ ecessite pas d’une connaissance a priori de comportements anormaux (du type An() ⇒) pour retourner des solutions. Il est tout ` a fait possible de faire du diagnostic de coh´ erence en ne s’appuyant que sur la connaissance du comportement normal du syst` eme qui est en g´ en´ eral bien plus ais´ ee

`

a obtenir (description de pourquoi et comment le syst` eme est fait).

Le diagnostic solution d’un probl` eme est l’ensemble des diagnostics candidats (voir la d´ efinition 2.8) or, si l’on se limite au diagnostic de coh´ erence, avec une connaissance des seuls comportements normaux, on constate que si 𝜎 (Δ) est un ´ etat de sant´ e candidat alors tout sur-ensemble Δ

⊃ Δ d´ efinit ´ egalement un ´ etat de sant´ e 𝜎 (Δ

) candidat.

D ´ efinition 2.9 (Candidat minimal) Un candidat 𝜎 (Δ) est minimal s’il n’existe pas d’autres candidats 𝜎 (Δ

) tels que Δ

⊂ Δ.

Ainsi, la recherche de la solution au probl` eme de diagnostic peut se r´eduire ` a la

recherche de l’ensemble des candidats minimaux, car, par d´ efinition, tout candidat est

un sur-ensemble d’au moins l’un de ces candidats minimaux.

(24)

2.2 Dito , un outil CSP pour le diagnostic de coh ´ erence

Cette section pr´ esente les travaux effectu´ es sur la th´ ematique du diagnostic de coh´ erence dans les syst` emes logiques.

2.2.1 Contexte des travaux

Tous les r´ esultats qui ont ´ et´ e bri` evement rappel´ es dans la section 2.1 sont des r´ esultats th´ eoriques fondamentaux issus principalement des travaux de la commu- naut´ e DX dans les ann´ ees 85-90. Li´ es ` a ces travaux th´ eoriques, des outils d´ evelopp´ es par divers auteurs sont apparus sous le nom de moteur de diagnostic g´ en´ erique (GDE : Generic Diagnostic Engine), citons par exemple l’outil de [deKleer and Williams, 1987]

ou encore l’outil de [Dressler and Struss, 1994].

Dans le cadre des travaux sur le m´ eta-diagnostic de Nuno Belard (voir la section 2.4), il ´ etait indispensable de disposer d’un tel outil de diagnostic op´ erationnel et effi- cace. Il s’est av´ er´ e que les outils disponibles ´ etaient inexploitables, soit ils ´ etaient non maintenus, soit ils ´ etaient trop sp´ ecialis´ es et donc incompatibles avec nos attentes.

L’objectif premier de ces travaux a donc ´ et´ e de mettre en œuvre un moteur de diag- nostic logique mais en b´ en´ eficiant des toutes r´ ecentes avanc´ ees dans les domaines du calcul par contraintes et de la satisfaisabilit´ e[Beldiceanu et al., 2007]. En effet, le prin- cipe du diagnostic ´ etant la mise en œuvre d’une succession de tests de satisfaisabilit´ e, l’id´ ee a donc consist´ e ` a mettre ` a profit un outil pr´ eexistant pour les tests de satisfai- sabilit´ e, c’est l’essence mˆ eme du logiciel Dito qui a ´ et´ e initi´ e au cours de la th` ese de Nuno Belard et d´ evelopp´ e pendant ces derni` eres ann´ ees [38].

2.2.2 Codage d’un probl ` eme de diagnostic en CSP

L’objectif de Dito a ´ et´ e d’exploiter un moteur de r´ esolution de contraintes en pro- posant un moyen automatique de traduire un probl` eme de diagnostic en une succession de probl` emes de satisfaction de contraintes [Rossi et al., 2006].

D ´ efinition 2.10 (Probl ` eme de satisfaction de contraintes) Un probl` eme de satis- faction de contraintes (abr´eviation anglaise CSP) est un triplet (𝑋 , 𝐷, 𝐶) o`u :

— 𝑋 = {𝑥

1

, … , 𝑥

𝑛

} est un ensemble de variables.

— 𝐷 = {𝐷𝑜𝑚(𝑥

1

), … , 𝐷𝑜𝑚(𝑥

𝑛

)} est un ensemble de domaines. 𝐷𝑜𝑚(𝑥

𝑖

) est le domaine de la variable 𝑥

𝑖

.

— 𝐶 = {𝑐

1

, … , 𝑐

𝑚

} est un ensemble de contraintes. Une contrainte 𝑐

𝑖

est un sous- ensemble de 𝐷𝑜𝑚(𝑥

1

) × ⋯ × 𝐷𝑜𝑚(𝑥

𝑛

).

Une affectation (𝑣

1

, … , 𝑣

𝑛

) est un 𝑛-uplet de 𝐷𝑜𝑚(𝑥

1

) × ⋯ × 𝐷𝑜𝑚(𝑥

𝑛

), chaque valeur

𝑣

𝑖

etant affect´ ´ ee ` a la variable correspondante 𝑥

𝑖

.

(25)

D ´ efinition 2.11 (Affectation coh ´ erente) Une affectation 𝐴 est coh´ erente si 𝐴 ∈

𝑚

𝑖=1

𝑐

𝑖

.

Une affectation coh´ erente est une solution du probl` eme CSP, autrement dit la so- lution d’un CSP est l’ensemble 𝑆𝑜𝑙(𝐶𝑆𝑃 ) des affectations coh´ erentes. Un probl` eme CSP est dit non-satisfaisable s’il n’existe pas de solution et donc aucune affectation coh´ erente :

𝑆𝑜𝑙(𝐶𝑆𝑃 ) = ∅.

Un outil de r´ esolution CSP propose un langage de description de probl` emes (𝑋 , 𝐷, 𝐶) utilisant un ensemble d’op´ erateurs afin de d´ efinir des expressions (arithm´ etiques ou bool´ eennes) et des contraintes sur ces expressions. Ind´ ependamment de l’outil utilis´ e, son langage peut exprimer ` a minima les op´ erateurs de contraintes suivant : ⟨et⟩, ⟨ou⟩, ⟨non⟩, ⟨ ́egal⟩, ⟨diff⟩, ⟨inf⟩, ⟨sup⟩, ⟨infeg⟩, ⟨supeg⟩ ; ainsi que les op´ erateurs arithm´ etiques : ⟨plus⟩, ⟨moins⟩, ⟨mult⟩, ⟨div⟩, ⟨mod⟩, ⟨opp⟩. C’est avec ces op´ erateurs que Dito va traduire les probl` emes ` a l’aide la fonction 𝑒𝑛𝑐𝑜𝑑𝑒 :

𝑒𝑛𝑐𝑜𝑑𝑒 ∶  → contraintes

o ` u  est l’ensemble des phrases finies de la logique du premier ordre et contraintes est l’ensemble des contraintes pouvant ˆ etre exprim´ ees au sein de l’outil CSP. Toute phrase logique 𝓁 de  se traduit par la fonction 𝑒𝑛𝑐𝑜𝑑𝑒 en un probl` eme (𝑋

𝓁

, 𝐷

𝓁

, 𝐶

𝓁

). La phrase 𝓁 peut contenir des notations arithm´ etiques (tel est le cas pour la description du syst` eme de la figure 2.1). Chaque variable arithm´ etique v de 𝓁 est repr´ esent´ ee par une variable 𝑥

𝑣

∈ 𝑋

𝓁𝑣𝑎𝑟

associ´ ee avec 𝐷𝑜𝑚(𝑥

𝑣

) ∈ 𝐷

𝓁

qui traduit le domaine de v sur 𝑥

𝑣

. Tout pr´ edicat P(t) o ` u t est un terme logique ferm´ e est ainsi repr´ esent´ e par une variable CSP 𝑥

𝑝𝑡

∈ 𝑋

𝓁𝑝𝑟𝑒𝑑

avec 𝐷𝑜𝑚(𝑥

𝑝𝑡

) = {0, 1} ∈ 𝐷

𝓁

. Enfin, on a 𝑋

𝓁

= 𝑋

𝓁𝑣𝑎𝑟

⊕ 𝑋

𝓁𝑝𝑟𝑒𝑑

. La fonction de traduction est alors d´ efinie r´ ecursivement comme suit.

1. 𝑒𝑛𝑐𝑜𝑑𝑒(𝓁 ) = ⟨et⟩(𝑒𝑛𝑐𝑜𝑑𝑒(𝓁

1

), 𝑒𝑛𝑐𝑜𝑑𝑒(𝓁

2

)) si 𝓁 = 𝓁

1

∧ 𝓁

2

(conjonction).

2. 𝑒𝑛𝑐𝑜𝑑𝑒(𝓁 ) = ⟨ou⟩(𝑒𝑛𝑐𝑜𝑑𝑒(𝓁

1

), 𝑒𝑛𝑐𝑜𝑑𝑒(𝓁

2

)) si 𝓁 = 𝓁

1

∨ 𝓁

2

(disjonction).

3. 𝑒𝑛𝑐𝑜𝑑𝑒(¬𝓁 ) = ⟨non⟩(𝑒𝑛𝑐𝑜𝑑𝑒(𝓁 )) (n´ egation).

4. 𝑒𝑛𝑐𝑜𝑑𝑒(𝑃 (𝐴, 𝐵, 𝐶, … )) = ⟨ ́egal⟩(𝑝

𝐴𝐵𝐶…

, 1) avec 𝑝

𝐴𝐵𝐶…

∈ 𝑋

𝓁𝑝𝑟𝑒𝑑

(pr´ edicat).

5. 𝑒𝑛𝑐𝑜𝑑𝑒(∀𝑦, 𝑓 (𝑦)) = ⟨et⟩(𝑒𝑛𝑐𝑜𝑑𝑒(𝑓 (𝑌

1

)), 𝑒𝑛𝑐𝑜𝑑𝑒(𝑓 (𝑌

2

)), ...) avec 𝑌

𝑖

𝑥∈𝑋𝑣𝑎𝑟

𝓁

𝐷𝑜𝑚(𝑥) (quantification universelle).

6. 𝑒𝑛𝑐𝑜𝑑𝑒(∃𝑦, 𝑓 (𝑦)) = ⟨ou⟩(𝑒𝑛𝑐𝑜𝑑𝑒(𝑓 (𝑌

1

)), 𝑒𝑛𝑐𝑜𝑑𝑒(𝑓 (𝑌

2

)), ...) with 𝑌

𝑖

𝑥∈𝑋𝑣𝑎𝑟

𝓁

𝐷𝑜𝑚(𝑥) (quantification existentielle).

(26)

7. 𝑒𝑛𝑐𝑜𝑑𝑒(𝑡1 𝑜𝑝 𝑡2) = ⟨op⟩(𝑒𝑛𝑐𝑇𝑒𝑟𝑚𝑒(𝑡1), 𝑒𝑛𝑐𝑇𝑒𝑟𝑚𝑒(𝑡2)) avec (𝑜𝑝, ⟨op⟩) ∈ {(=

, ⟨ ́egal⟩), (≠, ⟨diff⟩), (<, ⟨inf⟩), (>, ⟨sup⟩), (≤, ⟨infeg⟩), (≥, ⟨supeg⟩)} (contraintes arithm´ etiques).

La fonction 𝑒𝑛𝑐𝑇𝑒𝑟𝑚𝑒 :

 → expression

traduit tout terme arithm´ etique de la logique en expression arithm´ etique de l’outil.

1. 𝑒𝑛𝑐𝑇𝑒𝑟𝑚𝑒(𝑡1 𝑜𝑝 𝑡2) = ⟨op⟩(𝑒𝑛𝑐𝑇𝑒𝑟𝑚𝑒(𝑡1), 𝑒𝑛𝑐𝑇𝑒𝑟𝑚𝑒(𝑡2)) avec (𝑜𝑝, ⟨op⟩) ∈ {(+, ⟨plus⟩), (−, ⟨moins⟩), (∗, ⟨mult⟩), (/, ⟨div⟩), (%, ⟨mod⟩) (op´ erateurs binaires).

2. 𝑒𝑛𝑐𝑇𝑒𝑟𝑚𝑒(−𝑡) = ⟨opp⟩(𝑒𝑛𝑐𝑇𝑒𝑟𝑚𝑒(𝑡)) (op´ erateur unaire).

3. 𝑒𝑛𝑐𝑇𝑒𝑟𝑚𝑒(𝑣) = 𝑣 avec 𝑣 ∈ 𝑋

𝓁𝑣𝑎𝑟

et 𝐷𝑜𝑚(𝑣) (domaine fini).

4. 𝑒𝑛𝑐𝑇𝑒𝑟𝑚𝑒(𝐶) = 𝐶 (entier).

On voit ` a travers la simplicit´ e de cette traduction automatique l’int´ erˆ et naturel d’ex- primer une description de syst` eme en terme de contraintes, tous les calculs restant ` a effectuer ´ etant ` a la charge du moteur de r´ esolution CSP et de ses optimisations internes.

L’outil Dito met en œuvre ` a l’aide de CSP un algorithme de diagnostic s’appuyant sur la recherche de conflits.

2.2.3 Rappel : algorithme de diagnostic guid ´ e par les conflits

La mise en place d’un algorithme de diagnostic par la recherche de conflits est une technique permettant de mieux guider la recherche des diagnostics candidats [Reiter, 1987], [deKleer and Williams, 1987], [deKleer et al., 1992].

D ´ efinition 2.12 (Conflit) Soit ∆, ∆

⊆ COMPS, un conflit cf (Δ, Δ

) de PD est une disjonction de An() litt´eraux :

cf(Δ, Δ

)

𝐝𝐞𝐟

= ⋁

𝑐∈Δ

An(c) ∨ ⋁

𝑐∈Δ

¬An(c) telle que :

DS ∧ OBS ⊧ cf (Δ, Δ

).

En particulier, un conflit positif cfp(Δ) est un conflit tel que cfp(Δ)

𝐝𝐞𝐟

= cf (Δ, ∅).

En d’autres termes, un conflit est un effet (que l’on qualifie ´ egalement de sympt ˆ ome

dans la litt´ erature) du syst` eme DS lorsqu’il produit OBS. En particulier, dans le cas

d’un conflit positif, un conflit peut ˆ etre interpr´ et´ e comme l’affirmation qu’au moins

un des composants du conflit est dans un ´ etat de fonctionnement anormal. Reprenant

l’exemple de la figure 2.1 et l’observation suivante :

(27)

v(a) = 1 ∧ v(b) = 2 ∧ v(c) = 3 ∧ v(d) = 4 ∧ v(e) = 5

∧v(f ) = 11 ∧ v(g) = 22,

comme v(g) = 22, si l’additionneur A

2

fonctionne correctement, on a n´ ecessairement que v(y) + v(z) = 22. Si maintenant le multiplicateur M

2

fonctionne correctement on a n´ ecessairement que v(y) = v(b) ∗ v(d) = 2 ∗ 4 = 8 ce qui im- pose que v(z) = 14. Finalement, si on suppose ´ egalement que le multiplicateur M

3

fonctionne correctement alors on a v(z) = v(c) ∗ v(e) = 15 ≠ 14 ce qui est in- coh´ erent. Dans cet exemple, on a donc identifi´ e trois composants {A

2

, M

2

, M

3

} qui ne peuvent pas ˆ etre tous en bon ´ etat de fonctionnement : An(A

2

) ∨ An(M

2

) ∨ An(M

3

) est donc vrai dans toute interpr´ etation de DS ∧ OBS et constitue un conflit posi- tif (DS ∧ OBS ∧ ¬An(A

2

) ∧ ¬An(M

2

) ∧ ¬An(M

3

) etant non satisfaisable, on a bien la ´ d´ eduction logique du conflit ` a partir du syst` eme et de son observation : DS ∧ OBS ⊧ An(A

2

) ∨ An(M

2

) ∨ An(M

3

)).

D ´ efinition 2.13 (Conflit minimal [Reiter, 1987],[deKleer and Williams, 1987]) Un conflit cf(Δ, Δ

) de PD est minimal s’il n’existe pas Δ

1

⊆ Δ et Δ

2

⊆ Δ

avec Δ

1

∪ Δ

2

⊂ Δ ∪ Δ

tels que cf(Δ

1

, Δ

2

) est un conflit.

Reprenant l’exemple pr´ ec´ edent, il est clair que An(A

2

) ∨ An(M

2

) ∨ An(M

3

) est mi- nimal. Il est ´ egalement ´ evident que An(A

2

) ∨ An(M

1

) ∨ An(M

2

) ∨ An(M

3

) est aussi un conflit mais ce dernier n’est pas minimal. Dans cet exemple, il existe un autre conflit minimal ` a savoir An(A

1

) ∨ An(A

2

) ∨ An(M

1

) ∨ An(M

3

). L’ensemble des conflits peut se repr´ esenter sous la forme d’un treillis (ensemble partiellement ordonn´ e sur l’inclusion stricte ensembliste), le treillis associ´ e ` a l’exemple d´ ecrit est repr´ esent´ e sur la figure 2.3, il indique qu’il existe en tout cinq conflits et parmi eux deux sont minimaux.

Soit 𝐸𝐶𝑀

+

, l’ensemble des conflits minimaux positifs pour un probl` eme donn´ e, l’algorithme de calcul des candidats minimaux s’appuie sur le r´ esultat fondamental suivant [Reiter, 1987] :

Th ´ eor ` eme 2.1 Un ´etat de sant´e 𝜎 (∆) est un candidat minimal de PD ssi : 𝜎 (∆) ⊧ ⋀

cf∈𝐸𝐶𝑀+

cf et il n’existe pas de Δ

⊂ Δ tel que 𝜎 (∆

) ⊧ ⋀

cf∈𝐸𝐶𝑀+

cf

La premi` ere condition du th´ eor` eme conduit ` a ce que 𝜎 (∆) soit un candidat, il ex-

plique tous les conflits minimaux et la deuxi` eme condition impose que ce candidat

soit minimal. Ainsi, le calcul des candidats minimaux par un algorithme guid´ e par les

conflits s’effectue en deux ´ etapes distinctes :

(28)

𝐴

1

𝐴

2

𝑀

1

𝑀

2

𝑀

3

𝐴

2

𝑀

1

𝑀

2

𝑀

3

𝐴

1

𝑀

1

𝑀

2

𝑀

3

𝐴

1

𝐴

2

𝑀

2

𝑀

3

𝐴

1

𝐴

2

𝑀

1

𝑀

3

𝐴

1

𝐴

2

𝑀

1

𝑀

2

𝑀

1

𝑀

2

𝑀

3

𝐴

2

𝑀

2

𝑀

3

𝐴

2

𝑀

1

𝑀

3

𝐴

2

𝑀

1

𝑀

2

𝐴

1

𝑀

2

𝑀

3

𝐴

1

𝑀

1

𝑀

3

𝐴

1

𝑀

1

𝑀

2

𝐴

1

𝐴

2

𝑀

3

𝐴

1

𝐴

2

𝑀

2

𝐴

1

𝐴

2

𝑀

1

𝑀

2

𝑀

3

𝑀

1

𝑀

3

𝑀

1

𝑀

2

𝐴

2

𝑀

3

𝐴

2

𝑀

2

𝐴

2

𝑀

1

𝐴

1

𝑀

3

𝐴

1

𝑀

1

𝐴

1

𝑀

2

𝐴

1

𝐴

2

𝑀

3

𝑀

2

𝑀

1

𝐴

2

𝐴

1

Figure 2.3 – Treillis des conflits de COMPS = {A

1

, A

2

, M

1

, M

2

, M

3

}. Conflits mini- maux : An(A

2

) ∨ An(M

2

) ∨ An(M

3

) et An(A

2

) ∨ An(M

1

) ∨ An(A

1

) ∨ An(M

3

).

1. Calcul des conflits minimaux ;

2. Calcul des candidats minimaux ` a partir des conflits minimaux.

Dans l’exemple pr´ ec´ edent, deux conflits minimaux ont ´ et´ e identifi´ es : An(A

2

) ∨ An(M

2

) ∨ An(M

3

) et An(A

1

) ∨ An(A

2

) ∨ An(M

1

) ∨ An(M

3

).

A partir de ces conflits, on peut constater que ` 𝜎 ({A

2

}) est un candidat minimal. En effet, il est ais´ e de voir que

𝜎 ({A

2

}) ⊧ (An(A

2

) ∨ An(M

2

) ∨ An(M

3

)) ∧ (An(A

1

) ∨ An(A

2

) ∨ An(M

1

) ∨ An(M

3

)) puisque

𝜎 ({A

2

}) ⊧ An(A

2

).

De plus, il est ´ evidemment minimal, le seul candidat plus petit ´ etant le candidat nominal 𝜎 (∅) qui ne peut expliquer les conflits identifi´ es.

2.2.4 Algorithme de Dito

Consid´ erant l’ensemble des composants COMPS, l’objectif de la recherche de

conflits minimaux est de d´ eterminer les sous-ensembles  = {𝑐

𝑖1

, … , 𝑐

𝑖𝑘

} de COMPS

(29)

tels que le 𝐶𝑆𝑃 () codant le probl` eme DS ∧ OBS ∧ (¬An(c

i1

) ∧ ⋯ ∧ An(c

ik

)) est non- satisfaisable, autrement dit 𝑆𝑜𝑙(𝐶𝑆𝑃 (  )) = ∅ et pour lesquels tout sous-ensemble strict

de  est tel que 𝑆𝑜𝑙(𝐶𝑆𝑃 ( 

)) ≠ ∅. Une fac ¸on de faire consiste ` a parcourir le treillis des conflits potentiels (voir la figure 2.3) en utilisant un arbre d’´ enum´ eration de l’en- semble COMPS. Un arbre d’´ enum´ eration permet d’explorer de fac ¸on ordonn´ ee l’en- semble des ´ el´ ements du treillis. La figure 2.4 repr´ esente le d´ ebut de cet arbre dans le cas o ` u l’ensemble des composants est celui pr´ esent´ e sur la figure 2.1. On parcourt les ensembles du plus petit au plus grand en imposant ´ egalement un ordre pour les en- sembles de mˆ emes tailles (ici c’est l’oppos´ e de l’ordre lexicographique). Pour chaque nœud de l’arbre, on d´ efinit un CSP et on teste sa satisfaisabilit´ e. Si pour un nœud donn´ e, le CSP correspondant n’est pas satisfaisable alors le nœud repr´ esente un conflit positif.

𝑀

1

𝑀

2

𝑀

3|16

𝐴

2

𝑀

2

𝑀

3|17

𝑀

2

𝑀

3|6

𝑀

1

𝑀

3|7

𝑀

1

𝑀

2|10

𝐴

2

𝑀

3|8

𝐴

2

𝑀

2|11

𝐴

2

𝑀

1|13

𝐴

1

𝑀

2|12

𝐴

1

𝑀

3|9

𝐴

1

𝑀

1|14

𝐴

1

𝐴

|152

𝑀

3|1

𝑀

2|2

𝑀

1|3

𝐴

|42

𝐴

|51

|0

Figure 2.4 – D´ ebut de l’arbre ´ enum´ erant l’ensemble des parties de COMPS = {A

1

, A

2

, M

1

, M

2

, M

3

}. L’ordre du parcours est repr´ esent´ e par des exposants sur chaque nœud.

L’id´ ee est naturellement de ne pas explorer tous les nœuds de l’arbre sachant que l’on ne cherche que les nœuds ne correspondant qu’aux conflits minimaux.

Cette exploration est effectu´ ee ` a l’aide de l’algorithme 2.1 issu des travaux de

[Zhao and Ouyang, 2006], [Zhao and Ouyang, 2007]. L’exploration de l’arbre se fait ` a

partir du nœud racine (ligne 5) et en largeur d’abord (d’o ` u l’utilisation d’une file  ,

ligne 4). Pour chaque nœud, on retient 3 informations (𝐶, 𝑐, 𝐸) : 𝐶 est l’ensemble des

composants associ´ e au nœud lui-mˆ eme, 𝑐 est le composant qui a ´ et´ e ajout´ e en dernier

pour arriver ` a ce nœud (cela identifie le nœud parent qui est 𝐶 ⧵ {𝑐}) et 𝐸 est l’ensemble

des composants restant ` a int´ egrer ` a 𝐶 pour visiter les nœuds enfants (ligne 9). Cette

structure garantit que l’on ne parcourt un nœud qu’une fois (voir la figure 2.4). De plus,

on utilise un m´ ecanisme de propagation pour augmenter l’efficacit´ e de la recherche :

si un nœud 𝑛 est associ´ e ` a un conflit {𝑐

𝑖1

, … , 𝑐

𝑖𝑘

} il est inutile d’explorer tout nœud 𝑛

(30)

associ´ e ` a un ensemble {𝑐

𝑖1

, … , 𝑐

𝑖𝑘

} ∪ {𝑐

𝑗1

, … , 𝑐

𝑗𝑙

} car on sait par d´ efinition qu’il est as- soci´ e lui-mˆ eme ` a un conflit, il suffit pour cela de supprimer ces composants de la liste courante des enfants (lignes 15-18). Par construction, l’algorithme ne retient que les nœuds associ´ es aux ensembles minimaux 𝐶 pour lesquels 𝑆𝑜𝑙(𝐶𝑆𝑃 (𝐶)) = ∅.

1

Fonction 𝑅𝑒𝑐ℎ𝑒𝑟𝑐ℎ𝑒𝐴𝑟𝑏𝑟𝑒(𝐶𝑆𝑃 , 𝐶);

Entr ´ ees : 𝐶𝑆𝑃 codage du probl` eme Entr ´ ees :  ensemble de composants

2

 ← ∅;

3

si 𝑆𝑜𝑙(𝐶𝑆𝑃 ) ≠ ∅ alors

4

 : file;

5

𝑝𝑜𝑢𝑠𝑠𝑒𝑟((∅, ∅, ), );

6

tant que  ≠ ∅ faire

7

(𝐶, 𝑐, {𝑐

𝑞1

, … , 𝑐

𝑞𝑘

}) ← 𝑜𝑡𝑒𝑟(  );

8

pour tous les 𝑖 depuis 𝑘 a ` 1 faire

9

(𝐶

𝑖

, 𝑐

𝑞𝑖

, 𝐸

𝑖

) ← (𝐶 ∪ {𝑐

𝑞𝑖

}, 𝑐

𝑞𝑖

, {𝑐

𝑞𝑖+1

, … , 𝑐

𝑞𝑘

});

10

𝐶𝑆𝑃

← 𝐶𝑆𝑃 ∪ 𝑒𝑛𝑐𝑜𝑑𝑒(¬𝐶

𝑖

);

11

si 𝑆𝑜𝑙(𝐶𝑆𝑃

) = ∅ alors

12

 ←  ∪ {(𝐶

𝑖

, 𝑐

𝑞𝑖

, 𝐸

𝑖

)};

13

sinon

14

pour tous les (𝐶

, 𝑐

, 𝐸

) ∈  faire

15

si 𝑐

∈ {𝑐

𝑞𝑖+1

, … , 𝑐

𝑞𝑘

} alors

16

si 𝐸

⊆ {𝑐

𝑞𝑖

, … , 𝑐

𝑞𝑘

} alors

17

𝐸

𝑖

← 𝐸

𝑖

⧵ {𝑐

};

18

fin si

19

fin si

20

fin pour tous

21

fin si

22

fin pour tous

23

fin tq

24

fin si

R ´ esultat : {𝐶 ∶ (𝐶, 𝑐, 𝐸) ∈  }

Algorithme 2.1 : Recherche dans un arbre d’´ enum´ erations d’un ensemble.

Une fois les conflits minimaux 𝐸𝐶𝑀

+

etablis, il suffit d’appliquer les r´ ´ esultats du th´ eor` eme 2.1 pour ´ etablir les candidats minimaux. Ici encore Dito met ` a profit le sol- veur de CSP pour calculer les candidats minimaux ` a partir des conflits minimaux.

La premi` ere condition du th´ eor` eme 2.1 impose qu’un candidat minimal contient au

moins un composant de tous les conflits minimaux (un candidat doit couvrir tous les

conflits) et cet ensemble doit ˆ etre minimal (seconde condition). On recherche ainsi l’en-

Références

Documents relatifs

Pour simplifier les notations on identifie les ´ el´ ements de Z /n Z avec les en- tiers 0, 1,.. Le syst` eme de chiffrement utilis´ e par Alice et Bob est un syst` eme

Dans cette partie, on utilise des ´ egalit´ es vectorielles, c’est-` a-dire sans coordonn´ ees.. En d´ eduire une factorisation

Mod´ eliser cette situation par deux arbres diff´ erents.. Donner le prix de 8 croissants, puis de

Soit donc une machine de Turing M , et on cr´ ee de la mˆ eme mani` ere que pr´ ec´ edemment un syst` eme de r´ e´ ecriture associ´ e R.. Cependant, tous les termes du nouveau

Les syst` emes d’exploitation distribu´ es (Distributed Operating Systems) : ces syst` eme sont con¸cu pour permettre une migration transparente des processus et des donn´ ees de

Les syst` emes d’exploitation distribu´ es (Distributed Operating Systems ) : ces syst` eme sont con¸ cu pour permettre une migration transparente des processus et des donn´ ees de

Les syst` emes d’exploitation distribu´ es (Distributed Operating Systems ) : ces syst` eme sont con¸ cu pour permettre une migration transparente des processus et des donn´ ees de

D´ efinition (rang d’un syst` eme ´ echelonn´ e) : Le rang r d’un syst`eme ´echelonn´e `a p ´equations et n inconnues est ´egal au nombre d’´equations qui n’ont pas un