Académique Documents
Professionnel Documents
Culture Documents
1
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
2
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
4
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
Ils sont accompagnés d‟une méthode d‟écriture des règles permettant une mise en forme
immédiate des connaissances. Enfin, les « systèmes-experts dédiés » sont aussi des
générateurs, mais spécialisés à un domaine particulier : la maintenance, la documentation,
etc.
des informations pendant une évaluation) et peuvent utiliser des quantificateurs (évaluation
des connaissances incertaines) ou états (ex : libre, occupé, transféré, en attente...).
6
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
Dans le cadre de la SLD-résolution, le littéral positif d'une clause définie est appelée la
tête, la conclusion ou le but de la clause. La disjonction des littéraux négatifs, s'ils existent, est
appelée le corps, les antécédents, ou les sous-buts. Par exemple, la clause de Horn :
¬ a ∨ ¬ b ∨ c est logiquement équivalente à (a ∧ b) → c
Dans chacun des cas, c est la conclusion, a et b sont les antécédents.
Le mécanisme de résolution
Étant donné un programme (un ensemble de clauses de Horn) et une requête (une
conjonction de littéraux positif dont on souhaite prouver qu'il est vrai d'après le programme),
la SLD-résolution fonctionne globalement comme d'autres formes de résolution, en tentant
d'unifier des clauses de Horn pour en créer de nouvelles, jusqu'à ce qu'une contradiction soit
atteinte, ou qu'aucune nouvelle unification ne puisse être faite.
Plus précisément, la SLD-résolution commence par construire la négation de la requête
(on obtient donc une clause de Horn négative, que nous appellerons la liste de buts), puis
unifie le premier élément de cette négation avec une clause du programme. La clause en
question est recherchée de manière déterministe, en recherchant la première clause du
programme dont la tête est la contrepartie positive de la première négation de la liste de buts.
Si une contradiction est trouvée, alors la négation de la requête est inconsistante avec le
programme, la requête termine donc avec succès. Si aucune unification ne peut être trouvée
pour le premier terme négatif de la liste de buts, alors la requête échoue. Si une unification
sans contradiction existe, alors la nouvelle liste de buts devient la conjonction de l'ancienne
7
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
avec la clause sélectionnée, et la SLD-résolution est relancée (de manière récursive) sur la
nouvelle liste de buts. Si une sous-requête échoue, alors l'unification de niveau supérieur dont
elle provient échoue, et l'algorithme cherche une autre unification (dans la suite du
programme) pour le premier terme de la liste de buts. Cette étape s'appelle le retour sur trace.
Nous pouvons modéliser ces quatre règles avec la logique de prédicats, en utilisant les
clauses de Horn :
; R1
peutAimer(X,bach)<- aime(X,musiqueC), aime(X, maths).
;R2
peutAimer(X,schubert)<- aime(X,musiqueC),romantique(X).
;R3
peutAimer(X,cabrel)<- romantique(X).
;R4
romantique(X) <- ecritPoeme(X).
Avec la notation en clauses de Horn, nous pouvons construire le modèle minimal de
Herbrand ainsi que la résolution SLD. Nous rappelons encore ces deux mécanismes via
l‟exemple, en vue de faire la comparaison avec le chaînage avant et arrière ultérieurement.
Supposons qu‟on ajoute aux programmes précédents les deux clauses suivantes :
aime(toto,muiqueC). ecritPoeme(toto).
La résolution SLD nous permet de calculer toutes les réponses à une question donnée, en
explorant toutes les dérivations possibles, l‟arbre obtenu s‟appelle l‟arbre de dérivation. Les
feuilles correspondent à des fins de chemins de parcours correspondant à un échec ou à un
succès. Dans le cas d‟un succès, la substitution correspondant à la composition des
substituions élémentaires trouvées est une solution calculée. Par exemple, une solution
possible à la question peutAimer(toto,Y) est la substitution θ = (Y, schubert).
Le modèle minimal d‟Herbrand nous rappelons que le modèle permet grâce à l‟opérateur
conséquence immédiate de retrouver le modèle minimal de Herbrand qui constitue l‟ensemble
des réponses correctes du programme. Par exemple, pour le programme précédent, nous
obtenons le modèle minimal de Herbrand IE suivant :
8
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
T 0 = {aime(toto,musiqueC), ecritPoeme(toto)}
T 1 = {aime(toto,musiqueC), ecritPoeme(toto), romantique(toto)}
IE = T 2 = {aime(toto,musiqueC), ecritPoeme(toto), romantique(toto), peutAimer(toto,
schubert), peutAimer(toto,Cabrel)}
2.3. Règles et moteur d’inférence
Dans un système à base de règles, les connaissances sont représentées par des règles. Le
moteur d‟inférence peut fonctionner en chaînage arrière ou avant. Le chaînage arrière signifie
que le raisonnement est guidé par le but tandis que le chaînage avant signifie que le
raisonnement est guidé par les données. Nous décrivons dans la suite ces deux mécanismes, et
nous les comparons. Notons bien que pour pouvoir décrire ces deux mécanismes nous
consultons au fur et à mesure la mémoire de travail qui nous guide pour le raisonnement
9
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
schubert), (X 4, toto)}.
Fin du premier appel, on retourne l‟union des substitutions réussies :{(X, schubert), (X,
cabrel)}
10
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
11
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
Nous avons montré comment un système basé sur l‟inférence par chaînage arrière
peut réagir. Pour vérifier le succès ou l‟échec d‟un chemin de raisonnement, la base de
faits est consultée. Une extension de l‟algorithme peut être de donner la capacité au
système de poser des questions à l‟utilisateur quand une réponse positive ne soit pas
affirmée par l‟existence d‟un fait donné dans la base de faits. Nous montrons dans la
suite un scénario de questions-réponses, et ceci en se basant toujours sur l‟exemple cité
au dessus, contenant les quatre règles mais en supposant que la base de faits est vide au
début. Le but à résoudre étant toujours peutAimer(toto,X) :
Le système commence à explorer la première branche à gauche en profondeur
jusqu‟à l‟arrivée au sous but aime(toto,musiqueC) qui n‟est pas dans la base de faits et
qui ne s‟unifie pas avec aucune conclusion non plus. Au lieu de considérer cette branche
comme échec, le système pose la question à l‟utilisateur (Elle peut correspondre à une
information manquante dans la base de faits) vérifiant si toto aime la musique classique.
Supposons que la réponse est positive, alors le fait aime(toto,musiqueC) est ajouté à la
base de faits. Le système cherche maintenant à continuer la résolution du but
peutAimer(toto,bach), il pose donc la question aime(toto,maths). En sup- posant que la
réponse est non, le système passe à la vérification de la deuxième règle. La question
aime(toto,musiqueC) n‟est pas posée car le système connaît la réponse qui est codée
sous forme de fait. Le sous but suivant à vérifier est romantique(toto), donc la question
ecritpoeme(toto) est posée ; par conséquent, le système déduit que peutAimer(toto,
schubert) est vrai. Enfin, le système vérifie bien via le chemin de la règle R3 que toto
puisse aimer également cabrel sans poser des questions car il sait déjà que toto écrit des
poèmes. (Remarquer qu‟en cas de réponse négative à la question aime(toto, musiqueC),
le système ne pose pas la question aime(toto, maths).
Remarquer bien que de fait que le système garde le trace du raisonnement sous
forme du graphe et/ou permet d‟avoir une suite de questions qui ne paraît pas illogique
aux yeux de l‟utilisateur (Trois questions ont été posé à l‟utilisateur suite auxquelles, le
système a déduit que toto peut aimer schubert et cabrel. La suite des questions est la
suivante : est-ce que toto aime la musique classique ? est-ce que toto aime les maths ? et
est-ce que toto écrit des poèmes ?). De plus la séquence de questions est optimale dans le
sens ou le système ne pose pas des questions inutiles car son processus est toujours
guidé par la résolution du but père immédiat.
Explication et transparence du raisonnement : L‟utilisateur peut à n‟importe quel
moment poser deux types de questions : pourquoi et comment ? Par exemple quand le
système pose la question aime(toto,maths)à l‟utilisateur. L‟utilisateur peut demander des
justifications : Pourquoi poser cette ques- tion ? Puisque le système garde le trace de son
raisonnement sous forme du graphe et /ou, il sait que la question est le deuxième fils de
la règle numéro 1 donc il peut répondre : Puisqu‟il a été établi que aime(toto,musiqueC),
alors si aime(toto,maths), cela signifie que peutAimer(toto,bach).
L‟utilisateur peut ensuite poser la question Comment a-t-il été établi que toto est
romantique ? Le système peut se placer sur le nœud correspondant du graphe et présenter à
l‟utilisateur sa trace de raisonnement.
12
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
– trouver-inférer (BF ,BC , [p1 , .., pi−1 , pi+1 , ..pn ]),C ,θ)
La procedure trouver-inférer est donnée par :
entrée BF la base de faits, BC la base de connaissances, prémisses, conclusion, θ
– SI prémisses=[ ] ALORS
– chaînage-avant(BC , SUBSET(θ,conclusion))
– SINON POUR chaque F1 dans la base de faits BF tel que θ2 ⇐ UNIFY(F1 ,SUBSET(θ,
FIRST(premises)))
FAIRE
– trouver-inférer (BF ,BC , REST(prémisses), conclusion, COMPOSE(θ,θ2 ))
Voyons comment le chaînage avant est effectué sur notre programme contenant les
quatre règles et les deux faits.
1. Le fait aime(toto,musiqueC) s‟unifie avec la première prémisse de la règle R1.
2. Le système cherche dans la base de faits un autre fait qui peut s‟unifier avec la
deuxième prémisse de R1. Echec.
3. Le fait aime(toto,musiqueC) s‟unifie avec la première prémisse de la règle R2.
4. Le système cherche dans la base de faits un autre fait qui peut s‟unifier avec la
deuxième prémisse de R2. Echec.
5. Le fait ecritPoeme(toto) s‟unifie avec la prémisse de la règle R4 et le fait résultant de la
conclusion romantique(toto) s‟ajoute à la base de faits.
6. Le fait romantique(toto) s‟unifie avec la deuxième prémisse de la règle R2 .
7. le système cherche à satisfaire la première prémisse de la même règle et réussit
avec le fait aime(toto, musiqueC)et donc le fait aime(toto,schubert) est inféré.
8. Le fait romantique(toto) s‟unifie avec la prémisse de la règle R3 et le fait
aime(toto,cabrel) est inféré.
13
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
Nous remarquons que le système a effectué trois parcours de la base de règles pour
arriver à inférer que toto puisse aimer schubert et cabrel.
Nous pouvons procéder de la même manière en supposant que la base de faits est vide
au début et que le système pose des questions à l‟utilisateur (Nous supposons que le système
stocke quelque part l‟information lui permettant de poser une question sur un fait donné.). Dans ce cas
l‟ordre de questions posées à l‟utilisateur est le suivant : aime(toto,musiqueC),
aime(toto,maths), ecritPoeme(toto).
Remarquer que si la règle R3 n‟existe pas et que si la réponse à la question
aime(toto,musiqueC) est négative, le système posera quand même la question
ecritPoeme(toto) ce qui n‟est pas le cas en chaînage arrière.
Une deuxième formulation de cet algorithme est :
Paramètres : in fait (le fait à démontrer)
if fait ∊ BF then
res ← SUCCES
else
reglesNonDéclenchées ← BR; reglesAConsidérer ← BR; res ← ECHEC
while reglesACconsidérer ≠ ∅ ; et res ≠ SUCCES do
r ← choisir(reglesAConsidérer); reglesAConsidérer ← reglesAConsidérer -{r}
if ∀ p ∊ premisse(r), p ∊ BF then
BF ← BF ∪ {conclusion(r)}
reglesNonDéclenchées ← ReglesNonDéclenchées - {r}
reglesAConsidérer ← reglesNonDéclenchées
if conclusion(r) = fait then
res ← SUCCES
end if
end if
end while
end if
renvoyer res
Un autre algorithme basé sur la représentation sous forme de graphe dirigé est proposé
dans la littérature (rete algorithm). Le principe est de coder dans la base de connaissances les
règles sous forme de graphe. Les prédicats sont codés par des cercles, les flèches représentent
le et logique entre les différentes prémisses. Les actions sont codées par des rectangles. Les
carrés représentent des contraintes sur les prémisses.
A un cycle donné, un ensemble de faits est injecté dans le graphe. Le résultat de cette
inférence serait présenté par des informations qui étiquettent les arcs du graphe. Au cycle
suivant, un ensemble de faits résultants seraient injectés dans le graphe, et ainsi de suite.
14
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
15
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
16
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
17
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
Par conséquent, on a :
Avec
Exemple : Supposons que la probabilité qu‟un patient ait la grippe est à priori P(H).
Maintenant supposons qu‟on a la preuve E que ce patient ait de la fièvre. Nous cherchons à
calculer la probabilité à posteriori que ce patient ait la grippe sachant qu‟il a de la fièvre.
Nous devons calculer P (E) la probabilité d‟avoir la fièvre en général. Pour connaître P(E), on
cherche à estimer les probabilités d‟avoir la fièvre sachant qu‟on a la grippe P(E|H) et d‟avoir
la fièvre sachant qu‟on n‟a pas la grippe P(E|notH). Nous pouvons signaler deux
inconvénients liés à la théorie de Bayes :
18
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
1. Le calcul de P(E) n‟est pas toujours évident, sachant que si on ne connaît pas P(E|notH),
il faut arriver à connaître toutes les hypothèses qui peuvent influencer E : P(E|Hi). Dans
ce cas, on appliquera la formule :
2. Une contrainte forte qu‟exige cette approche est l‟indépendance des variables utilisées.
Souvent, dans les applications réelles, il existe une corrélation cachée entre les
différentes variables.
Dans la suite, nous fixerons un seuil supérieur M1 et un seuil inférieur M2 pour chaque
hypothèse Hi tels que M1 et M2 ne dépassent pas les limites théoriques que peut prendre la
probabilité à posteriori à savoir Pmax (Hi ) = P (H |E1 , .., En ) ,Pmin (Hi ) = P (H |notE1 , ..,
notEn ) respectivement, où E1, .., En sont toutes les preuves possibles qui peuvent supporter
l‟hypothèse H .
Remarquons bien que tant qu‟on a des réponses concernant certaine preuves, Pmax(Hi)
et Pmin(Hi) changent de valeurs car ils seront calculés en fonction des preuves non renseignées.
Si à un moment Pmin(Hi) devient supérieur à M1 alors l‟hypothèse Hi est confirmée, sans tester
les preuves qui restent. De même si Pmax(Hi) à un moment, devient inférieur à M2 alors
l‟hypothèse H est rejetée, sans tester les preuves qui restent.
Dans la suite, nous montrons comment intégrer cette approche dans un moteur
d‟inférence donné. Les preuves sont demandées à l‟utilisateur une par une et selon sa
réponse, une nouvelle probabilité à posteriori est associée à Hi , ainsi qu‟une nouvelles
Pmax (Hi ) et Pmin (Hi ) sont calculée en fonctions des preuves restantes. Nous pouvons
supposer que l‟utilisateur donne une réponse plus au moins subjective, avec une certitude
donnée. Pour cela, nous pouvons calculer la probabilité à posteriori de H après la réponse R
de l‟utilisateur par :
où P(E|R) est une mesure de la certitude que donne l‟utilisateur à la preuve E. De même,
P(notE|R) est une mesure de la certitude que donne l‟utilisateur à notE.
Ces valeurs ne sont pas inchangeables car ils modifient leurs valeurs selon la probabilité
à posteriori de l‟Hypothèse H. La preuve ayant la valeur maximale obtenue va constituer la
première question à poser à l‟utilisateur.
Nota : Selon la terminologie, les preuves correspondent aux faits ; les conclusions
19
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
5. Étant donné R, recalculer P (Hi |R) pour toutes les hypothèses dépendantes de Emax .
20
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
R2 : SI P1 OU P2 ALORS C2
En supposant que le fait F1 s‟unifie avec P1 et F2 avec P2, la certitude associée à la
partie prémisse de R1 est donnée par
C F (P 1ET P 2) = min (C F (F1 ), C F (F2 ))
de même, la certitude associée à la partir prémisse de R2 est donnée par
C F (P 1OU P 2) = max (C F (F1 ), C F (F2 ))
Maintenant, en supposant qu‟un facteur de certitude est associé à la règle R : C F (R),
nous calculons le facteur de certitude associé à la conclusion résultante par C F (C ) = C F (R)
∗ C F (P ), où CF(P) est le facteur de certitude associé à la partie prémisses de la règle R.
Sinon
Remarquer bien que grâce à ces formules, les facteurs de certitude résultants sont
toujours dans l‟intervalle [-1,1].
Remarquer également que les affectations des facteurs de certitude aux règles et aux
faits sont subjectives et dépendent de l‟humain. Par contre les calculs qui permettent la
propagation de ces facteurs de certitude obéissent aux règles précédentes.
21
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
Le produit : Soient FA et FB deux ensembles flous définis sur les univers de discours U
et V. Le produit des deux ensembles flous est un nouvel ensemble flou qui sera défini sur
U ∗ V par produit(FA , FB )(u) = f (µFB (u), µFA (u)), f peut être la fonction min, max etc.
22
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
F IG . 3.2 – Les deux ensembles flous (âge jeune) & (âge vieux)
Règles de type CRISP-CRISP Les règles de type CRISP-CRISP sont des règles qui ne
contiennent pas de termes flous dans leurs parties prémisses ni dans leurs parties
conclusions. Par contre, elles peuvent avoir des facteurs de certitude. Les règles de
propagation de certitudes vues dans la section précédente sont applicables à ce type de règles.
Règles simples de type FUZZY-CRISP En général, les règles de type FUZZY-CRISP sont
des règles dont la partie prémisses contient un test sur un fait composé d‟une variable
linguistique avec une valeur floue. La conclusion ne contient pas de terme flou. Nous
définissons une règle simple de type FUZZY- CRISP comme étant une règle qui comporte un
seul test flou dans sa partie prémisses. Supposons que FA représente l‟ensemble flou du fait flou
A, et que FB représente un test sur la même variable linguistique contenue dans A dans une
règle donnée.
Nous calculons la similarité entre le fait et la règle selon :
S = P (FB |FA )
si N (FB |FA ) > 0.5 et par S = (N (FB |FA ) + 0.5) ∗ P (FB |FA ) sinon
N ,et P étant les mesures de nécessité et de possibilité respectivement calculées par (voir
figures 3.6 & 3.7) :
Et
F IG . 3.3 – Intersection de deux ensembles flous (âge jeune) & (âge vieux)
C OM P (FB ) étant le complément de FB et est décrit par
FIG. 3.4 – Union de deux ensembles flous (âge jeune) & (âge vieux)
En simplifiant, on retrouve (voir figure 3.8) :
Avec :
24
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
Autrement dit :
Combinaison de résultats : Supposons que nous avons une règle de type FUZZY-FUZZY et
dont une partie de la conclusion : C1 concerne l‟ajout d‟un fait flou dans la base de faits.
Supposons qu‟avant le déclenchement de cette règle, il existe déjà dans la base de fait un fait
F1 qui porte sur la même variable linguistique que C1. Dans ce cas, le déclenchement de la
règle précédente implique l‟ajout du fait C2 dans la base de fait qui remplacera F1, et ceci
selon :
25
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
associe à une proposition don- née l‟intervalle : [Confiance, Plausibilité]. Cet intervalle est
compris entre 0 et 1. La plausibilité est définie par :
m : P (V ) → [0, 1]
26
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
Par exemple, si on suppose qu‟on dispose d‟un autre capteur pour la détection des
avions avec : m2 ({B}) = 0.9 et m2 (V ) = 0.1 nous avons :
A partir de ces trois résultats, nous pouvons donner l‟intervalle de confiance suivant :
[0.9, 1] à l‟élément B car la somme des confiances des trois sous ensembles est égale à 1 et les
trois sous ensembles incluent B.
D‟une manière générale la borne inférieure de l‟intervalle de confiance liée à un sous-
ensemble donné est calculée par
27
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
FIG. 3.8 – Règle de type FUZZY-FUZZY : SI B Alors C, A étant un fait flou défini sur le même
domaine que B. C‟ serait le résultat de l‟activation de cette règle par A
Par conséquent, l‟intervalle de confiance associée à {B, C } est I ({B, C }) = [0.97, 1].
Nous pouvons voir la plausibilité en X comme étant le degré avec lequel l‟évidence ne parvient
pas à réfuter X. Ainsi, nous définissons l’ignorance de X par igr(X ) = pl(X ) − conf (X ),
Normalisation de la confiance
Supposons dans l‟exemple suivant, que nous ayons un troisième capteur avec les masses
suivantes : m3 ({A}) = 0.95 et m3 (V ) = 0.05. La combinaison des trois évidences nous donne
les résultats suivants :
m1 + m2 + m3 ({A}) = 0.0285
m1 + m2 + m3 ({B}) = 0.045
m1 + m2 + m3 ({B, C }) = 0.0015
m1 + m2 + m3 ({V }) = 0.0015
m1 + m2 + m3 ({φ}) = 0
Nous remarquons que la somme de toutes les masses est inférieure à 1. Pour résoudre ce
problème nous divisons chaque combinaison élémentaire par 1 – k. Avec :
28
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
m1 + m2 + m3 ({A}) = 0.363
m1 + m2 + m3 ({B}) = 0.573
m1 + m2 + m3 ({B, C }) = 0.045
m1 + m2 + m3 ({V }) = 0.019
Par conséquence, la confiance associée à {B} est conf ({B}) = 0.573 ; la plausibilité est
= 0 + 0.363 + 0 = 0.363
29
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
30
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
31
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
(¬peutvoler(X )) → ¬oiseau(X ))
A partir de cela, supposons que X est le chat Félix, Félix ne peut pas voler et Félix n‟est
pas un oiseau ; donc la valeur de vérité de la deuxième formule est vraie. Par conséquent, on
en déduit que le fait que félix est un chat qui ne peut pas voler constitue une modèle pour
l‟hypothèse : tous les oiseaux volent ! !
De plus, le calcul des prédicats nous permet de formaliser des expressions qui n‟ont
aucun sens mais qui soient vrais quand même ! ! comme l‟expression :
(2 + 3 = 8) → couleur(ciel, vert)
32
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
graphes conceptuels. Les nœuds d‟un graphe représentent des concepts ou des relations entre
concepts. Les graphes conceptuels n‟utilisent pas des arcs libellés mais des nœuds
représentant les relations entre concepts. Par exemple dans la figure 4.2, les concepts chien et
noir sont représentés par des nœuds concepts et la couleur est représentée par un nœud
relation. Les concepts sont représentés par des rectangles et les relations par des ellipses. Les
nœuds concepts représentent des objets concrets comme voiture, télé- phone ou des objets
abstraits comme beauté. Les nœuds de relation indiquent une relation concernant un ou
plusieurs concepts. Une relation d‟arité n est représentée par un nœud de relations ayant n
arcs.
34
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
Copy : nous permet de créer un nouveau graphe g qui est la copie exacte de g1.
Join : nous permet de combiner deux graphes dans un seul graphe. S‟il existe un nœud
concept c1 dans S1 qui est identique à un nœud concept c2 dans S2 . Un nouveau graphe est
formé en supprimant c2 de S2 et en liant toutes les relations incidentes de c2 avec c1 .
Restrict : Le but de la restriction est d‟effectuer un changement sur un ou plusieurs nœud(s)
concept(s) pour pouvoir effectuer une opération de join ultérieurement. Par exemple, un
concept générique dans un graphe peut être remplacé par un concept spécifique du même
type. De même, la hiérarchie de type peut être utilisée pour nous permettre de remplacer un
type par un sous-type. Autrement dit, pour effectuer la restriction, nous utilisons deux types
d‟héritage :
– l‟héritage des propriétés des individus et ceci en spécialisant un concept généralisé
pour un type donné.
– l‟héritage des propriétés des sous-types et ceci en utilisant la hiérarchie de types.
Simplify : nous permet de supprimer une relation dans un graphe conceptuel dans le cas où
cette relation est dupliquée. La duplication d‟une relation dans un graphe est souvent le
résultat de l‟application de l‟opération join sur deux graphes.
Notons que Ces règles ne constituent en aucun cas des règles d‟inférence. Ils ne garantissent
en aucun cas que l‟obtention des graphes dérivés qui seront vrais. Par contre le maintien du sens
est garanti.
35
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
36
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
comme une structure de données (enregistrement en C). Les fentes peuvent contenir plusieurs
types d‟information :
1. l‟identification du schéma ;
2. les descripteurs du schéma ;
3. la relation avec les autres schémas par exemple le téléphone d‟hôtel est une
spécialisation du schéma téléphone ;
4. Les informations procédurales attachées à certaines fentes ;
5. Les informations par défauts représentées par des valeurs attribuées aux fentes par
exemple le nombre de pieds d‟une chaise est égale à 4 ;
Quand une instance d‟un schéma est créée, le système attribue des valeurs aux fentes (slot) en
utilisant les valeurs par défauts, en exécutant des procédures attachées, ou bien en demandant
à l‟utilisateur les informations complémentaires. Les schémas peuvent être vus comme des
réseaux sémantiques évolués. Ils permettent une organisation hiérarchique de la connaissance
plus élaborée qu‟en réseaux sémantiques. Les attachements procéduraux permettent de décrire
une certaine partie de la connaissance par des étapes d‟exécution.
37
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
38
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
évalue une décision qui agit sur cet environnement extérieur afin d‟assurer un état stable».
Il est important de noter que la notion de l‟état stable peut être différente selon les
applications ou procédés (il dépend du cahier des charges de l‟application, par exemple
maintien d‟une température de consigne, régime moteur, qualité de service…).
Un procédé est une entité physique dont on peut connaître l‟état par le biais de capteurs
et qu‟on peut commander par le biais d‟actionneurs. Un système de contrôle commande est le
« cerveau » du procédé. Son rôle est de recevoir des informations en provenance de
l‟environnement à l‟aide des capteurs, et de commander des changements d‟état du procédé
via des actionneurs.
39
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
système, piloté par un logiciel, et qui est complètement intégré au système qu‟il contrôle
(donc, pas de l‟intervention humaine directe, pas de modification du programme ou des
paramètres du programme).
- Le système de contrôle-commande dédié (dedicated real-time system): c‟est un système
dont les architectures matérielles ou logicielles sont spécifiques à l‟application (noyau,
processeur, etc.).
- Le système de contrôle-commande distribué ou réparti (distributed real-time system):
c‟est un système dont l‟architecture matérielle est constituée de plusieurs processeurs reliés
entre eux par un bus ou un réseau.
Il est évident que ces différentes spécifications d‟un système de contrôle-commande
peuvent se combiner comme par exemple un système de contrôle-commande dédié, distribué
et à contraintes temporelles strictes (application pour un véhicule automobile).
40
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
Remarque :
1. Du point de vue opérationnel, une application TR peut être décrite comme un
ensemble de tâches communicantes qui peuvent partager des ressources critiques.
Chaque tâche est généralement dédié à toute (ou à une partie d‟) une chaîne
d‟acquisitions, calcul/décision, commande. Chaque chaîne peut aussi avoir des
intersections et un rythme propre pouvant être périodique ou non.
2. Les contraintes sur les STR portent sur les tâches qui les composent. Généralement
une tâche temps réel est décrite par trois paramètres : une durée d‟exécution de la
tâche, la date au plus tôt à partir de laquelle la tâche peut être déclenchée et une
échéance (délai) à ne pas dépasser.
par les capteurs et les données à fournir aux actionneurs sont de types très variés
(continu, discret, tout ou rien ou analogique).
- Prise en compte des comportements concurrents : c‟est une caractéristique spécifique aux
systèmes de contrôle-commande, car l‟ensemble de ces données physiques qui arrivent
de l‟extérieur ne sont pas synchronisés au niveau de leurs évolutions.
- Respect des contraintes temporelles : c‟est une caractéristique requise pour tous les
systèmes de contrôle-commande temps réel. Par conséquent, le système informatique
possède non seulement une réactivité suffisante pour prendre en compte tous les
comportements concurrents et en réponse à ceux-ci, mais doit envoyer des commandes
en respectant des délais compatibles avec la dynamique du système.
- Sûreté de fonctionnement : la sûreté de fonctionnement est l‟évaluation du niveau de
confiance justifié qu‟on peut lui attribuer dans son bon fonctionnement. La sûreté
de fonctionnement regroupe les activités d‟évaluation de la fiabilité, de la
maintenabilité, de la disponibilité, et de la sécurité (FMDS). Les systèmes de type
contrôle-commande demandent un niveau important de sécurité pour raisons de coût
ou de vies humaines. Pour répondre à cette demande, il est nécessaire de mettre en
œuvre toutes les réponses de la sûreté de fonctionnement (développement sûrs, tests,
méthodes formelles, prévisibilité, déterminisme, continuité de service, tolérance aux
fautes, redondance, etc.).
Notons que les systèmes informatiques sont dits transformationnels lorsque les
données sont disponibles au lancement et les instants de production des résultats ne sont
pas contraints. Par exemple le calcul scientifique, la gestion des bases de données, etc. Ils
sont dits interactifs ou transactionnels ou outils bureautiques lorsque les résultats
dépendent de données produites par l‟environnement et les instants de production des
résultats respectent des valeurs statistiques.
42
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
b) Conflits sur les autres ressources : On parle de conflits sur les autres ressources
lorsqu‟une tâche demande l‟accès à une ressource ou une donnée non partageable (unités
d‟entrées/sorties, fichiers, disques, etc.). Pour résoudre ces conflits, on utilise des mécanismes
de verrouillage. Toutefois, des mécanismes d‟ordonnancement de ces ressources avec des
considérations de temps doivent également être utilisés, afin d‟éviter que pour de raisons
d‟intégrité de ressources, certaines tâches tardent à y avoir accès, et voient ainsi leurs
contraintes temporelles violées.
43
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
approximer le temps d‟exécution d‟une tâche, nous pouvons citer : Prischner et Koza,
Kligerman et Stoyenko, Leinbaugh et yamini, etc.
- Pi : C‟est la période d‟une tâche. Une tâche est dite périodique de période Pi, lorsqu‟elle a
une occurrence toutes les Pi unités de temps.
D‟autres paramètres sont déterminés par le mécanisme d‟ordonnancement grâce aux
paramètres Ri, Ei et Di précédents. Il s‟agit :
- Si : C‟est la date à laquelle une tâche Ti accède à la ressource selon l‟algorithme
d‟ordonnancement déroulé.
- Ci : C‟est la date à laquelle une tâche Ti termine son exécution. Cette date ne correspond
pas forcément à Si + Ei. En effet, selon l‟algorithme d‟ordonnancement appliqué, une tâche
peut être interrompue ou retardée pour la prise pour la prise en compte d‟une tâche plus
urgente.
- TRi : C‟est le temps de réponse de la tâche Ti c'est-à-dire la période entre la date la plus
antérieure à laquelle une tâche peut commencer son exécution et la date postérieure à
laquelle elle termine son exécution. Il s‟exprime par la formule : TRi = Ci - Ri.
- TLi : C‟est le temps de latence d‟une tâche Ti c'est-à-dire la période pendant laquelle une
tâche peut être retardée sans que son exécution ne dépasse son échéance. Elle s‟exprime
par la formule : TLi = Di - Ri - Ei.
- Li : C‟est la laxité c'est-à-dire la date au plus tard à laquelle la tâche Ti peut commencer son
exécution. Elle s‟exprime par la formule : Li = Di - Ei. Par déduction, on obtient la formule:
TLi = Li - Ri. Le temps de latence n‟est pas constant. En effet, plus une tâche Ti est retardée
plus son temps de latence diminue.
- Ui : C‟est le taux d‟utilisation du processeur dédié à la tâche Ti. Il s‟exprime par la
formule:
. Le taux global d‟utilisation sera la somme de tous les Ui.
Pour les tâches périodiques, le taux d‟utilisation du processeur ou le pourcentage de
l‟activité du processeur dédié à la tâche Ti est donnée par :
, et la Charge processeur = taux d‟utilisation du processeur pour les tâches
44
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
Remarque :
- Dans certains STR, l‟échéance est modélisée par une fonction à valeur dans le temps
(FVT) appelée « Time Value Fonction » (TVF). Chaque tâche Ti fournit au moment de sa
terminaison, une contribution qui est décrite par une fonction de coût Fi(t). La valeur de
cette fonction renseigne sur l‟utilité de la terminaison de la tâche à l‟instant t. F i(t) a la
valeur maximale si Ti termine avant Di, autrement la valeur de la fonction décroît vers 0,
où elle signifie qu‟une terminaison à cette date là est inacceptable. Quand la valeur de la
fonction décroit brusquement après son échéance, ceci indique une échéance stricte à ne
pas dépasser dans n‟importe quelle situation. Par contre, si la valeur de la fonction décroit
progressivement, cela indique une échéance relative qui peut éventuellement être dépassée
de peu.
- L‟ordonnancement est ramené, dans ce cas, à un problème d‟optimisation des tâches.
L‟ordonnancement est déterminé par une série d‟évaluations des valeurs des FVT selon la
position des tâches dans la séquence d‟ordonnancement.
45
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
leurs échéances. On distingue ainsi des tâches plus prioritaires par rapport aux tâches moins
prioritaires. C‟est l‟utilisateur qui définir les priorités.
Selon le système Spring, il existe trois types de tâches selon leurs priorités :
- Les tâches temps réel critiques : ce sont des tâches dont les échéances ou les contraintes
temporelles (qui sont connues à l‟avance) doivent être rigoureusement respectées pour
éviter la catastrophe. Elles ont la priorité la plus haute dans le système.
- Les tâches temps réel essentiel : Ce sont des tâches dont les contraintes son non sévères et
peuvent éventuellement être relâchées dans la mesure du possible. Dans certaines
applications, leur échéance est composée d‟une échéance stricte et d‟une échéance
relative. La première partie de l‟exécution d‟une telle tâche doit être rigoureusement
respectée, la seconde (qui peut consister en un affinement du résultat délivré par la
première partie) peut ne pas être terminée. Dans ce cas, le résultat ne sera pas très précis.
Les tâches essentielles peuvent être ordonnancées dynamiquement.
- Les tâches non essentielles : Ce sont des tâches qui peuvent ne pas avoir des contraintes
quant à la fin de leur exécution ou la date de leur déclenchement, elles ont donc la priorité
minimale. Elles seront exécutées une fois que toutes les tâches à contraintes seront servies et
selon leur ordre d‟arrivée ou selon un ordre décidé par l‟utilisateur.
b) Notion de périodicité
Lorsque les tâches temps réel n‟ont pas de priorité utilisateur, leurs priorités seront définies
par leurs échéances. Toutefois, la notion de périodicité que nous introduisons dans cette
section, révèle une autre distinction entre les tâches. Outre les priorités des tâches, le
mécanisme doit prendre en compte le fait que ces tâches peuvent être périodiques
apériodiques ou sporadiques.
- Les tâches périodiques : une tâche
i
Ti est dite périodique de période Pi si elle est exécutée
chaque Pi unités de temps. Une telle tâche a ses paramètres Ri et Di connus. Si Tin, la nème
exécution de la tâche Ti, alors la date au plus tôt Rin est donnée par le taux d‟inter-arrivée et
la date au plus tard Din est déterminée par l‟occurrence de la (n+1)ème exécution de T
(comme illustré dans la figure suivante).
Quand un système doit ordonnancer une tâche périodique, il doit garantir toutes les futures
occurrences de la tâche.
46
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
dépend du système.
- Les tâches apériodiques : ce sont des tâches dont l‟arrivée au processeur suit une loi
aléatoire (la loi de Poisson par exemple). Leurs paramètres temporelles sont donc inconnus
à l‟avance.
- Les tâches sporadiques : Les tâches apériodiques sont caractérisées par la moyenne des
temps d‟arrivée et un standard de déviation (écart type) par rapport au taux d‟arrivée.
Cependant, si les occurrences d‟une tâche apériodique sont au moins espacées de q unités
de temps, on caractérise cette tâche de tâche sporadique de période q.
Schématiquement :
47
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
48
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
49
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
- Tâche «en attente» : de l‟état «exécutée», une tâche peut se mettre en attente d‟un message,
d‟un événement, ou de l‟accès à une ressource (on parle de «blocage»). Lorsque le
message, l‟événement (ou la ressource) est arrivé (ou libre), la tâche passe dans l‟état
«prête» pour requérir le processeur.
50
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
51
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
qu‟une condition n‟est pas réalisée, charge au programmeur d‟utiliser les outils «wait» et
«signal» pour implémenter les conditions (gardes) d‟accès.
- Le moniteur à la Ada (objet protégé): permet de mettre une garde (une barrière logique) à
l‟entrée de chaque primitive du moniteur, ce qui offre des traitements plus fins et plus
transparents des conditions d‟accès par rapport au moniteur de Hoare. Par exemple, dans le
cas où il y a plusieurs conditions de réveil, seule la tâche concernée est réveillée par le
changement d‟état du moniteur, contrairement au cas du moniteur de Hoare dans lequel toutes
les tâches en attente sur «wait» sont réveillées sur un «signal», puis doivent évaluer leur
condition afin de se remettre en attente ou de poursuivre leur exécution. De plus, le moniteur
à la Ada possède un mécanisme natif de l‟accès de type lecteur/écrivain, c‟est-à-dire
plusieurs tâches peuvent accéder au moniteur en lecture en même temps, mais une seule tâche
peut y accéder en écriture à la fois. En outre, le protocole à priorité plafond existe également
pour le moniteur à la Ada.
I.9. c. Signaux
Les signaux sont des événements (sans données) pouvant être envoyés à une ou plusieurs
tâches simultanément. Il y a deux types de signaux: les «signaux synchrones», internes à une
tâche ou un processus, et les «signaux asynchrones», provenant d‟autres tâches ou processus,
ou bien de source matérielle externe.
- Un signal synchrone est le résultat d‟un événement interne à une tâche. Il s‟agit lorsqu‟un
événement interne a lieu, qu‟une occurrence du signal synchrone associé ait lieu. Et ce signal
est traité immédiatement de façon synchrone à son occurrence par la tâche. Normalement, à
chaque signal synchrone est associée une action par défaut, qu‟une tâche peut effectuer
lorsqu‟elle reçoit un signal synchrone.
- Les signaux asynchrones sont des signaux provenant d‟une source externe à l‟adresse d‟une
tâche ou un processus (signaux privés), ou bien à plusieurs tâches et/ou plusieurs processus
(signaux publics). Lorsqu‟un signal privé est envoyé à un processus, la dernière tâche
(chronologiquement) à s‟être sensibilisé à l‟événement peut percevoir l‟événement. Lorsqu‟un
signal public est envoyé à un processus, toutes les tâches sensibilisées au signal peuvent le
percevoir. Alors dans les cas de signaux public, un répartiteur d‟occurrences
s‟occupera de prévenir chaque tâche sensibilisée qu‟un signal public est envoyé.
Si une tâche n‟est pas prête à recevoir un signal au moment où l‟occurrence de ce signal a
lieu, il existe trois possibilités dont les occurrences non prises en compte peuvent être gérées:
«signal fugace» (l‟occurrence non prise en compte est perdue, la tâche doit attendre l‟arrivée
de cette occurrence de nouveau); «signal mémorisé» (l‟occurrence non prise en compte est
mémorisée en mettant le «drapeau» à 1, par conséquent si une autre occurrence du même
événement a lieu d‟ici à sa prise en compte, elle est ignorée); «signal à compte» (les
occurrences non prises en compte immédiatement sont comptées pour utilisation ultérieure).
I.9. d. La boîte aux lettres
Une boîte aux lettres permet une communication asynchrone entre des tâches. Une boîte aux
lettres est constituée typiquement d‟une zone d‟échange tampon (buffer) dans laquelle une
tâche dite «émettrice» peut déposer des données, et d‟un mécanisme de gestion des données
52
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
53
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
54
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
55
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
56
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
On appelle échantillonneur, un composant qui lit une valeur analogique à un instant donné,
puis la mémorise (dans une capacité) jusqu‟ à lecture. On échantillonne une valeur analogique
à une fréquence au moins double de la plus petite fréquence à mesurer.
I.11.3. Systèmes de contrôle, supervision et pilotage de systèmes
Ces systèmes recouvrent une gamme d‟applications très large et variée. Ils comprennent une
architecture hiérarchique à deux niveaux : le niveau bas qui constitue l‟interface physique et
le niveau haut qui constitue le guidage / planification (interfaces opérateurs), comme le
montre le schéma suivant :
57
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
Un système synchrone ou réactif est un système qui réagit instantanément à des stimulations
externes (le temps de la réaction est négligeable vis – à – vis du rythme de stimulation, par
exemple les jeux vidéo)
Un système cyclique est un système dont tout le comportement n‟est rythmé que par le temps
sur la base d‟une horloge.
Un système asynchrone est un système dont le comportement est un mélange des deux
précédents et dont le temps d‟exécution des tâches peut entraîner des délais dans la prise en
compte événements. Il est donc simulé par des événements externes asynchrones et des
horloges.
58
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
59
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
La spécification de performances d‟un STR est caractérisée par la latence et la gigue sur la
latence.
La latence, c‟est le délai global de bout en bout entre un changement d‟état dans un
environnement et la réaction correspondante en sortie du système. Ce délai prend en compte :
les délais de scrutation du système, les délais dus au système d‟exploitation, les délais des
calculs applicatifs de la réponse et les délais de transmission de messages (réponse).
La gigue sur la latence : elle décrit l‟incertitude sur la latence. Elle est souvent liée à la
concurrence qui va faire varier la charge du réseau (problème d‟accès) ou des nœuds de
calcul (ordonnancement). Elle doit être faible dans les applications de contrôle et en général
dans les applications rapides.
I.13.5. Spécification de composabilité
La composabilité est une propriété qui fait qu‟une caractéristique qui existe dans un
composant du système pris isolement se retrouve comme propriété inchangée dans le système
tout assemblé. On dit également que l‟assemblage des composants est dénué d‟effet de bord
ou d‟échelle.
I.13.6. Spécifications relatives à la sûreté de fonctionnement
La sûreté de fonctionnement d‟un système temps réel est rassurée par le délai de détection
des erreurs et la tolérance aux fautes.
Dans un STR critique on cherchera toujours à ce que le délai de détection des erreurs soit
minimum. Il doit être de l‟ordre de grandeur de la boucle de contrôle la plus courte, pour
pouvoir réagir assez vite et mettre le système dans un état sûr de fonctionnement (éviter les
divergences).
Une application critique doit avoir un comportement du type FO -> FS (Fail Operationnel - >
Fail Safe). En d‟autres termes, le système doit être à mesure de continuer à fonctionner tant
qu‟un certain nombre de défaillances n‟est pas atteint. Ensuite, lorsque la limite de capacité à
assumer une défaillance de plus est atteinte, le système doit s‟arrêter de façon sûre.
60
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
II.1. Définitions
On appelle programmation concurrente les techniques et notations permettant :
- l'expression et la manipulation (construction, destruction, lancement, arrêt, ...) d'entité
concurrentes que l'on appelle tâches ou processus ;
- la mise en place de moyens de communication et de synchronisation entre ces entités ;
- l'abstraction de l'exécution réelle des processus ou tâches sur une architecture parallèle ou
non.
La programmation temps réel est assimilable à la programmation concurrente avec comme
particularité :
- Des mécanismes ou notations permettant d'accéder au temps réel (généralement une
horloge temps réel) ;
- Des mécanismes permettant de définir ou de modifier la priorité des processus et/ou de
définir et de modifier des échéances temporelles ;
- La suppression ou l‟adaptation de certains traits du langage utilisé afin d'alléger l'applicatif
et/ou de le rendre plus déterministe.
61
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
62
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
63
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
64
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
3. Etat de terminaison
Un processus ou une tâche peut terminer sous différentes conditions :
- fin normale des instructions
- suicide par l'exécution d'une instruction de terminaison
- avorté par l'action d'un autre processus/tâche
- fin sur erreur (exception ou signal non récupéré)
- lorsque son rôle n'est plus utile
- jamais
65
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
if ( ! (tab_pid[i] = fork()) ){
// le code du fils; ici un simple affichage et un repos de une
seconde printf("hello\n");
sleep(1);
exit();
}
}
// seul le pere arrive ici car les fils ont termine par exit
// il attend cette
terminaison for (i=0; i<N;
i++){
II.6. Conclusion
La programmation concurrente simplifie la conception des systèmes temps-réel qui sont par
nature des systèmes concurrents.
Elle peut cependant introduire certains problèmes spécifiques liés en grande partie à la
synchronisation des tâches.
Les langages, ou les systèmes d‟exploitation, offrent différents mécanismes pour la
représentation et l‟exécution des tâches ou processus.
66
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
67
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
68
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
méthodologies, c‟est-à-dire à développer et à utiliser des méthodes et des outils dans le but de
produire des logiciels de qualité en respectant des contraintes de temps et de coût. En effet, on
cherche à développer des logiciels qui correspondent aux besoins des utilisateurs de ces
logiciels. Le cycle «problème-solution» en est un exemple. Dans ce cas, on est souvent en
quête de la solution. Mais il n‟existe pas de solution définitive parce que la solution proposée
peut être inadaptée (le problème a été mal compris) ou l‟application de cette solution peut
entraîner des nouveaux problèmes ou mettre à jour des problèmes déjà existants. Donc, le fait
de trouver une solution n‟implique pas la fin des problèmes.
Il existe des «critères» de qualité dont un développement peut être fait pour satisfaire tout ou
partie d‟un ensemble de ces critères.
- Exactitude : le plus important des critères de qualité. Exigence d‟un logiciel à être exempt
d‟erreur; à fournir des mêmes résultats dans les mêmes conditions normales d‟utilisation.
Notons que ce déterminisme et cette reproductibilité des résultats ne sont pas adaptés au
temps réel.
- Robustesse : Capacité d‟un logiciel à maintenir ses performances malgré des changements
dans les conditions de fonctionnement ou la présence d‟incertitudes liées à ses paramètres.
Il s‟agit du fait qu‟un logiciel doit bien réagir lorsque l‟on s‟écarte des conditions normales
d‟utilisation.
- Extensibilité : Possibilité pour un logiciel d‟utiliser tout ou certaines parties de ce logiciel
pour développer un autre logiciel répondant à d‟autres besoins, sans modification ou
avec des modifications mineures.
- Portabilité : Facilité avec laquelle on peut exploiter un logiciel dans différentes
implémentations. On distingue la portabilité de la compatibilité. Le terme compatibilité est
plutôt employé pour désigner la capacité d‟un ordinateur et du matériel associé à
communiquer entre eux et à échanger des données ou de deux ordinateurs à exécuter les
mêmes programmes.
- Efficience : Caractéristique d‟un logiciel dans laquelle il y a un gain de temps, de taille,…
pour satisfaire des besoins des utilisateurs. Ce critère est très important dans les applications
embarquées.
Le développement d‟un logiciel se fait suivant un cycle, appelé le cycle de vie d‟un logiciel. Le
cycle de développement du logiciel est un ensemble de phases permettant de transformer à
travers un logiciel les besoins en des processus de traitement automatique d‟information
en provenance de son utilisateur, de son environnement ou de lui-même pour répondre à ces
besoins.
La décomposition en phases de développement permet aussi de faciliter le suivi, la vérification
et la validation du projet par le concepteur et l‟utilisateur.
Il existe de nombreux modèles de cycle de vie: modèle en «Cascade», modèle en V, modèle en
«Spirale», modèle en W,… Malgré des différences de ces modèles, tous se composent des
différentes phases qui sont échelonnées dans le temps :
- Spécifications des besoins
- Conception préliminaire
69
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
- Conception détaillée
- Implémentation
- Tests unitaires et tests d‟intégration
- Validation
- Exploitation/Recette
Une phase se termine par la remise d‟un (ou plusieurs) document(s) validé(s) conjointement
par l‟utilisateur et le concepteur. Une phase est terminée lorsque la revue de cette phase est
faite. Et une phase ne peut commencer que lorsque la précédente est terminée.
III.2.1. Le cycle de vie en «Cascade»
Etant proposé par W. Royce, le modèle en «Cascade» est considéré comme le modèle
classique de développement d‟un logiciel. A l‟origine, le cycle de vie en «Cascade» n‟est pas
itératif. Il est vu comme un processus séquentiel comprenant les phases suivantes: la
Spécification, la Conception Préliminaire, la Conception Détaillée, l‟Implémentation, des Tests
unitaires et tests d‟intégration. Si une erreur se produit dans une de ces phases, elle va se
propager à des phases successives. Et des changements ne sont pris en compte qu‟à la fin de la
dernière phase. Ce qui pose un surcoût de développement et de validation d‟un logiciel.
Figure III.1.a : Modèle en Cascade affiné Figure III.1.b : Itérations dans la phase de Conception
Le modèle de vie en «Cascade» affiné est présenté sur la Figure III.1.a. Dans ce modèle,
chaque phase peut mener à la précédente ou la suivante mais rarement aux phases plus
éloignées dans la séquence. La vertu de ce modèle dans le développement est qu‟il existe une
liaison entre les phases après la phase de Spécification, ce qui permet de retourner au point
pour lequel une difficulté imprévue survient. Cependant, dans certains cas, une telle démarche
peut être risquée et échouer. Ainsi, si une erreur détectée dans la phase de Tests est liée à une
mauvaise Conception ou à une Spécification imprécise, un effort pour refaire le code dans la
phase d‟Implémentation peut ne pas remédier au problème. En effet, le développement peut
retourner de nouveau à l‟origine de la phase de Spécification (voir Figure III.1.b). Un autre
modèle en «Cascade» affiné est proposé dans d‟autres ouvrages: il permet de revenir depuis
une étape à l‟une quelconque des étapes précédentes. W. Boehm propose un modèle en
«Cascade» raffiné vers une étape “build it twice” en incorporant un prototype à chaque étape
pour le feed back.
70
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
71
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
maîtrisent pas encore (i.e., l‟interface utilisateur et les opérations fournies). Par conséquence, il
y a de grandes chances que dans la conception et le développement de ces projets qui vont
suivre, une grande quantité de code soit inutilisable.
Pour des systèmes à risques, il est favorable d‟utiliser d„autres techniques de prototypage qui
permettent de valider tout ou une partie du cahier des charges et de prendre en considération le
«feed-back» entre le concepteur et l‟utilisateur. Parmi ces modèles, on retrouve :
- Le modèle en «Prototype Rapide» (Rapid Prototyping Model) qui focalise l‟objectif du
logiciel à la première étape du cycle de développement: une conception et un prototype
seront construits rapidement, ce qui permet de le vérifier avant la phase de spécification et
d‟exiger moins de boucles de «feed-back» par rapport au modèle en «Cascade».
- Le modèle Incrémentiel et Itératif (Incremental and Iterative Model) où le développement
est découpé en étapes quand le logiciel se divise en morceaux dont chacun correspond à un
ensemble de besoins. A chaque étape, on emploie un modèle de vie linéaire pour élaborer
un ou plusieurs morceaux du système simultanément. Puis ces morceaux sont intégrés et
testés ensemble.
- Le modèle en «Spirale» qui est dirigé par les risques, proposé par W. Boehm.
72
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
se déroule souvent a priori en fonction des expériences passées du concepteur. Puis, à la suite,
les architectures sont développées séparément dans leur propre cycle de vie en «V» avec des
phases séquentielles (la conception détaillée, l‟implémentation, des tests unitaires). Lorsque le
matériel et le logiciel satisfont chacun leur fonctionnement, on les intègre ensemble dans
la phase d‟intégration et la phase de validation afin de vérifier la communication entre ces
deux parts, et aussi le fonctionnement du système considéré (i.e., des tests d‟opération, des
évaluations des contraintes temporelles,…).
73
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
Malgré ces inconvénients, l‟approche traditionnelle est encore très utilisée pour les
applications embarquées.
III.3.2. L’approche de développement «Logiciel/Matériel» en Co-design
«Matériel/Logiciel» en co-design signifie la rencontre des objectifs au niveau du système en
exploitant la synergie de matériel et de logiciel par leur conception concurrente. Contrairement
à l‟approche traditionnelle, l‟approche de développement «Matériel/Logiciel» en Co-design se
concentre sur la combinaison des perspectives de matériel et de logiciel dès les premières
phases de développement. Alors, un développement va commencer avec une notation abstraite
telle que chaque composante ou module est indépendant(e) de sa réalisation finale en
matérielle ou en logicielle. Puis, la séparation des composantes matérielles/logicielles peut être
effectuée de manière la plus appropriée. L‟intégration «Matériel/Logiciel» est ensuite
complétée par un ensemble des instructions permettant des tests et des co-simulations. Un
modèle typique de développement en Co-design est présenté sur la Figure III.4 ci-dessous.
74
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
un choix libre de l‟implémentation dans l‟étape de «Matériel/Logiciel Partition», tel que l‟on
transforme des CFSMs en un format de description du matériel dans lequel chaque transition
est implémentée par un circuit combinatoire verrouillant ses sorties afin d‟assurer leurs non
zéro retard de réaction; ou bien que l‟on transforme des CFSMs en une structure de logiciel
qui comporte des procédures et un système d‟exploitation simple exprimés sous la forme
d‟un s-graphe (une forme réduite de graphe flot de contrôle contenant les noeuds, nommés
«Begin», «End», «Call», «Test», Assign»). Un s-graphe peut être interprété en des codes pour
être exécutables par un microprocesseur. Des interfaces entre des composantes matérielles et
des composantes logicielles sont générées automatiquement grâce à des techniques de
mémoire partagée (pour des communications dans lesquelles l‟événement émis par le logiciel
est consommé par le matériel), de «scrutation» ou d‟«interruption», de communication directe
entre des matériels ou des logiciels par «bus» ou «drapeau» respectivement. Cela permet de
faciliter la vérification de l‟intégration des matériels/logiciels et la validation dans les étapes
suivantes. Les co-simulations s‟exécutent sur des matériels simulés (i.e., des ASICs,
Application Specific Integrated Circuit), ce qui permet de réduire le coût de production et
d‟augmenter la fiabilité, mais d‟élever également le coût et le temps de développement. Par
ailleurs, l‟implémentation des logiciels possède un temps de réponse pouvant être plus grand
que celui des matériels. Notamment, si le logiciel est basé sur un système d‟exploitation avec
le mécanisme de préemption, le temps de réaction d‟un logiciel ne peut être représenté
exactement par un modèle basé sur une hypothèse synchrone.
De nos jours, avec des outils de conception assistés par ordinateur (CAO), l‟introduction du
FPGA (Field-Programmable Gate Array), et des HDLs (Hardware Description Language), le
développement «Matériel/Logiciel» en Co-design devient un vaste domaine de recherche et
une clé de technologie pour des systèmes numériques pour le COSYMA
(COSYnthesis for eMbedded micro Achitectures), pour le Ptolemy, pour le POLIS, etc.
Bien que ces méthodes soient bien adaptées pour le développement d‟applications très
intégrées, il nécessite de la part du concepteur une maîtrise globale du système. Or il est assez
classique, notamment dans le monde automobile, et afin de réduire le coût et le «time-to-
market», d‟avoir un choix de matériels précis (1 ou 2 microcontrôleurs au choix, récupérant
des informations sur un réseau de terrain). Dans ce cas, les développements matériels peuvent
se réduire à la mise sur circuits de certaines fonctions ne pouvant être exécutées de façon
logicielle pour des problèmes de puissance de calcul. Dans ce cas, une approche traditionnelle
pourra réduire le temps de développement. Il convient cependant que l‟impact du matériel sur
le logiciel soit bien connu. De plus, il convient de pouvoir tester le logiciel indépendamment
du matériel. Dans ce cas, il est fréquent d‟appliquer un cycle de développement en «W».
III.3.3. Le cycle de développement en «W» dans l’approche traditionnelle
Le modèle en «W» (voir Figure III.5) est une extension du modèle en «V». Dans ce modèle, le
premier V correspond au cycle de vie en «V» classique sur simulateur logiciel (à développer),
le deuxième V étend le premier pour prendre en considération les propriétés du matériel dans
le développement d‟un logiciel.
75
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
76
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
77
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
78
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
une résolution d‟horloge de l‟ordre de la micro seconde avec un surcoût processeur moindre
par rapport au modèle dirigé par le temps.
79
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
clients et concepteurs.
Les méthodes formelles permettent d‟obtenir une très forte assurance de l‟absence de «bogue»
dans les logiciels. Cependant, elles sont des méthodes «constructives» et «universelles» [Jack98].
Donc elles sont généralement coûteuses en ressources (humaines et matérielles) et actuellement
réservées aux logiciels les plus critiques.
Pour les approches semi-formelles, Shaw les a classifiées en quatre groupes principaux selon le
style de l‟architecture utilisé: l‟Architecture orientée objet (focalise la décomposition d‟un
système en des objets distincts, en encapsulant leurs états et leurs opérations.
Les objets interagissent par invocation des opérations des autres); l‟Architecture état-transition
(se concentre sur des états d‟un système et sur des événements qui provoquent des transitions
entre ces états); l‟Architecture asservissement (une forme spéciale de diagramme de flot de
données adaptée pour des systèmes embarqués où le procédé doit s‟adapter régulièrement afin de
compenser des perturbations en provenance de l‟extérieur); et l‟Architecture temps réel (se
concentre sur des système temps réel dans lesquels le respect des contraintes de temps doit être
satisfait). Les descriptions semi-formelles offrent des mécanismes de structuration et de
décomposition très riches tout en proposant une représentation intuitive et synthétique du
système à construire. Mais, il n‟existe pas d‟outils associés permettant d‟analyser, de
vérifier ou de simuler, de valider de telles spécifications.
Effectivement, aucune des méthodes existantes ne qualifie tous les aspects présentés au-dessus.
En s‟apercevant que chaque méthode possède certaines caractéristiques spécifiques pour certaine
domaine d‟application, s‟il existe une méthode qui peut regrouper les caractéristiques de chacune
des méthodes existantes, la nouvelle méthode peut être qualifiée d‟un nombre maximal des
critères, et surtout ce principe peut s‟appliquer à chercher une méthode convenable pour tous les
domaines de problème ou tous les environnements de développement à des développeurs. Saeki a
proposé un modèle pour construire une telle méthode, nommée «l‟ingénierie des méthodes» (voir
Figure III.8.). L‟idée principale de ce modèle est la suivante: en se basant sur la «réutilisation»
des «méthodes fragmentaires», appelées «méthode de base», les développeurs récupèrent
les méthodes fragmentaires convenables d‟abord, puis les adaptent, et les s‟intègrent à la
nouvelle méthode.
développeur peut construire un diagramme de classes, et puis raffiner les détails en utilisant une
technique formelle telle que le langage B.
Les difficultés dans l‟emploi de cette approche résultent de la complexité des concepts que les
méthodes possèdent. Il en résulte que la consistance de l‟intégration des méthodes doit être
vérifiée.
81
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
Annexes
Etude de cas : système expert de diagnostic et traitement des
infections sexuellement transmissible
5.1. Introduction
Les infections sexuellement transmissibles (IST) et leurs complications sont parmi les causes
les plus fréquentes de mortalité dans le monde, et elles sont en tête des cinq premières
maladies qui amènent les adultes des pays en développement à consulter les services de santé.
Les IST sont un problème de santé publique important, non seulement en raison de la cavité
de leurs séquelles mais encore parce qu‟elles augmentent le risque de transmission du virus de
l‟immunodéfience humaine (VIH).
Ces infections touchent les gens de tous les milieux et tous les niveaux sociaux économiques,
un problème de diagnostic et de traitement approprier se pose du fait que les experts sont des
hommes rares et chers.
C‟est qui justifie la mise en place d‟un système expert d‟aide aux diagnostiques et thérapies
en cas des infections sexuellement transmissibles. Ce système à base de connaissances pourra
permettre aux utilisateurs, même non experts du domaine médical, d‟assurer les diagnostics et
la thérapie en cas des infections sexuellement transmissibles les plus courants.
82
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
Règle 3
Si sensation de brûlure en urinant ou picotement du canal de la verge
Si pertes vaginales
Si picotements urinaires
Si Urétrite subaiguë : petit écoulement clair à l‟extrémité de la verge
Si douleurs de bas ventre ou pendants les rapports
Si saignements génitaux
Alors le patient souffre de (Mycoplasma hominis-Infection à Mycoplasmes)
Règle 4
Si Infection à Mycoplasmes
Si Mycoplasma hominis
Si Chancre ou lésion: petite plaie des organes génitaux (ou de la bouche ou de l‟anus)
Si ganglions
Si Taches roses dans la peau
Alors le patient souffre de (Syphilis-Tréponème pallidum)
Règle 5
Si Chancre ou lésion: petite plaie des organes génitaux (ou de la bouche ou de l‟anus)
Si Plusieurs vésicules, fissures, plaies ressemblant à des aphtes
Alors le patient souffre de (Herpès génital- Herpès virus)
Règle 6
Si Lésions qui se présentent soit sous la forme de végétations vénériennes (crêtes de coq),
avec l‟aspect de verrues
83
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
Si Chancre ou lésion: petite plaie des organes génitaux (ou de la bouche ou de l‟anus)
Alors le patient souffre de (Condylomes génitaux- Papillomavirus)
Règle 7
Si petit écoulement par l‟extrémité de la verge
Si Pertes vaginales avec brûlures et démangeaisons.
Alors le patient souffre de (Trichomonase -Trichomona vaginalis)
Règle 8
Si petit écoulement par l‟extrémité de la verge
Si Testicules enflés et/ou douloureux
Si Saignement après les rapports sexuels Si douloureuses et sensibles au toucher Si lésions
cutanées
Si les ulcérations sont localisées sur les organes génitaux et dans la cavité buccale ganglions
Alors le patient souffre de (Chancre mou- Haemophilus ducreyi)
Règle 9
Si Pertes vaginales avec brûlures et démangeaisons.
Si rougeur du gland
Si démangeaisons ou petites plaies superficielles
Alors le patient souffre de (Candida albicans-Mycose génitale)
Règle 10
Si Saignement après les rapports sexuels
Si Douleur pelvienne (douleur en bas du nombril)
Alors le patient souffre de (MPI)
84
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
Diagramme de classes
87
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
88
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
89
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
rs(3).Open("select * from diagnostic where symptome='" & LstV2.Items(i).SubItems(1).Text & "' and
maladie='" & rs(1).Fields(1).Value & "'", cn, ADODB.CursorTypeEnum.adOpenKeyset,
ADODB.LockTypeEnum.adLockOptimistic)
If rs(3).EOF = True Then
Exit For
Else
trv = trv + 1
'MsgBox(LstV2.Items(i).SubItems(1).Text)
' MsgBox("select * from diagnostic where symptome='" &LstV2.Items(i).SubItems(1).Text & "' and
maladie='" & rs(1).Fields(1).Value & "'")
End If
Application.DoEvents()
Next i
' MsgBox(trv)
If Val(trv) = LstV2.Items.Count Then
Form3.LstMal.Items.Add(Form3.LstMal.Items.Count + 1).SubItems.Add(rs(1).Fields(1).Value & " (" &
rs(1).Fields(2).Value & ")")
Form3.LstMal.Items(Form3.LstMal.Items.Count - 1).SubItems.Add(rs(1).Fields(3).Value)
Form3.txtSynd.Text = "les symptômes trouvés chez la malade ont : "
For i = 0 To LstV2.Items.Count - 1
Form3.txtSynd.Text = Form3.txtSynd.Text & LstV2.Items(i).SubItems(1).Text & ", "
Next i
End If
' ListBox1.Items.Add(rs(1).Fields(1).Value)
rs(1).MoveNext() Application.DoEvents()
Loop
Form3.ShowDialog()
End Sub
Private Sub BtActu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
BtActu.Click
LstVSynd.Items.Clear()
' **** changer la liste des syndromes ************************
rs(0).MoveFirst()
Do Until (rs(0).EOF = True) Application.DoEvents()
LstVSynd.Items.Add(rs(0).Fields(0).Value).SubItems.Add(rs(0).Fields(1).Value)
rs(0).MoveNext()
Loop
End Sub
Private Sub CboSex_SelectedIndexChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CboSex.SelectedIndexChanged rs(0) = New ADODB.Recordset
rs(0).Open("select * from symptomes", cn, CursorTypeEnum.adOpenDynamic,
LockTypeEnum.adLockOptimistic)
End Sub
Private Sub BtPara_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
90
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
BtPara.Click
Form5.ShowDialog()
Form4.ShowDialog()
End Sub
End Class
91
Batubenga Mwamba Nz. J.D.
Cours de Système Expert et Temps réel, L2 Génie Informatique
92
Batubenga Mwamba Nz. J.D.