Vous n'êtes pas identifié.

Annonces

Les pages de ce Forum sont exploitables par les Navigateurs FireFox, Google Chrome, Opera, Safari, Konqueror, Netscape & MSIE.
  • Index
  •  » Autres SE
  •  » Qu'est-ce qu'un Système Expert ? (Intelligence Artificielle)

#1 [↑] [↓]07/06/2007 21:38:04

Crazy
Super Admin azimuté
Crazy
Lieu: Terre - Système solaire
Date d'inscription: 10/04/2006
Messages: 5712
Site web

Qu'est-ce qu'un Système Expert ? (Intelligence Artificielle)

Le terme d'Intelligence Artificielle traduit la faculté, non naturelle pour un ordinateur, de simuler les activités humaines, particulièrement en ce qui concerne l'aptitude au raisonnement.
Les différents domaines d'étude en Intelligence Artificielle peuvent être classes de la façon suivante :
- Démonstration automatique de théorèmes,
- Synthèse et preuve de programmes,
- Reconnaissance du langage naturel,
- Vision par ordinateur,
- Systèmes Experts.


Ce dernier point est le plus vaste et et le plus représentatif de la notion d'Intelligence Artificielle.
Ses applications sont diverses, les Systèmes Expert sont particulièrement utilises dans des domaines tels que :
- Chimie, biologie, géologie,
- Mathématiques, physique,
- Médecine,
- Informatique
(les annuaires y compris --> On va pouvoir jouer si vous comprenez la suite).

Pour qu'un tel système soit efficace, il faut que ses connaissances soient limitées à un domaine particulier.
Il existe quelques Systèmes Experts dignes de ce nom :
- MYCIN/THYRESIA --> Maladies infectieuses,
- META-DENDRAL --> Chimie organique,
- SU/X --> Exploration spatiale,
- APE --> Système de programmation LISP,
- MECHO --> Résolution de problèmes mécaniques.

Il y en a d'autres...

Pour créer un systeme expert, il est nécessaire de savoir expliquer son raisonnement, de pouvoir dialoguer avec l'expert humain et que le système puisse avoir accès à sa connaissance.
Celle-ci devant être extérieure au corps du programme, sous la forme d'une Base de Données appelée Base de Connaissance.

La Base de Connaissances est généralement scindée en deux parties complémentaires :
- Base de Règles,
- Base de Faits (contenant la connaissance particulière à la matière étudiée).

Les Règles sont de la forme :
SI (PREMISSE) ALORS (CONSEQUENT)
Le programme charge de gérer et d'utiliser les règles de manière à constituer un raisonnement est appelé "MOTEUR D'INFERENCES".
Sont associes à ce programme les modules de dialogue et d'explication.
==> Pour MYCIN, THYRESIAS est le module de dialogue et d'explication.

Il y a quelques années, en 1983, pour être précis, j'ai écrit un Système Expert (je sais donc de quoi je parle) qui traitait de Mathématiques et (p*tain de hasard) de Météo !
Oui - oui, un VRAI Système Expert avec interface de dialogue et tout et tout...

Puisque j'y suis, je vais vous expliquer comment ca marche... Bah oui, cela peut servir et peut donner des idées...

On y va...
Fonctionnement d'un Moteur d'Inférences :
- Evaluations d'arbres (finis et infinis) a l'aide de règles enchainées de manière à obtenir un raisonnement correct, dans lequel les n?uds représentent les faits et les arcs représentent les règles à utiliser (je pense que la, certains sont déjà perdus, mais je ne peux pas redévelopper ici certaines notions élémentaires de mathématiques [théorie des graphes]).

Je continue pour ceux qui ont les bases nécessaires et qui ont compris...
Les NOEUDS peuvent être soit de type ET soit de type OU (bah oui, c'est [par exemple] la base d'un préprocesseur [tel PHP])
Les modes d'évaluation de ces graphes sont :
- chainage avant,
- chainage arrière,
- chainage mixte.


La méthode de chainage avant est la plus naturelle :
BEGIN : Sélection de la (ou des) règle(s) applicable(s) --> CHOIX DE LA REGLE --> Déclenchement de la Règle --> RETURN to BEGIN

Le chainage arrière :
Lorsque le BUT (fait à démontrer) est connu, il est évident que les règles à examiner en premier sont celles qui le comprennent comme CONSEQUENT. Lorsqu'une règle est choisie, les PREMISSES sont examines. Si les PREMISSES sont faux, on choisit une autre règle, sinon, on cherche à les démontrer en utilisant la même méthode.

