IA : VBBRAINBOX : UN SYSTÈME EXPERT D'ORDRE 0+ EN VB .NET

Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
- - Dernière réponse : cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
- 15 mars 2015 à 09:31
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/6949-ia-vbbrainbox-un-systeme-expert-d-ordre-0-en-vb-net

Afficher la suite 
cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
-
Oops ! pour la version vb6, il faut renommer AffRhgles.frm en AffRègles.frm (la prochaine fois, j'enlèverais les accents !)
Saros
Messages postés
921
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
23 septembre 2010
-
Vraiment bien !
Un peu lent (ça doit être mon ordi qui rame), mis bon...
Pour le truc d'assurance, je me demande si en effet les compagnies d'assurance utilisent ce genre de programme pour calculer leur taux...
A vrai dire je ne peux pas trop dire sur l'adaptation .NET parce que je n'ai pas .NET...
A+
Saros
CausPupus
Messages postés
32
Date d'inscription
vendredi 13 décembre 2002
Statut
Membre
Dernière intervention
31 décembre 2005
-
J'ai pas compris l'interet de ce programme si quelqu'un peut me donner un exemple concret : a quoi ca sert exactement, l'utilité....

Merci
cs_mage
Messages postés
22
Date d'inscription
vendredi 7 juin 2002
Statut
Membre
Dernière intervention
23 novembre 2003
-
bien ton programme surtout quand tu fait quitter et cela fait transparant moi je dit bravo
fgrattery
Messages postés
1
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
15 mai 2003
-
... On s'en fout de l'effet de transparence ! T'as vu que ça d'intéressant ?
cs_chocobo
Messages postés
126
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
4 mars 2005
-
moi non plus j'ai pa
cs_chocobo
Messages postés
126
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
4 mars 2005
-
vraiment compri comment ca marchait mais
j'avoue qu'j'ai pas tellement cherché
=
cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
-
Je crois qu'il y a un petit pb avec la base de données : elle n'est pas lue par le logiciel dans un Windows vide (sans VS .NET), je mettrais à jour quand j'aurais trouvé la solution au problème.
CausPupus
Messages postés
32
Date d'inscription
vendredi 13 décembre 2002
Statut
Membre
Dernière intervention
31 décembre 2005
-
Pas mal
cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
-
Lorsque Visual Studio .NET n'est pas installé sur la machine, MDAC 2.7 (composants d'accès aux données, version .NET) doit alors être installé pour que VBBrainBox puisse lire la base de données :
www.microsoft.com/downloads/details.aspx?FamilyID=b41304ca-874f-421d-8820-182f179779a4&DisplayLang=fr (5 Mo)
J'ai mis à jour le package .msi : 793 Ko, tout devrait fonctionner maintenant.
Mumuri
Messages postés
321
Date d'inscription
mercredi 9 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2008
-
C'est utilisé par l'ANPE pour calculer les fonds qu'ils doivent donné au chomeur en fonction de leur situations, c'est aussi utilisé pour faires des diagnostiques en medecine quand les cas sont trop compliqué, il rentre les données du patient et ca sort la maladie ...

Pour ce qui est de la source, je vais la télécharger et je verrais aprés
Mumuri
Messages postés
321
Date d'inscription
mercredi 9 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2008
-
Méme sans avoir regardé le code, je t'ai mis 10 pour remonter le 1/10 fo etre débile pour mettre un 1 a un systeme expert, vous avez pas idée des applications les gars
cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
-
L'exe ne fonctionne plus sur certain poste (il ne trouve plus la version de la BD ???), il faut juste le recompiler ! (je ferais une mise à jour à l'occasion)
djameldib
Messages postés
10
Date d'inscription
jeudi 15 février 2007
Statut
Membre
Dernière intervention
24 février 2007
-
quelqu'un pourait il m'éxpliquer comment ca marche, j'ai besoin du manuel en quelque sorte.

