Travaux pratiques 4 Systèmes experts et Construction de modèles - limsi
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
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