Le chainage mixte :
Il fait appel aux deux méthodes précédentes. Elles sont combinées et généralisées. Il est aussi possible de faire appel à la technique de META-REGLES qui permet d'éviter l'explosion combinatoire.

Représentation des connaissances :
Objets de la BASE de FAITS :
- Entités logiques :
--> Propositions,
--> Prédicats du 1er ordre.
- Entités discrètes ou numériques.

Une base de faits peut être construite de plusieurs manières différentes. Il est possible de concevoir la BDF suivant la LOGIQUE des PROPOSITIONS, la LOGIQUE d'ORDRE 1 ou d'ordres supérieurs...

Logique des propositions : MOTEUR d'ORDRE 0 (zéro).
Elle est construite à partir de la syntaxe suivante (voir dans mon post précédent) :
REGLE : SI prémisse ALORS conséquent

Logique d'ordre 1 : avec notion de filtrage.
Elle est basée sur l'appairage des PREMISSES avec les FAITS. Ce sont les clauses de Horn :
La partie CONSEQUENT est limitée à un seul PREDICAT.

Ce sont ces types de clauses que manie PROLOG.
Leur principe de résolution est basé sur l'inférence logique : P inter (not)P => Clause vide.

Fonctions Booléennes :
Proches de la Logique des Propositions, elles sont représentées sous la forme de symboles fonctionnels qui expriment la fonction (booléenne) à appliquer. Apparait ici la notion d'ATTRIBUT utilisée dans les MOTEURS de type 1.
(AND, OR, XOR, NOT et toutes combinaisons possibles + Union, Inclusion, Intersection, Exclusion, Appartenance a un ensemble, a une structure [groupe, anneau... Ensembles {réels, rationnels ou complexes, chaines, listes} finis et infinis], etc.)

Les langages de l'Intelligence Artificielle :
Les langages principalement utilisés sont les suivants :
- LISP,
- Prolog,
- Pascal,
- ADA,
- Logo.


