déc 20 2007

Système Expert en Smalltalk

Published by Romain Bouleis at 11:17 under Developpement

Système expert de diagnostic de panne de connexion Internet

Un système expert est un outil permettant de mettre en application un type d’intelligence artificielle. Son rôle est de reproduire le raisonnement d’un expert dans un domaine donné. Le premier système expert se nomme Dendral et permet d’identifier des constituants chimiques.
Pour réaliser une expertise, il doit proposer des solutions à des problèmes qui lui sont posés. Il fait cela en posant des questions aux utilisateurs et en fonction de leurs réponses, pose de nouvelles questions tout en restant cohérent avec les précédentes jusqu’à ce qu’il n’y ait plus de questions cohérentes à poser et qu’il ait proposé une solution. Par exemple, dans le système expert nommé Mycin permettant d’identifier des agents infectieux, une question peut porter sur le type de l’organisme, et propose deux choix, il est un bâtonnet ou une coque. Si la réponse donnée est bâtonnet, une des questions restant possibles ne pourra pas porter sur des médicaments permettant d’éradiquer les coques.
Pour fonctionner, un système expert est représenté par les éléments suivants: une base de connaissances constituée d’une base de faits et d’une base de règles puis un moteur d’inférence.

Lire la suite (pdf)
La base de faits en XML
La base de règles en XML

Mise à jour du 29/12/2007

Ce programme suscitant un peu d’intérêt, je joins les sources complètes. A défaut d’une image de Visual Works, je donne le fichier généré lors d’un « File out…»  du package. Ce procédé permet de garantir la compatibilité entre les différents systèmes d’exploitation.
Afin d’importer ce fichier, Ouvrir un nouveau « System browser»  et créer un nouveau package. Puis, dans le menu « Package» , choisir « File into…»  et selectionner le fichier joint.
Enfin, pour l’utiliser, voici le code à copier/coller (en remplaçant les chemins de vos fichiers XML) dans un workspace (F6 depuis la fenêtre principale) :


faits := FaitsCollection new.
faits load: '/home/uself/AccessoiresLinux/Developpement/Smalltalk/_Perso/faits.xml'.
regles := ReglesCollection new.
regles load: '/home/uself/AccessoiresLinux/Developpement/Smalltalk/_Perso/regles.xml'.
moteur := Moteur new.
lanceur := LanceurModel new regles: regles ; faits: faits ; moteur: moteur.
LanceurSystemeExpert openWithModel: lanceur.

Selectionner le tout, puis un clic droit, « Do it»  permettra de lancer l’interface de manière à gérer les règles et les faits ainsi qu’à lancer le moteur d’inférence.

Pour rappel, ce programme a été développé sous Visual Works 7.5.

Sources système expert

14 responses so far

