Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -149,16 +149,6 @@
"print(\" Objectif : Implémenter un système de diagnostic médical multi-approches\")"
]
},
{
"cell_type": "markdown",
"id": "lecture-configuration",
"metadata": {
"tags": []
},
"source": [
"**Lecture ancrée** : La configuration du notebook indique une version 2.0.0 avec une durée estimée de 3 heures et un total de 20 points, structurant cette séance pratique en une évaluation complète des compétences en IA médicale. Le module Z3 a été importé avec succès, confirmant que toutes les dépendances nécessaires pour les solveurs de contraintes sont disponibles et opérationnelles dans cet environnement. De plus, les objectifs pédagogiques visent à faire implémenter un système de diagnostic médical intelligent combinant plusieurs approches algorithmiques complémentaires."
]
},
{
"cell_type": "markdown",
"id": "2f529696",
Expand Down Expand Up @@ -271,16 +261,6 @@
"print(f\" Protocoles chargés : {len(protocoles_diabete_type2)} sections\")"
]
},
{
"cell_type": "markdown",
"id": "lecture-patient-class",
"metadata": {
"tags": []
},
"source": [
"**Lecture ancrée** : La classe Patient a été définie avec succès comme une dataclass, structurant les données médicales essentielles : âge, glycémie, HbA1c, symptômes et antécédents. Cette structure permet une manipulation facile des profils patients tout au long du processus de diagnostic automatisé."
]
},
{
"cell_type": "markdown",
"id": "18e78368",
Expand Down Expand Up @@ -484,16 +464,6 @@
"print(f\" Règles chargées : {len(agent.regles_diagnostiques)} catégories\")"
]
},
{
"cell_type": "markdown",
"id": "lecture-diagnostic-agent",
"metadata": {
"tags": []
},
"source": [
"**Lecture ancrée** : L'agent de diagnostic a été initialisé avec 3 catégories de règles cliniques chargées à partir des protocoles médicaux standard. Ces règles, basées sur les recommandations de l'OMS et de l'ADA pour le diabète de type 2, forment la base du raisonnement clinique automatisé qui sera utilisé pour classer les patients selon leur niveau de risque et orienter les décisions thérapeutiques de manière personnalisée et très précise."
]
},
{
"cell_type": "markdown",
"id": "488c666b",
Expand Down Expand Up @@ -657,16 +627,6 @@
"print(\"\\n Tests de l'agent de diagnostic terminés\")"
]
},
{
"cell_type": "markdown",
"id": "lecture-agent-diagnostic",
"metadata": {
"tags": []
},
"source": [
"**Lecture ancrée** : L'agent de diagnostic a correctement classé Alice comme ayant un risque normal (glycémie à jeun 85 mg/dL, HbA1c 5.2%) et n'a détecté aucun symptôme. Cette classification correspond aux seuils cliniques standards où une HbA1c < 5.7% indique une glycémie normale."
]
},
{
"cell_type": "markdown",
"id": "19479276",
Expand Down Expand Up @@ -1005,16 +965,6 @@
"print(f\" Hypothèses possibles : {len(astar.hypotheses_possibles)}\")"
]
},
{
"cell_type": "markdown",
"id": "lecture-astar-class",
"metadata": {
"tags": []
},
"source": [
"**Lecture ancrée** : La classe EtatDiagnostic pour A* a été initialisée avec 7 hypothèses possibles, couvrant l'espace des diagnostics différentiels pour le diabète de type 2. Cette représentation permet à l'algorithme de naviguer efficacement dans l'espace des états cliniques possibles."
]
},
{
"cell_type": "markdown",
"id": "5e336442",
Expand Down Expand Up @@ -1141,16 +1091,6 @@
"print(\"\\n Tests de performance A* terminés\")"
]
},
{
"cell_type": "markdown",
"id": "lecture-astar-performance",
"metadata": {
"tags": []
},
"source": [
"**Lecture ancrée** : L'algorithme A* a convergé en 308 itérations avec un temps d'exécution de 25,50 ms pour le patient simple, produisant l'hypothèse `intolerance_glucose` avec un niveau de confiance de 0,8. Ce résultat démontre l'efficacité de la recherche informée dans l'espace des états diagnostiques."
]
},
{
"cell_type": "markdown",
"id": "a595e9f8",
Expand Down Expand Up @@ -1504,16 +1444,6 @@
"print(f\" Patients de référence : {len(genetique.patients_reference)}\")"
]
},
{
"cell_type": "markdown",
"id": "lecture-genetic-class",
"metadata": {
"tags": []
},
"source": [
"**Lecture ancrée** : L'algorithme génétique a été initialisé avec 5 patients de référence qui serviront de base pour l'optimisation des paramètres diagnostiques. Ces patients de référence permettent d'évaluer la fitness des solutions proposées par l'algorithme évolutionnaire."
]
},
{
"cell_type": "markdown",
"id": "1c4e5fb5",
Expand Down Expand Up @@ -1626,16 +1556,6 @@
"print(\"\\n Tests de convergence génétique terminés\")"
]
},
{
"cell_type": "markdown",
"id": "lecture-genetique-convergence",
"metadata": {
"tags": []
},
"source": [
"**Lecture ancrée** : L'algorithme génétique a fait évoluer le fitness de 16,731 à 17,957 entre les générations 0 et 20, montrant une convergence rapide vers une solution optimale. Cette amélioration progressive reflète l'exploration efficace de l'espace des paramètres diagnostiques."
]
},
{
"cell_type": "markdown",
"id": "f499ea4e",
Expand Down Expand Up @@ -1921,16 +1841,6 @@
"print(f\" Protocoles chargés : {len(solveur.protocoles)} sections\")"
]
},
{
"cell_type": "markdown",
"id": "lecture-z3-class",
"metadata": {
"tags": []
},
"source": [
"**Lecture ancrée** : Le solveur Z3 a été configuré avec succès pour la validation des protocoles thérapeutiques. Le module z3 a été importé correctement, permettant l'utilisation des contraintes logiques pour valider les traitements proposés contre les contre-indications médicales et les interactions médicamenteuses."
]
},
{
"cell_type": "markdown",
"id": "9861dd7d",
Expand Down Expand Up @@ -2102,16 +2012,6 @@
"print(\"\\n Tests de validation Z3 terminés\")"
]
},
{
"cell_type": "markdown",
"id": "lecture-z3-validation",
"metadata": {
"tags": []
},
"source": [
"**Lecture ancrée** : Le solveur Z3 a validé avec succès les protocoles thérapeutiques pour les cas complexes, confirmant par exemple que pour un patient de 72 ans avec cardiopathie, la prescription de statines est appropriée (Metformine: False, Insuline: False, Statines: True) avec un objectif HbA1c de 6,0%, seule contrainte satisfaite du protocole — un objectif glycémique jugé réaliste par le solveur. Cette validation par contraintes garantit que les traitements respectent les contre-indications médicales et les interactions possibles."
]
},
{
"cell_type": "markdown",
"id": "ac893b9b",
Expand Down Expand Up @@ -2360,16 +2260,6 @@
"print(\"\\n Pour exécuter le pipeline complet, appelez: main()\")"
]
},
{
"cell_type": "markdown",
"id": "lecture-data-loading",
"metadata": {
"tags": []
},
"source": [
"**Lecture ancrée** : La fonction de chargement des données CSV a été définie pour permettre l'import de profils patients depuis des fichiers externes. Cette capacité est essentielle pour tester le système sur de grands jeux de données cliniques réelles et valider sa robustesse dans des scénarios variés de diagnostic du diabète de type 2."
]
},
{
"cell_type": "markdown",
"id": "1d26cfcb",
Expand Down Expand Up @@ -2543,16 +2433,6 @@
"print(\"\\n Pour exécuter la suite de tests, appelez: tests_automatises()\")"
]
},
{
"cell_type": "markdown",
"id": "lecture-tests-automatises",
"metadata": {
"tags": []
},
"source": [
"**Lecture ancrée** : La suite de tests automatisés offre une validation complète du système en vérifiant l'intégration des quatre approches (agent rationnel, A*, génétique, Z3). Chaque test valide une composante spécifique du diagnostic, assurant ainsi la cohérence et la robustesse du système de diagnostic médical multi-contraintes."
]
},
{
"cell_type": "markdown",
"id": "0b753e08",
Expand Down Expand Up @@ -2596,7 +2476,7 @@
"\n",
"Les compétences développées sont directement transférables à d'autres domaines nécessitant des systèmes de décision intelligents.\n",
"\n",
"---\n",
"***\n",
"**Retour au sommaire** : [Index CaseStudies](../../README.md)\n"
]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,23 +149,6 @@
"print(\" Objectif : Implémenter un système de diagnostic médical multi-approches\")"
]
},
{
"cell_type": "markdown",
"id": "lecture-config-001",
"metadata": {},
"source": [
"**Lecture ancrée — Cellule de configuration (3)**\n",
"\n",
"Le message de sortie confirme que le solveur Z3, essentiel pour la validation par contraintes des protocoles thérapeutiques, \n",
"est correctement importé et opérationnel dans l'environnement. La configuration affichée révèle que ce notebook, \n",
"développé par EPF IA Biomédicale, est à sa version 2.0.0 datée du 4 novembre 2025, avec une durée estimée de 3 heures \n",
"pour un total de 20 points. Ces métadonnées précisent le cadre pédagogique et l'objectif : \n",
"implémenter un système de diagnostic médical combinant quatre approches algorithmiques complémentaires. \n",
"L'Import réussi de Z3 valide la disponibilité des outils de programmation par contraintes nécessaires \n",
"pour la quatrième partie du cas pratique, tandis que la configuration standardisée assure la reproductibilité \n",
"des résultats entre différents environnements d'exécution."
]
},
{
"cell_type": "markdown",
"id": "2f529696",
Expand Down Expand Up @@ -278,24 +261,6 @@
"print(f\" Protocoles chargés : {len(protocoles_diabete_type2)} sections\")"
]
},
{
"cell_type": "markdown",
"id": "lecture-patient-002",
"metadata": {},
"source": [
"**Lecture ancrée — Classe Patient (5)**\n",
"\n",
"L'exécution de cette cellule affiche deux messages clés : \"Structure de données définie\" et \"Protocoles chargés : 4 sections\". \n",
"Ces outputs indiquent que la classe `Patient`, cœur du système de diagnostic, a été correctement définie \n",
"avec tous ses attributs médicaux essentiels (identifiant, nom, âge, glycémies à jeun et postprandiale, HbA1c, \n",
"symptômes, antécédents, date de consultation, pression artérielle et IMC). Les quatre sections de protocoles \n",
"chargées correspondent aux différentes approches à implémenter : l'agent de diagnostic basé sur des règles \n",
"cliniques, la recherche informée par A* dans l'espace des états diagnostiques, l'optimisation évolutionnaire \n",
"par algorithmes génétiques, et la validation formelle par contraintes Z3. Cette structure de données centralisée \n",
"permet de gérer de manière cohérente les informations médicales de chaque patient tout au long \n",
"du processus de diagnostic multi-contraintes."
]
},
{
"cell_type": "markdown",
"id": "18e78368",
Expand Down Expand Up @@ -808,25 +773,6 @@
"print(\"Exercice a completer : heuristique alternative A*\")"
]
},
{
"cell_type": "markdown",
"id": "lecture-genetique-005",
"metadata": {},
"source": [
"**Lecture ancrée — Algorithmes Génétiques dans le Diagnostic Médical**\n",
"\n",
"L'approche par algorithmes génétiques représente une méthode d'optimisation inspirée de la sélection naturelle, \n",
"particulièrement adaptée aux problèmes complexes où les solutions optimales ne peuvent pas être \n",
"trouvées par des méthodes analytiques classiques. Dans le contexte du diagnostic médical, cette approche \n",
"permet d'explorer l'espace des paramètres de diagnostic (seuils glycémiques, pondérations des symptômes, \n",
"priorités thérapeutiques) pour identifier les combinaisons optimales qui maximisent la précision du \n",
"diagnostic tout en minimisant les faux positifs et faux négatifs. Chaque chromosome dans la population \n",
"représente une configuration potentielle du système de diagnostic, et la fonction de fitness évalue \n",
"l'adéquation de cette configuration par rapport aux critères médicaux établis. L'évolution de la population \n",
"au fil des générations permet de converger vers des solutions de plus en plus performantes, offrant ainsi \n",
"une approche flexible et adaptative pour personnaliser le diagnostic selon le profil spécifique de chaque patient."
]
},
{
"cell_type": "markdown",
"id": "b8ffd9c1",
Expand Down Expand Up @@ -1284,43 +1230,6 @@
"- **Robustesse** : Gestion des erreurs et cas limites"
]
},
{
"cell_type": "markdown",
"id": "lecture-validation-004",
"metadata": {},
"source": [
"**Lecture ancrée — Validation et tests**\n",
"\n",
"Chaque partie du système de diagnostic est accompagnée de fonctions de test dédiées, permettant de valider \n",
"le bon fonctionnement des implémentations. Les cellules de test à compléter (telles que \n",
"`tester_agent_diagnostic`, `tester_performance_astar`, `tester_convergence_genetique` et \n",
"`tester_validation_z3`) fournissent un cadre pour évaluer la correction des solutions étudiantes. \n",
"Ces tests vérifient non seulement la fonctionnalité de base, mais également la robustesse des \n",
"algorithmes face à des cas limites et des scénarios médicaux complexes. La validation par Z3, \n",
"en particulier, permet de garantir que les protocoles thérapeutiques respectent toutes les contraintes \n",
"cliniques et techniques, offrant ainsi une assurance formelle de leur validité avant toute application pratique."
]
},
{
"cell_type": "markdown",
"id": "lecture-architecture-003",
"metadata": {},
"source": [
"**Lecture ancrée — Architecture du système**\n",
"\n",
"Le système de diagnostic médical implémenté dans ce notebook repose sur une architecture modulaire \n",
"composée de quatre piliers algorithmiques distincts mais interconnectés. Le premier pilier, l'agent de \n",
"diagnostic rationnel basé sur des règles cliniques, utilise les données structurées de la classe Patient \n",
"pour effectuer une première évaluation rapide. Le deuxième pilier, l'algorithme A*, permet une recherche \n",
"informée dans l'espace des états diagnostiques possibles, optimisant ainsi le chemin vers un diagnostic précis. \n",
"Le troisième pilier, les algorithmes génétiques, introduit une approche évolutionnaire pour optimiser les \n",
"paramètres du diagnostic selon des critères multiples. Enfin, le quatrième pilier, le solveur Z3, \n",
"garantit la validation formelle des protocoles thérapeutiques en vérifiant le respect des contraintes \n",
"médicales, des interactions médicamenteuses et des standards cliniques. Chaque approche apporte une \n",
"dimension complémentaire au processus de diagnostic, permettant une évaluation personnalisée et \n",
"multi-dimensionnelle du diabète de type 2."
]
},
{
"cell_type": "code",
"execution_count": 15,
Expand Down Expand Up @@ -1378,22 +1287,6 @@
"print(\" Pipeline d'intégration à compléter\")"
]
},
{
"cell_type": "markdown",
"id": "lecture-perspectives-006",
"metadata": {},
"source": [
"**Lecture ancrée — Perspectives d'Application Clinique**\n",
"\n",
"Ce système de diagnostic médical multi-contraintes illustre comment les techniques d'intelligence artificielle \n",
"symbolique peuvent être appliquées à des problèmes concrets dans le domaine de la santé. L'intégration de \n",
"l'agent de diagnostic basé sur des règles, de l'algorithme A*, des algorithmes génétiques et du solveur Z3 \n",
"offre une approche holistique pour le diagnostic du diabète de type 2, prenant en compte à la fois les \n",
"données quantitatives (glycémie, HbA1c) et les facteurs qualitatifs (symptômes, antécédents). Cette étude de cas \n",
"montre l'importance de combiner différentes approches algorithmiques pour traiter des problèmes complexes \n",
"où aucune méthode unique ne peut fournir une solution optimale complète."
]
},
{
"cell_type": "markdown",
"id": "0b753e08",
Expand Down
Loading
Loading