On peut bien sur utiliser d'autres langages tels que :
- BASIC (s'il a des fonctions de structure),
- C / C++,
- PHP

Et encore d'autres...

Un exemple : Structure de Prolog :
- Arbres finis et infinis,
- Résolution des équations et inéquations,
- Assertions.

La Machine Prolog :
- Cellule suite de règles,
- Cellule temps (indice du couple en cours),
- Infinité de cellules :
--> Buts(i) : suite de termes (Ui),
--> Système(i) : Système "Si",
--> Règles(i) : règles actives à l? instant i.

Exemple de Moteur :
SYSTEX est le premier Moteur d'Inférences qui ait été réalise par Bernard Fondrillon et moi-même.
Il n'avait pas la prétention d'être une référence dans le domaine du Système Expert, bien au contraire, il ne constituait qu'une approche simpliste de ce type de logiciel.

Le Moteur :
SYSTEX a été écrit en LISP et présente les caractéristiques suivantes :
- Chainage avant,
- Chainage arrière,
- Logique des propositions,
- Logique des prédicats du 1er ordre,
- Utilisation des attributs,
- Evaluation probabiliste des faits et des conséquents,
- Fonctionnement sur prédicats LISP Uniquement.


Une interface en langage naturel (EMOT, comprenant des rudiments d'anglais et de français) était capable de traduire des phrases simples en prédicats LISP et inversement. C'était le programme de dialogue et d'explication.
wink
Alain dit Jesus II (merci Seb)

PS : Pour résumer :
Un Système Expert type est constitue de :
- Base de Connaissance :
--> Base de Faits (les choses connues dans le domaine étudié),
--> Base de Règles (les interactions, les possibilités et les impossibilités [si x alors y {ou z... Mais pas k,...}]).
- Moteur d'inférences (le programme de calcul et d'évaluation des listes de prédicats),
- Programme de dialogue (interface homme-machine),
- Programme d'explication (qui fournit les étapes du raisonnement du moteur, des hypothèses à la conclusion).
(ces deux derniers peuvent être réalisés à partir du même algorithme)


Je suis Bon (avec un grand C) et Immortel... Jusqu'à preuve du contraire ! - I never die...
Chocoku - Sorcier Glouton - Tiger l'Osmose
MSnBetter ThanGoogle - Black Hattitude

I remember and I feel free! - I am the Bleeder of the Lambs!

Hors ligne

 

#2 [↑] [↓]09/06/2007 01:27:28

Horslemonde
Ami qui a vu l'Ours
Horslemonde
Lieu: SDF, près des Ours
Date d'inscription: 14/04/2006
Messages: 418
Site web

Re: Qu'est-ce qu'un Système Expert ? (Intelligence Artificielle)

Dis moi Crazy, SYSTEX était une étude faite quand tu bossais dans un cadre militaire, tu crois qu'il y a prescription pour en parler ?
Pour le plaisir, je te rappelle la résolution du problème des tours de Hanoï en IA. Ici, le language utilisé est l'excellent Visual Prolog
(environnement graphique Windows) :

******************************************************************************/
Implement hanoi
Constants
className = "hanoi".
classVersion = "Version 1.0".

Clauses
classInfo(className, classVersion).

Domains
loc = right; middle; left.

Class predicates
hanoi : (unsigned NumberOfDisks) procedure (i).
Clauses
hanoi(N) :-
N <= 0,
!,
stdIO::write("<p>You must enter positive number.").
hanoi(N) :-
move(N, left, middle, right).

Class predicates
move : (unsigned NumberofDisks, loc Left, loc Middle, loc Right) procedure (i,i,i,i).
Clauses
move(1, A, _, C) :-
!,
inform(A, C).
move(N, A, B, C):-
N1 = N-1,
move(N1, A, C, B),
inform(A, C),
move(N1, B, A, C).

Class predicates
inform : (loc From, loc To) procedure (i,i).
Clauses
inform(Loc1, Loc2):-
stdIO::write("Move a disk from ", Loc1, " to ", Loc2, "<br>").

Class predicates
runme : (core::namedValue_list List) procedure (i).
Clauses
runme(Parmlist) :-
core::string(Value) = namedValue::tryMapLookUp(Parmlist, "nd"),
trap(NumberOfDisks = toTerm(Value), _, fail),
!,
hanoi(NumberOfDisks).
runme(_) :-
stdIO::write("<p>Error while executing Hanoi.exe").

Clauses
run() :-
cgi::init(stream::ansi(core::ansi)),
stdIO::write("Content-type: text/html\n\n<html><body>"),
ParmList = cgi::getParamList(),
runme(ParmList),
stdIO::write("</body></html>").

End implement hanoi

Goal
console::init(),
mainExe::run(hanoi::run).


C'est pas la première qui fait Meuhhh qui fait le plus de lait ! (dicton personnel, copié dans un poulailler)

L'Art du Tricot - Forum Art du Tricot - Annuaire Art du Tricot

Hors ligne

 

#3 [↑] [↓]09/06/2007 22:13:23

Crazy
Super Admin azimuté
Crazy
Lieu: Terre - Système solaire
Date d'inscription: 10/04/2006
Messages: 5712
Site web

Re: Qu'est-ce qu'un Système Expert ? (Intelligence Artificielle)

Si j'en parle, c'est que je le peux (le projet [réalisé dans le cadre du Ministère] n'avait rien de militaire à la base)...
Et je n'ai fourni auncun code source... Je crois n'avoir seulement parlé que de généralités...

[Vous devez être identifié pour voir le texte caché.]
big_smile
Alain AKA Arma


Je suis Bon (avec un grand C) et Immortel... Jusqu'à preuve du contraire ! - I never die...
Chocoku - Sorcier Glouton - Tiger l'Osmose
MSnBetter ThanGoogle - Black Hattitude

I remember and I feel free! - I am the Bleeder of the Lambs!

Hors ligne

 

#4 [↑] [↓]09/06/2007 23:46:22

Olivier Duval
Admin réserviste
Olivier Duval
Lieu: Lille
Date d'inscription: 28/04/2007
Messages: 81
Site web

Re: Qu'est-ce qu'un Système Expert ? (Intelligence Artificielle)

J'ai rien lu c'est trop long, tongue


Olivier Duval, le marketing viral et l'actualité du buzz en direct en un seul clic !
Et si mon Combat Oupouaout III etait le meilleur ? Le premier, le best, le king ...
Le combat Oupouaout est un concours SEO

Hors ligne

 

#5 [↑] [↓]10/06/2007 10:10:26

rgo74
Ami des Alpages
rgo74
Lieu: Toute la Haute Savoie
Date d'inscription: 17/05/2006
Messages: 911
Site web

Re: Qu'est-ce qu'un Système Expert ? (Intelligence Artificielle)

Mais que fait la PM tongue


Hors ligne

 
  • Index
  •  » Autres SE
  •  » Qu'est-ce qu'un Système Expert ? (Intelligence Artificielle)

Pied de page des forums

Powered by PunBB modified
© Copyright 2002–2005, Rickard Andersson
© Interface & Functional Add-ons Copyright 2006-2007, by Crazy


RSS Forum CIGIEMA

© 2006-2012 / A. G.
CiGi€M@®, 1997-2012
IDDN Reproduction totale ou partielle strictement interdite