14 Responses to “Système Expert en Smalltalk”

  1. jean-lucon 27 déc 2007 at 22:50

    bonjour Romain

    je suis intéresse par votre système expert en smaltalk car je suis spécialiste en analyse vibratoire et je recherche à créer gratuitement un système expert sur ce sujet

    seriez-vous pret à me preter, par exemple, votre code source en smalltalk et java pour que je modifie les base de faits et de regles pour en faire un système d’aide au diagnostic vibratoire qui pourrait être disponible sur internet sur votre site.

    salutations
    merci
    jl

  2. Romain Bouleison 28 déc 2007 at 0:44

    Bonsoir,

    Bien entendu, je suis pret a vous fournir mes sources. Malheureusement, elles ne sont disponible qu’en Smalltalk (visualworks 7.5). Le pdf joint à l’article présente les points clés du developpement, mais je mettrai l’image VisualWorks d’ici peux si vous le désirez. Ce système expert est générique et peut-etre utilisé pour votre domaine d’application juste en modifiant la base de règle. Par contre, la retranscription en Java ne sera peut être pas simple car l’évaluation et l’execution d’une règle se fait « à la volée» , sans recompilation.

    Merci de l’intérêt que vous présentez pour ce programme.

    Cordialement,

    Romain Bouleis

  3. jean-lucon 28 déc 2007 at 15:19

    Bonjour Romain,

    merci pour votre réponse

    je suis effectivement interessé par le source en smalltalk (visualworks 7.5 que je viens de télécharger sur mon pc windows)

    n’étant pas un expert en programmation, je souhaite simplement modifer la base de règles pour en faire un début de système expert en analyse vibratoire.

    Est-il possible avec cette version de visualworks 7.5 de compiler le source pour obtenir un fichier executable ?

    salutations
    jl

  4. Romain Bouleison 30 déc 2007 at 1:15

    Bonsoir,

    J’ai mis à jour le billet avec les sources. Ayant développé sous Linux, je n’ai pas mis l’image car elle n’aurai pas été compatible avec Windows, mais un fichier contenant le package.

    Malheureusement, il n’est pas possible d’obtenir un exécutable Smalltalk, il faut nécessairement une machine virtuelle (tout comme en Java). Dans le cas de ce programme, la machine virtuelle doit être Visual Works. C’est très « dommage» , mais nécessaire au vue des fonctionnalités du langage (pas de limite dans la taille des nombres par exemple).

    Si vous décidez de créer des fichiers de règles et de faits pour un système d’analyse vibratoire, je me ferrai un plaisir de les diffuser ici.

  5. Olivieron 30 déc 2007 at 19:21

    Très sympa votre blog Monsieur Bouleis, vraiment !
    Mes amitiés.

    Olivier

  6. Romain Bouleison 30 déc 2007 at 19:25

    Merci beaucoup Olivier !

  7. Tomon 23 jan 2008 at 16:10

    Bonjour,

    J’ai écrit un système expert en php (donc directement utilisable sur un site web). Pour le moment j’ai une version qui est vraiment à l’etat de brouillon mais qui tourne. Si vous etes intéressés je peux vous montrer comment elle marche : si vous voulez porter vos exemples dessus.

    N’ésitez pas à me contacter.

    Tom

  8. Floon 28 jan 2008 at 16:25

    Bonjour Romain,

    Votre projet est très propre, bravo !

    A propos des executable en Smalltalk, il est possible de les construire en utilisant ResourceHacker, délivré par Cincom. Plus d’infos dans le sous-dossier vw7.5nc>Packaging>win . Il faut d’abord utiliser la parcel RuntimePackager pour créer l’image « épurée»  puis sur Windows utiliser ImageCompressor et enfin ResourceHacker. Un peu fastidieux mais ça marche.

    Inconvénient, la virtual machine est inclue dans le .exe donc la taille est théoriquement de 15Mo. Même après compression, ça reste à 5-7Mo

    Florent

  9. Romain Bouleison 28 jan 2008 at 19:22

    Bonjour Flo,

    Je suis un peu pris pour le moment, mais j’essayrai votre solution dès que possible, et si le résultat est concluant, je mettrai l’application exécutable ici.

    Merci pour votre intérêt.

    Romain

  10. KHAWLAon 31 mar 2008 at 12:15

    bonjour
    pouvez vous Monsieur me donner plus d’information a propos ce system surtout les regles et les faits et quelle est la langage utilise(1 ordre ,2ordre00?)
    Merci a l’avance

  11. Teletechnoon 23 juin 2008 at 20:52

    Bonjour,

    Très intéressant ce post, nous avons conçu un système expert sur une base de PHP. Il est capable de s’adapter sur une base de connaissance.

    Le système est donc capable de s’adapter à différentes problématiques.

    Il est à même de poser des questions, d’extrapoler des résultats, de fournir des commentaires ciblés.

    Antoine

  12. soukainaon 18 mai 2010 at 16:49

    Bonjour TOM,

    Faisant suite à votre proposition , je me retrouve apres deux ans ,interessée par votre un système expert en php.
    je suis etudiante .
    Pourriez vosu me l’envoyer svp par email afin de s’inspirer
    je vous serai tres reconnaissante

  13. sarah90on 20 mar 2011 at 18:23

    bonsoir Tom,
    je me présente je suis un étudiante je suis entrain de préparer mon PFE dont le but est de construire un système expert dans le domaine de gestion médicale, s’il vous plait est-il possible de m’envoyer votre travail pour avoir une idée? j’ai de la confiance que ton SE peut m’aider.merci d’avance M.

  14. Houston Virus Removalon 31 mar 2011 at 13:44

    Linky, linky, blogs we likey…

    [...]while the sites we link to below are completely unrelated to ours, we think they are worth a read, so have a look[...]…

Trackback URI | Comments RSS

Leave a Reply