PS j'en est vraiment besoin
cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
-
Regarde l'application minimale : c'est tout ce qu'il faut pour commencer. Ensuite, si tu veux la modifier pour faire des tests, il faut Access (il existe une version gratuite : cherche Runtime Access dans la doc).
Tiens-moi au courant si ça marche ou pas.
cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
-
Le runtime d'Access est ici (le lien dans la doc ne marche plus) :
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B243957
djameldib
Messages postés
10
Date d'inscription
jeudi 15 février 2007
Statut
Membre
Dernière intervention
24 février 2007
-
Merci Patrice,
En fait je suis en train de réaliser un systeme expert interactif d'aide à la prise de décision, le tout se fait sur une carte géographique; ceci ressemblera à un jeux de guere ou les forces alliées réalisent des actions (mouvement, tire, ...); le systeme expert doit proposer en fonction des faits (armement ami,armement enemi,position enemi, ...) des actions possible à réaliser (les conclusions) ,c'est là que le joueur choisira se qu'il veut faire.
Auriez vous une approche à me conseiller.Si oui contactez moi : djameldib1@yahoo.fr
Je vous ferai part de mon état d'avancement. MERCI
djameldib
Messages postés
10
Date d'inscription
jeudi 15 février 2007
Statut
Membre
Dernière intervention
24 février 2007
-
Merci Patrice99, je te remercie pour ton message.
J'ai parcouru ton application, et vraiment "BRAVO", néanmoins je ne comprends pas la signification du champ "bintermediaire" dans la BD.
cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
-
Dans la table Variable (Table des variables d'une application), le champ Booléen bIntermediaire indique s'il s'agit d'une variable intermédiaire, c'est-à-dire une variable déduite par le système expert (et non un fait initial). Cela permet de trier les variables lorsque l'on conçoit des sessions ou des règles.
djameldib
Messages postés
10
Date d'inscription
jeudi 15 février 2007
Statut
Membre
Dernière intervention
24 février 2007
-
Merci Patrice99, tout est clair maintenant, je sais que je te l'ai déjà dit mais vraiment c'est super.
Je suis maintenant en train de rendre la base de fait dynamique, c'est-à-dire qu'au lieu d'avoir des faits figés, je vais changé le contenu de la table Fait ( les faits serons parmi nos variables ) juste avant l'exécution du moteur d'inférence.
Pouvez vous m'aider, je bloque...
Pour mieux expliquer : voici le rapport que j'ai eu :


Rapport d'expertise de VBBrainBox
Date : 22/02/2007 21:39:35
------------------------------------------------------------
Application : Offensive
Description : Nous allons attaquer
Date : 21/02/2007
Session : Session1
------------------------------------------------------------

Faits initiaux :

Nombre de faits initiaux = 5
Nombre de faits initiaux définis = 5
Nombre de faits finaux = 9

DistanceEfficace = 1000
Pluie = "VRAI"
VitesseVentJourJ = 120
VitesseVentLimite = 100
DistanceEnemi = 1500

Rapport d'expertise de VBBrainBox
------------------------------------------------------------
Application : Offensive
Session : Session1
------------------------------------------------------------
Configuration :
Logique non monotone (les faits peuvent changer)
Les règles contradictoires sont autorisées
Logique floue activée (les fiabilités sont indiquées entre parenthèses)
Logique floue interprétée (les faits peuvent changer)
------------------------------------------------------------

Compte-rendu d'expertise

Selon la règle R2 :
si DistanceEnemi > DistanceEfficace
alors BesoinDeSeDéplacer = "VRAI"

Selon la règle R4 :
si Pluie = "VRAI"
et VitesseVentJourJ > VitesseVentLimite
alors MétéoDéfavorableJourJ = "VRAI"

Selon la règle R3 :
si MétéoDéfavorableJourJ = "VRAI"
alors AviationEnemiInactiveJourJ = "VRAI"

Selon la règle R1 (0,8) :
si AviationEnemiInactiveJourJ = "VRAI"
et BesoinDeSeDéplacer = "VRAI"
alors SeDeplacerJourJ = "VRAI" (0,8)

Nombre d'avertissements : 0

------------------------------------------------------------

Bilan des variables : Avant : Après

VitesseVentLimite = 100 : 100
VitesseVentJourJ = 120 : 120
AviationEnemiInactiveJourJ = ? : "VRAI" (R3)
MétéoDéfavorableJourJ = ? : "VRAI" (R4)
DistanceEfficace = 1000 : 1000
Pluie = "VRAI" : "VRAI"
DistanceEnemi = 1500 : 1500
BesoinDeSeDéplacer = ? : "VRAI" (R2)

Variables intermédiaires :

SeDeplacerJourJ = ? : "VRAI" (0,8) (R1)

------------------------------------------------------------

Base de règles : C:\Documents and Settings\Salut chez\Bureau\SE\Applications\VBBrainBox.mdb (version : 1)
Date : 22/02/2007 21:39:35

Règle n° 1 : R1 (0,8) : 21/02/2007

si AviationEnemiInactiveJourJ = "VRAI"
et BesoinDeSeDéplacer = "VRAI"
alors SeDeplacerJourJ = "VRAI"


Règle n° 2 : R2 : 21/02/2007

si DistanceEnemi > DistanceEfficace
alors BesoinDeSeDéplacer = "VRAI"


Règle n° 3 : R3 : 21/02/2007

si MétéoDéfavorableJourJ = "VRAI"
alors AviationEnemiInactiveJourJ = "VRAI"


Règle n° 4 : R4 : 21/02/2007

si Pluie = "VRAI"
et VitesseVentJourJ > VitesseVentLimite
alors MétéoDéfavorableJourJ = "VRAI"


------------------------------------------------------------
VBBrainBox 1.0 par Patrice Dargenton

d'après Turbo-Expert 1.2 pour Windows
(c) Philippe Larvet 1996, 2003

Documentation : VBBrainBox.html
http://patrice.dargenton.free.fr/ia/vbbrainbox/index.html
http://patrice.dargenton.free.fr/index.html
patrice.dargenton@free.fr
------------------------------------------------------------
cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
-
ça m'a l'air bon tout ça, qu'est-ce qui bloque au juste ?
Tu peux essayer d'autres sessions pour voir si les règles marchent bien dans tous les cas.
djameldib
Messages postés
10
Date d'inscription
jeudi 15 février 2007
Statut
Membre
Dernière intervention
24 février 2007
-
Désolé,j'ai du mal m'éxprimer.
En faite, je veux avoir une session vide que je remplirai à ma guise via un formulaire qui s'affichera au tout début, mais je débute en .Net et je suis surtout habituer à Oracle.
Pouvez vous m'aider ou m'indiquer une doc qui pourai le faire.
Ceci sera utile pour faire passer les Faits de ma 2éme partie de projet que je réalise en parallele (les unitées sur la carte géographique aurons des faits à faire passer).
cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
-
Tu peux créer une requête pour affecter les variables à une valeur, et une autre pour effacer ces valeurs, voici le code SQL à mettre :

SELECT Variable.Variable, Fait.Operateur, Fait.Valeur, Fait.Fiabilite
FROM Variable INNER JOIN ((Application INNER JOIN Sessions ON Application.IdApplication Sessions.IdApplication) INNER JOIN Fait ON Sessions.IdSession Fait.IdSession) ON Variable.IdVariable = Fait.IdVariable
WHERE (((Application.Application)='Offensive') AND ((Sessions.NomSession)='Session1'));

UPDATE Variable INNER JOIN ((Application INNER JOIN Sessions ON Application.IdApplication Sessions.IdApplication) INNER JOIN Fait ON Sessions.IdSession Fait.IdSession) ON Variable.IdVariable = Fait.IdVariable SET Fait.Operateur = '=', Fait.Valeur = Null, Fait.Fiabilite = Null
WHERE (((Application.Application)='Offensive') AND ((Sessions.NomSession)='Session1'));

Ensuite sous Access, tu peux directement utiliser ces 2 requêtes, ou bien même créer un formulaire basé sur la requête de définition des variables, avec un bouton pour effacer ces variables qui appelle la requête d'effacement. Sous DotNet, c'est la même chose (mais ce n'est pas aussi simple que sous Access).

La requête de définition des variables te donne une liste des variables de l'application (ce qui ressemblera beaucoup au formulaire actuel de VBBrainBox). Si tu préfères avoir les variables en colonne, il n'est pas possible à mon avis de rassembler toutes les variables en une seule requête éditable : il te faudra donc écrire du code pour mettre à jour chaque variable, ce qui ne sera pas évident à faire, mais cela améliorera probablement l'ergonomie de l'application.
cs_houri
Messages postés
2
Date d'inscription
mardi 24 avril 2007
Statut
Membre
Dernière intervention
1 mai 2007
-
Salut Patrice99, j'ai beaucoup apprécié ton travail. Vraiment excellant. (10/10)
Pourrez tu s'il te plait me faire parvenir le diagramme de classe (représente la structure statique en terme de classes et de relations ) ainsi que les diagrammes de comportement de l'application, ça m?éviterai beaucoup de souci.
Houri2008@yahoo.fr
Merci d'avance...
cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
-
Salut, merci. Ok pour le diagramme de classe... au fait on fait comment pour le générer ? j'ai VS 2003 et VB 2005 Express, on peut le générer avec ? j'ai l'habitude de faire des diagrammes de relation pour les bd mais pas pour la POO, car je n'ai pas bcp de codes en vrai POO actuellement (en tout cas pas de codes très compliqués). VBBrainBox est converti depuis VB6, il n'est pas vraiment optimisé selon les principes de la POO. Pour le diagramme de comportement de l'application, je ne vois pas comment on pourrait le générer facilement en pratique.
cs_houri
Messages postés
2
Date d'inscription
mardi 24 avril 2007
Statut
Membre
Dernière intervention
1 mai 2007
-
salut, je ne sais pas comment le generer automatiquement mais tu peux just donne les noms des classes utilises avec les relations entre elle (heritage...). en faite ca ta pris combien de temps pour faire ce travail. merci
cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
-
J'ai mis 3 mois pour adapter TurboExpert V1.20 en VBBrainBox et faire une doc.

Le plan de la base de données est ici :
http://patrice.dargenton.free.fr/ia/vbbrainbox/index.html#_Toc39118541

La table des matières du programme est ici :
http://patrice.dargenton.free.fr/ia/vbbrainbox/VBBrainBoxSrc.html
Comme il n'y a que 3 classes (clsBD, clsBR et clsDico), il suffit de rechercher ensuite chaque classe dans le code source via le projet VS.Net.
cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
-
100% Reflective Class Diagram Creation Tool
www.codeproject.com/csharp/AutoDiagrammer.asp
cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
-
Nouvelle version : pour Windows 64, il faut forcer le mode 32 bits, j'ai aussi modifier légèrement le code pour éviter l'avertissement sur les retours de fonction.