Sujet 2007/2008

publicité
Projet de représentation des connaissances 2008
Simulation de traitement médical
Gauvain Bourgne
February 27, 2008
1
Description du contexte
On considère un ensemble de maladies. Chacune de ces maladies provoque un
certain nombre de symptômes.
Exemple 1 On considère l’ensemble de maladies suivant: Grippe, Bronchite,
Angine, Pneumonie et Rhume.
La grippe a pour symptômes toux, fièvre, et fatigue. La bronchite a pour
symptômes toux et mucus. L’ angine a pour symptômes fièvre et fatigue. La
pneumonie a pour symptômes fièvre et toux. Enfin, le rhume a pour seul
symptôme mucus.
A chacune de ses maladies est associée un traitement. Si un patient suit le
traitement correspondant à sa maladie, il est totalement guéri de cette maladie.
Si un patient subissait plusieurs maladies, il lui faudra les guérir séparément par
deux traitements consécutifs.
Il se peut cependant que le diagnostic soit inexact, et que le traitement ne
corresponde pas à la maladie du patient. On a alors deux cas possibles (qui
peuvent se mélanger) :
• Le traitement a un effet partiel. Pour certaintes maladie, ce traitement
soigne certains des symptômes, mais ne guérit pas la maladie. Ainsi, le
symptôme disparaı̂tra temporairement, mais réapparaı̂tra plus tard après
la fin du traitement si la maladie source n’a pas été soignée correctement.
• Le traitement a des effets secondaires dans certains cas. Si le patient
souffre de certaines maladies particulières, la combinaison du traitement
avec la maladie fera apparaı̂tre certains symptômes qui disparaı̂tront à
l’arrêt du traitement.
Exemple 2 On note tG le traitement contre la grippe, tB celui contre la bronchite, tA le traitement pour l’ angine, tP celui contre la pneumonie, et enfin tR
le traitement pour le rhume.
1
Le traitement tG a un effet partiel sur la bronchite. Quand un patient
atteint de bronchite suit ce traitement, sa bronchite ne lui provoque plus de toux
(notons que si le patient a une autre maladie, un effet secondaire ou une contre
indication qui provoque aussi de la toux, il est possible qu’il tousse encore). De
plus, ce traitement a un effet secondaire sur les patients ayant une bronchite:
un patient souffrant de bronchite qui suite ce traitement devient sujet à de la
fièvre. Cette dernière s’arrête quand la bronchite est soignée ou dès l’arrêt du
traitement tG .
Le traitement tB , pour sa part, a un effet partiel et un effet secondaire visà-vis du rhume. Quand il est appliqué à un patient ayant un rhume, il fait
disparaitre le symptôme de mucus dû au rhume et provoque de la fatigue. Ces
deux effets disparaissent à la fin du traitement.
Le traitement pour l’angine, tA , a un effet partiel sur la grippe. Il annule
les symptômes de fièvre causés par la grippe (mais pas ceux ayant une autre
origine).
Le traitement pour la pneumonie, tP , est spécifique, et n’a aucun effet partiel
ni effet secondaire.
Enfin, le traitement du rhume, tR , a un effet partiel sur la bronchite. Il
annule en effet le symptôme de mucus causé par la bronchite.
On se propose dans ce projet de simuler l’évolution de l’état d’un patient en
fonction des traitements qu’il reçoit.
Exemple 3 Prenons un cas pathologique. Soit un patient souffrant d’une pneumonie,
d’une bronchite et d’une angine. Dans l’état initial, avant tout traitement, il a les symptômes
des trois maladies. C’est à dire qu’il a de la toux, et de la fièvre du fait de sa pneumonie, de
la fatigue et de la fièvre du fait de son angine, ainsi que du mucus et de la toux du fait de
sa bronchite. Au final, il a de la toux, de la fièvre, de la fatigue et du mucus (un symptôme
présent deux fois reste).
Observant les symptômes, le medecin pense qu’il souffre d’une grippe et d’un rhume, et
propose d’abord un traitement contre la grippe (tG ). Juste après ce traitement, on a les effets
suivants:
• le traitement n’est adapté à aucune de ses maladie, donc aucune maladie n’est soignée.
• le traitement a eu un effet partiel sur la bronchite, annulant la toux due à celle-ci.
Mais comme la pneumonie provoque aussi la toux et n’est pas soignée, le patient tousse
toujours.
• le traitement a un effet secondaire en cas de bronchite. Comme le patient souffre d’une
bronchite, ce traitement provoque de la fièvre (la fièvre du patient a donc maintenant
3 causes !).
Le patient souffre donc toujours des mêmes symptômes: toux, fièvre, fatigue et mucus.
Le medecin tente maintenant le traitement tA . Les effets sont alors les suivants:
• le traitement soigne l’ angine du patient.
• comme le patient ne souffre pas de grippe, le traitement n’a pas d’effet partiel.
Le patient a donc encore une pneumonie et une bronchite. En pratique, ces deux maladies
provoquent les symptômes suivants: toux, fièvre, et mucus. Le soin de l’angine a permis
d’éliminer la fatigue.
On applique maintenant le traitement tP . Les effets sont alors les suivants:
• le traitement soigne la pneumonie du patient.
2
Le patient a donc encore une bronchite. En pratique, il lui reste les symptômes suivants:
toux, mucus.
Un dernier traitement avec tB permet alors au malade de se débarasser de toutes ses maladies et de tous les symptômes (sans problème puisque le traitement correspond maintenant
bien à la seule maladie du patient).
On illustre avec un second cas.
Exemple 4 Soit un patient souffrant d’une grippe et d’une bronchite. Dans l’état initial,
avant tout traitement, il a les symptômes des deux maladies: toux, fièvre, fatigue et mucus.
Observant les symptômes, le medecin pense qu’il souffre d’une grippe et d’un rhume, et
propose d’abord un traitement contre la grippe (tG ). Juste après ce traitement, on a les effets
suivants:
• le traitement soigne la grippe du patient.
• le traitement a un effet partiel sur la bronchite, annulant la toux due à celle-ci. Comme
la grippe est aussi soignée, le patient ne tousse plus.
• le traitement a un effet secondaire en cas de bronchite. Comme le patient souffre d’une
bronchite, ce traitement provoque de la fièvre.
Ainsi le patient n’a plus qu’une bronchite, dont la toux est annulée, mais il subit de la fièvre
du fait des effets secondaires du traitement. Le patient souffre maintenant des symptômes
suivant: fièvre et mucus.
Le medecin tente maintenant le traitement tR (il arrête ainsi le traitement tG ). Les effets
sont alors les suivants:
• le traitement ne soigne aucune maladie , car le patient n’a pas de rhume.
• le traitement a un effet partiel sur la bronchite, annulant le mucus du à celle-ci.
Le patient a donc toujours sa bronchite, mais sans mucus. De plus, les effets secondaires et
partiels de tG disparaı̂ssent (plus de fièvre, mais à nouveau de la toux). En pratique, il a
maintenant uniquement le symptôme suivant: toux.
Pour y voir, plus clair, le médecin interrompt tout traitement. Les effets partiel de tR
sont alors annulés, et le mucus réapparait. Le patient a ainsi les symptômes suivants: toux
et mucus.
Le medecin prescrit alors enfin un traitement contre la bronchite (tB ). La bronchite
est soignée sans effets secondaires, et en l’absence de maladies, le patient n’a plus aucun
symptôme.
2
Questions
Le projet devra comporter un programme, à présenter en soutenance de projet, et un rapport présentant le projet. Le rapport devra notamment contenir
les réponses à toutes les questions qui ont une partie autre que programmation (questions 1 et 2). Il fournira aussi le code des fonctions explicitement
demandées dans le sujet (question 3). Le programme pourra être programmé
dans n’importe quel langage au choix de l’élève. Un langage objet procédural
comme Java ou C++ est recommandé. Un utilisateur expérimenté de CAML
pourra toutefois tout à fait utiliser ce langage. Le groupe devra cependant
s’assurer que son programme fonctionne bien sur les ordinateurs de la salle de
soutenance, ou apporter un ordinateur portable.
3
1. Proposer une structure de données pour représenter ce problème. Une
structure de frames serait appréciée, mais n’est pas obligatoire. On veut
pouvoir définir rapidement une maladie et ses symptômes, puis décrire les
effets partiels et les effets secondaires de son traitement.
Programmation: Coder la structure de donnée choisie, et l’instancier sur
l’exemple donnée (grippe, pneumonie, angine, bronchite, rhume). Il sera
demandé lors de la soutenance d’ajouter une maladie et un traitement
donnés par l’examinateur.
2. On veut représenter ce problème avec en calcul des situations.
Les constantes seront les maladies et les symptômes. On notera par la
suite m une maladie, et y un symptôme.
Les actions seront des traitements (ou bien l’action arrêter les traitements). Elles n’ont pas de préconditions (pas besoin du prédicat Poss).
On aura ainsi l’action Traiter(m) qui signifie qu’on applique le traitement correspondant à la maladie m, et l’action Arret() qui signifie qu’on
arrête les traitements pour observer l’évolution.
Les fluents correspondront les maladies et les symptômes présents chez
le patient. On aura ainsi le fluent AMaladie(m,s), qui indique que le
patient a la maladie m dans la situation s, et le fluent ASymptome(y,s),
qui indique que le patient a le symptôme y dans la situation s.
(a) Donner l’axiome gouvernant l’évolution des fluents de maladies. On
considère qu’aucune action ne déclenche de maladie, et qu’une maladie ne peut dont être présente que si elle était présente auparavant
et qu’elle n’a pas été soignée.
Aide: La formule sera de la forme: AMaladie(m, do(a,s)) ⇔ condition sur a
et AMaladie(m, s).
(b) Donner l’axiome gouvernant l’évolution de ASymptome(toux,s).
Aide: La formule sera de la forme: ASymptome(toux, do(a,s)) ⇔ condition
sur a et AMaladie(m, s).
La condition sera une disjonction de deux termes. Le premier terme traduira
que la grippe provoque de la toux si elle n’est pas soignée. C’est la traduction
du fait qu’une maladie a des symptômes (ou plus exactement que le symptôme
auquel on s’intéresse est un symptôme de grippe). Le deuxième terme traduira
que la bronchite provoque aussi de la toux si elle n’est pas soignée, et que l’effet
de toux de la bronchite n’est pas annulé par l’effet partiel du traitement de la
grippe. Ce deuxième terme nous montre comment traduire les effets partiels d’un
traitement.
(c) Donner l’axiome gouvernant l’évolution de ASymptome(fievre,s).
Aide: Ici la conjonction sera une disjonction de quatre termes. Les deux
premiers correspondront au fait qu’on a de la fièvre si on a une pneumonie ou
une angine non soignée. Le troisième correspondra au fait qu’on a de la fièvre
si on a une grippe non soignée et qu’on a pas pris de traitement contre l’angine
(qui a pour effet partiel d’annuler le symptôme de fièvre pour la grippe). Enfin
le quatrième terme traduira une contre-indication. Il correspondra donc au fait
4
que l’on a de la fièvre si on a pris un traitement contre la grippe alors qu’on avait
une bronchite.
(d) Donner les axiomes gouvernant les évolutions des symptômes restants.
(e) Donner l’axiome général donnant l’évolution d’un symptôme quelconque y.
Aide: On se servira de
• la fonction booléenne effets(y,m), qui renvoie vrai si y est un effet de m,
• la fonction booléenne soinPartiel(m1 ,m2 ,y), qui renvoie vrai si le traitement de m1 a un effet partiel annulant le symptôme y quand le patient
souffre de la maladie m2 .
• la fonction booléenne effetSecondaire(m1 ,m2 ,y), qui renvoie vrai si le
traitement de m1 a un effet secondaire provoquant le symptôme y quand le
patient souffre de la maladie m2 .
On aura donc dans la condition, une disjonction de deux conjonctions.
La
première conjonction correspond au fait que le symptôme y se manifeste s’il existe
une maladie m contractée par le patient et non soignée qui a y pour symptôme,
et qu’aucun des traitements qui ont pour effet partiel d’annuler y quand m est
présente n’a été prescrit par la dernière action. La deuxième conjonction exprime
le fait que le symptôme se manifeste aussi si l’on a appliqué le traitement d’une
maladie m1 ayant pour effet secondaire y quand m2 est présente et que justement
le patient souffre de m2 .
3. Programmation:
(a) Programmer les fonctions booléennes effets(y,m), soinPartiel(m1,m2 ,y)
et effetSecondaire(m1,m2 ,y).
(b) On considérera par la suite qu’une situation est caractérisée par
son état, c’est-à-dire la liste de tous les fluents de maladies et de
symptômes qui sont vrais dans cette situation.
Programmer la fonction booléenne appliquerActionMaladie(a,s,m)
qui, à partir d’une situation s et d’une action a, renvoie la valeur de
vérité du fluent AMaladie(m,do(a,s)).
Aide : On pourra se servir de la question (2a) qui indique dans quelle conditions
cette fonction est vraie.
(c) Programmer la fonction booléenne appliquerActionSymptome(a,s,m)
qui, à partir d’une situation s et d’une action a, renvoie la valeur de
vérité du fluent ASymptome(m,do(a,s)). On s’appuiera sur l’axiome
général d’évolution des fluents de symptômes (question , et les fonctions effets(y,m), soinPartiel(m1,m2 ,y) et effetSecondaire(m1,m2 ,y).
(d) Programmer la fonction do(a,s) qui, à partir d’une situation s, renvoie la situation do(a,s).
Aide: On pourra se servir des deux fonctions précédentes (et supposer qu’on a
accès à la liste de toutes maladies et tous les symptômes possibles).
4. Programmation: Simulation de traitement.
Programmer un simulateur qui,
5
(a) Permette de spécifier une situation initiale donnée correspondant aux
maladies dont souffre le patient (par fichier de configuration, menu,
ou au pire, directement dans le code - attention il faudra être capable de renseigner rapidement une situation initiale pendant la soutenance)
(b) Affiche ensuite les symptômes correspondant à ces maladies initiales.
(c) Demande à l’utilisateur de choisir un traitement.
(d) Annonce le résultat du traitement (symptômes et maladies dans la
nouvelle situation).
(e) Itère les demandes de traitements jusqu’à ce que le patient soit guéri.
3
Soutenance
Le groupe est encouragé à préparer sa soutenance afin d’éviter tout dysfonctionnement. Le rapport pourra être rendu lors de la soutenance. Lors de celle-ci, il
sera demandé :
1. D’ajouter une nouvelle maladie et un traitement correspondant (avec effets
partiels et effets secondaires), spécifiés par l’examinateur, aux données de
base.
2. De faire la simulation avec des maladies de départ et une séquence de
traitement donnés par l’examinateur.
6
Téléchargement