Prolog

IA : créer un système expert avec Excel

Généralités

Le système expert peut être imaginé comme une mémoire contenant l'expérience d'un spécialiste pour pouvoir résoudre certains problèmes. Il se distingue de l'IA d'aujourd'hui principalement parce qu'il s'agit de récolter explicitement les règles qu'utilise l'expert. Aujourd'hui, les machines essaient de « déduire les règles » à partir d'exemples.

Il ne s'agit pas non plus de programme au sens où la liste des opérations de comparaison de chaque règle serait explicitée dans l'ordre.

Un système expert est composé de trois choses :

Vous pouvez avoir plus de précisions ainsi que l'origine de certains exemples ici :

https://perso.liris.cnrs.fr/alain.mille/enseignements/DEA-ECD/site_ia_emiage/session1/syst%e8mes_experts.htm

En transformant une règle en formule on aura transformé excel en un système expert sans même programmer.

Dans un système expert les règles sont le plus souvent du type

Plus généralement

On va travailler avec 3 opérateurs

Pour utiliser le classeur, vous devez simplement remplir les colonnes avec les conditions en les écrivant et en choisissant dans des menus « et » « ou » « non ».

Base des règles :

R1 : A --> E si A et A alors E
R2 : B --> D si B et B alors D
R3 : H --> A si H et H alors A
R4 : E et non(G) --> C si E et non(G) alors C
R5 : non(E) et K --> B si non(E) et K alors B
R6 : D et E et K --> C si D et E alors DE

si DE et K alors C

R7 : G et K et F --> A

si G et K alors GK

si GK et F alors A

On voit que les règles 1-2-3 ont été remplacées par des règles répétant l'entrée unique :

si A alors E a été remplacée par si A et A alors E

les règles 6 et 7 ont été éclatées en introduisant des variables intermédiaires DE et GK.

Les variables A, B, C , D, E sont des résultats de règles, donc la base de faits doit contenir uniquement G H K F

les règles 3 et 7 donnent toutes les deux A, dans notre système ce n'est pas possible d'avoir un doublon. Il suffit d'utiliser des variables intermédiaires et une nouvelle règle avec un OU

Si H et H alors A

Si GK et F alors A

Si H et H alors A1

Si GK et F alors A2

Si A1 ou A2 alors A

Le résultat dans Excel est le suivant :

Prolog

La saisie des règles se fait simplement en indiquant

Prolog

Ces formules sont pareilles pour les deux variables en entrée :

Comme on le voit, il suffit de recopier ces formules et les calculs se feront automatiquement. L'outil qu'utilise Excel pour résoudre les formules remplace le moteur de calcul de prolog et il suffit de modifier une valeur dans la base de faits pour que toutes les règles soient automatiquement mises à jour.

Voici deux exemples supplémentaires :

Prolog

Prolog

Exemple tiré d'un code prolog où l'on voit la création de variables intermédiaires :

https://github.com/Mentra20/Projet-Systeme-Expert-L2

Ce projet est basé sur le logiciel Prolog, ici les règles sont utilisées avec :- pour le "si" la virgule pour le "et" le point virgule pour le "ou"

prolog règle
oiseau :- vertebre, tetrapode si vertébré et tetrapode alors oiseau

Ici les règles comprennent beaucoup de possibilités, comme mon classeur excel se base sur des règles ayant deux entrées au maximum, cela va demander des variables intermédiaires.

%----- Base 1 ------

oiseau :- vertebre, tetrapode, ovipare, bipede, aile, bec, plumes.

mammifere :- vertebre, tetrapode, allaite.

poisson :- vertebre, aquatique, ovipare, branchie, nageoires.

reptile :- vertebre, tetrapode, sang_froid, ecaille, ovipare.

arthropode :- exosquelette, invertebre, corps_segmente.

%----- Base 2 ------

placentaires :- mammifere, placenta.

ongule :- placentaires, sabot.

marsupiaux :- mammifere, larve_marsupiale, poil.

insecte :- arthropode, six_pattes, taille_petite.

crustaces :- arthropode, aquatique, tetrapode.

Prolog

Variables quantitatives (numériques).

Si vous avez des règles sur des variables quantitatives, il suffit de mettre une formule faisant référence à cette valeur. Pour une variable qui doit renvoyer VRAI si le poids est inférieur à 10 grammes, par exemple, vous saisissez la valeur non pas colonne Q comme habituellement mais par exemple colonne H et ici en Q8 la nouvelle variable « léger » sera le résultat de la formule =H8<10

Prolog

On peut généraliser cette formule en utilisant des catégories via des formules « si » et des intervalles :

Ici on peut voir que la valeur de la variable quantitative température en entrée est transformée en une des 5 modalités possible à travers l'indication d'un intervalle.

Prolog

De même la variable résultat « ne pas chauffer » va être associée à une température de 18° via un processus symétrique pour une température de consigne.

Ces outils sont limités dans le travail avec des valeurs numériques du fait de la discontinuité. Par exemple notre variable « léger » va être fausse à 1 kg comme à 11 grammes. Pour éviter ces effets de seuils, au lieu de continuer avec une logique booléenne, il a été créé la logique floue.

Dans ce cas, à la place de valeurs discrètes VRAI/FAUX, on va avoir un degré d'appartenance à une variable entre 0% et 100%

Les opérateurs deviennent des calculs :

Prolog

Ici on voit comment est traitée la variable d'entrée : au lieu que chaque modalité de la température soit vraie ou fausse, ce sont des trapèzes qui indiquent dans quelle catégorie doit être rangée la mesure.

Si la mesure était exactement au centre de l'intervalle (par exemple ici 10°), on aurait température 2=100%. Dans le cadre du trapèze, une partie de l'intervalle va renvoyer 100%. On règle cette partie via la valeur du « plat » ici en G3. En dehors de ces zones une valeur numérique va être distribuée en probabilité sur deux modalités.

Ici pour 14° sur l'axe des abscisses, on remonte vers la courbe verte et l'intersection se fait pour 35.7% pour température 3 et le complémentaire 64.3 pour température 2.

Ici l'exemple montre comment on travaille avec les règles floues avec l'opérateur environ.

Il faut à la fin faire un travail de « défuzzification » pour retransformer des modalités qui arrivent sous forme de pourcentage en valeur numérique. Ici c'est une moyenne de chaque centre d'intervalle pondérée par la probabilité de chacune de ses modalités.

Vous trouverez à partir de la page sur l'intelligence artificielle une page sur la logique floue. .

Si vous avez un projet une question, un commentaire n'hésitez pas à me contacter : voir mes coordonnées.

Téléchargement

Le classeur présenté ici avec les formules :

Système_expert.zip