Travaux pratiques 4 Systèmes experts et Construction de modèles - limsi

 
CONTINUER À LIRE
Sup Galilée                                                                              INFOA2
Année 2021-2022                                                                            MRC

                      Travaux pratiques 4
           Systèmes experts et Construction de modèles

     A la fin du TP, vous devez déposer votre travail sur l’ENT :
     https://moodlelms.univ-paris13.fr/course/view.php?id=1494 .

Exercice 1
   Reprendre l’exercice 1 du TP précédent pour l’implémenter en Prolog.
  — L’utilisation de Prolog est présentée à la page 5. Après avoir lu la présentation, vous
    commencerez par tester l’exemple fourni.
  — Construire la base de faits et de règles.
  — Vérifiez les réponses aux questions précédentes à l’aide de Prolog

Exercice 2
   Soit la base de règles :

R1 : si fleur et graine alors phanérogame
R2 : si phanérogame et graine nue alors sapin
R3 : si phanérogame et 1-cotylédone alors monocotylédone
R4 : si phanérogame et 2-cotylédone alors dicotylédone
R5 : si monocotylédone et rhizome alors muguet
R6 : si dicotylédone alors anémone
R7 : si monocotylédone et non rhizome alors lilas
R8 : si feuille et fleur alors cryptogame
R9 : si cryptogame et non racine alors mousse
R10 : si cryptogame et racine alors fougère
R11 : si non feuille et plante alors thallophyte
R12 : si thallophyte et chlorophylle alors algue
R14 : si thallophyte et non chlorophylle alors champignon
R15 : si non feuille et non fleur et non plante alors colibacille

  1. Trouvez le nom des plantes décrites dans la base de règles. Vous utiliserez la ressource en
     ligne suivante (https://www.cactuspro.com/glossaire.html) si vous avez besoin de la
     définition de certains termes figurant dans cette base de règles.
  2. Déterminez la plante ayant les caractéristiques suivantes : rhizome, fleur, graine, 1-cotylédone.
  3. Que doit contenir la base de faits pour pouvoir trouver qu’il s’agit d’une plante et que
     c’est du lilas ?
  4. Réalisez l’exercice en prolog.

                                                1
Exercice 3
    L’objectif est d’expérimenter des systèmes experts (SE) existants et comprendre leur fonc-
tionnement via le site http://www.exsys.com/demomain.html
  — Commencez en choisissant le SE vous permettant de choisir un chien http://www.exsys.
    com/Demos/Dogs/DogTitle.html
    Testez-le en répondant librement aux questions posées.
    Etablissez l’arbre de recherche traduisant le raisonnement du système à partir des ques-
    tions posées.
    Ecrivez les règles correspondant à l’arbre de recherche.
  — Pour finir testez http://www.20q.net/. Dans la rubrique « Play Classic 20Q by choosing
    a language below », sélectionnez « Penser en Français » et déterminez le fonctionnement
    du jeu

Exercice 4
   L’objectif de l’exercice est de structurer une expertise à partir d’un texte :
   « ... je regarde régulièrement l’état des pneus de mon vélo, je maintiens leur pression à 3 bars
   et si je constate une usure due à un gros coup de frein, je change la chambre à air ; je graisse
   la chaîne et le dérailleur s’ils sont secs ; je vérifie mes roues et, s’il le faut, je resserre les rayons
   pour éviter que la roue soit voilée ... ».
  1. Relevez les mots utilisés pour décrire cette expertise.
  2. Répartissez les en concepts.
  3. Donnez une description de ces concepts.
  4. A partir des éléments à votre disposition, proposez une définition intensionnelle d’un vélo
     et des concepts associés, par propriété et par schéma.
  5. Organisez ces concepts et caractérisez les relations qui lient les concepts entre eux.

                                                   2
Exercice 5
   L’objectif de cet exercice est de construire un modèle conceptuel de la vie sauvage.
   Il s’agit d’expliciter toutes les connaissances contenues dans ce texte qu’elles soient explicites
où implicites afin de répondre à des requêtes concernant la vie sauvage.
   A partir d’une interview réalisée auprès d’un gardien du Parc national Kruger (Afrique du
Sud), on sait que :
  — Animal, Herbivore, Carnivore, Girafe, Eléphant, Lion, Plante, Arbre
  — Un arbre comporte des branches.
  — Une branche comporte des feuilles.
  — Herbivore : Animal qui ne mange que des plantes ou des parties de plantes
  — Carnivore : Animal qui ne mange que des animaux
  — Omnivore : Animal qui peut manger des animaux, des plantes ou des parties de
  — plantes
  — Girafe est un herbivore
  — Elephant est un herbivore
  — Lion est un animal qui ne mange que des herbivores
  — Leopard est un carnivore
  — Hyene
  — Girafe ne mange que des feuilles
  — Elephant ne mange que des feuilles et des herbes
  — Antilope ne mange que de l’herbe
  — Gorille est un omnivore
  — Humain peut manger de tout à l’exception d’autres humain
  — Cannibale peut manger de tout
  — Un quadrupède possède 4 pattes. Un bipède possède 2 pattes
  — Les Elephant, Lion, Zèbre, Girafe sont des quadrupèdes
  — Un lion peut vivre seul ou au maximum avec 20 individus
  — L’habitat de la hyène est la savane
  — Un organisme vivant a exactement un nom scientifique.
  — La girafe a pour nom scientifique Giraffa camelopardalis.
  — Le lion a pour nom scientifique Panthera leo.
  1. Définir les requêtes auxquelles votre modèle permettra de répondre.
  2. Etudiez les primitives nécessaires à la modélisation
       (a) Identifiez les primitives : concept, propriétés les caractérisant et des relations entre
           concepts
       (b) Proposez une organisation des primitives identifiées permettant de répondre aux
           requêtes que vous aurez définies à la question 1

                                                 3
Questions de cours à préparer
 Question 1: Que modélisent les bases de faits et les bases de règles ?
 Question 2: Dans un système à base de connaissances, quelle est l’utilité de méta-règles ou
             de méta-connaissances ?
 Question 3: Quelles sont les différentes techniques de résolution de problème pouvant être
             mises en œuvre dans un système à base de connaissances ?
 Question 4: Pourquoi est-il nécessaire de prendre en compte les régimes de contrôle lors de
             la mise en œuvre d’un système à base de connaissances ?

                                             4
Présentation et utilisation (simplifiée) de Prolog
    Prolog est un langage de programmation permettant de résoudre des problèmes pouvant
être exprimés à l’aide d’expressions logique.
    Le principe d’un programme Prolog est de décrire le problème à l’aide de faits et de formules
logique. Soit par exemple, le code du programme suivant :
%% FAITS
hors_d_oeuvre(artichauts_melanie).
hors_d_oeuvre(truffes_sous_le_sel).
hors_d_oeuvre(cresson_oef_poche).
viande(grillade_de_boeuf).
viande(poulet_au_tilleul).
poisson(sole_meuniere).
poisson(bar_aux_algues).
dessert(sorbet_aux_poires).
dessert(fraises_chantilly).
dessert(melon_en_surprise).

%% REGLES LOGIQUES
plat(P) :- viande(P).
plat(P) :- poisson(P).
repas(E, P, D) :- hors_d_oeuvre(E), plat(P), dessert(D).
    Dans les salles de TP, vous disposez de l’interpréteur Prolog SWI-Prolog. Celui-ci s’exécute
à l’aide de la commande prolog dans un terminal.

Composition d’un programme Prolog
   Un programme Prolog est composé de faits et de règles logiques représentant des clauses de
Horn (il y a au plus un littéral positif).
  — Chaque fait est une clause de Horn positive (valeur de vérité : vrai). Syntaxiquement, il
     se termine par un point (.) :
     hors_d_oeuvre(artichauts_melanie).
     viande(grillade_de_boeuf).
    Ici, on indique que les artichauts_melanie sont des hors d’œuvre et qu’une grillade_de_boeuf
    est une viande.
    NB : les faits doivent être en minuscule. Les lettres majuscules sont réservées pour spécifier
    des variables (X, Plat, etc.).
  — Chaque règle logique est une clause de Horn strict, composé d’un littéral positif et d’au
    moins un littéral négatif. Syntaxiquement, le littéral positif est à gauche. Il est séparé des
    littéraux négatifs par :-. Les littéraux négatifs sont à droite (séparés par des virgules).
     plat(P) :- poisson(P).
     repas(E, P, D) :- hors_d_oeuvre(E), plat(P), dessert(D).
     Ici, on spécifie qu’un poisson est un plat, et qu’un repas est défini comme un hors
     d’œuvre, un plat et un dessert.
   La résolution de problème ou une question est une liste de buts correspondant à une clause
de Horn négative.
   Les lignes contenant des commentaires doivent commencer par le caractères %.

                                               5
Utilisation de la commande prolog
 — Chargement d’un fichier. On peut définir une base de faits et de règles dans un fichier
   dont l’extension est .pl (NB : il n’est pas possible d’y inclure des buts). Le chargement
   du fichier se fait à l’aide de l’une des deux commandes suivantes :

    consult(Repas).

    %% ou

    [Repas].

    Il est également possible de passer en argument de la commande prolog, un fichier conte-
    nant une base de faits.
 — Ajout interactif de faits. Pour cela, il faut utiliser l’une des deux commandes suivantes :

    consult(user).

    %% ou

    [user].

    puis on indique les faits et les règles.
 — Résolution de problèmes. Pour cela, il faut indiquer le but à atteindre ou le fait à
   vérifier.
   Par exemple, on peut vérifier que les artichauts mélanie sont bien un hors d’œuvre :

    ?- hors_d_oeuvre(artichauts_melanie).
    true.

    On peut également obtenir les viandes :

    ?- viande(X).
    X = grillade_de_boeuf ;
    X = poulet_au_tilleul.

    NB : en tapant sur ENTER, on se limite à la première réponse, tandis qu’en tapant sur
    ESPACE, on obtient la réponse suivante.
 — Pour sortir de prolog, il suffit de taper CTRL-D ou halt. .

Compléments
 — le caractère _ est utilisé pour vérifier l’existence de faits. Par exemple :

    viande(_).

 — le prédicat not() ou \+ permet d’exprimer un fait non prouvable.
 — la commande listing. permet d’obtenir l’ensemble de clauses du programme courant.
 — La page suivante founit une description plus détaillée de l’utilisation de prolog : http:
   //www.gecif.net/articles/linux/prolog.html .

                                               6
Vous pouvez aussi lire