Intelligence Artificielle AI - Prolog : TP1 PROLOG
Télécharger PDFIntroduction à Prolog : Exercices Pratiques
Blandine Ginon, Amjad Rattrout, Nadia Kabachi et Alain Mille – M1 Info/BIA/2012
Ce travail pratique (TP) vise à familiariser avec l’environnement de Prolog à travers des programmes simples.
Exercices de Base
Exercice A : Relations Familiales
Voici un programme définissant des relations de parenté et permettant de trouver un grand-père :
pere(charlie, david). pere(henri, charlie). grandpere(X, Y) :- pere(X, Z), pere(Z, Y).
Pour exécuter ce programme, tapez-le dans un éditeur de texte simple et sauvegardez-le dans un fichier avec le suffixe .pl, par exemple prprog.pl. Ensuite, lancez Prolog et consultez le fichier avec la commande :
?- consult('prprog.pl').
Exemples d’interrogations et de réponses :
?- pere(X, Y). X = charlie, Y = david ; X = henri, Y = charlie ; No. ?- grandpere(henri, X). X = david ; No. ?- halt.
Exercice B : Habitants et Capitales
Ce programme associe des personnes à des villes et vérifie si une personne habite dans une capitale :
habite(jean, paris).
habite(hans, munich).
habite(juan, madrid).
capitale(paris).
capitale(madrid).
habite_capitale(Qui) :-
habite(Qui, Qqpart),
capitale(Qqpart).
Consultez le fichier avec :
?- consult('dxprog.pl').
Exemples d’interrogations et de réponses :
?- habite(jean, paris). Yes. ?- habite(jean, Qqpart). Qqpart = paris ; No. ?- habite_capitale(Qui). Qui = jean ; Qui = juan ; No. ?- habite(Qui, paris). Qui = jean ; No. ?- habite(_, Qqpart). Qqpart = paris ; Qqpart = munich ; Qqpart = madrid ; No. ?- habite(Qui, Qqpart), capitale(Qqpart). Qui = jean, Qqpart = paris ; Qui = juan, Qqpart = madrid ; No. ?- halt.
Exercice C : Les Mutants
Ce programme génère des noms hybrides d’animaux en combinant leurs débuts et fins :
non_vide([_|_]).
mutant(S) :-
animal(D),
animal(F),
append(Debut, Milieu, D),
non_vide(Debut),
non_vide(Milieu),
append(Milieu, _, F),
append(Debut, F, M),
name(S, M).
animal("alligator").
animal("lapin").
animal("tortue").
animal("pintade").
animal("cheval").
Consultez le fichier avec :
?- consult('mutants.pl').
Exemple d’interrogation :
?- mutant(X). X = alligatortue ; X = lapintade ; X = chevalligator ; X = chevalapin ; No.
Manipulation de Listes
Reprenez les programmes du TD6 (Prolog) et testez-les pour consolider vos connaissances sur la manipulation des listes.
FAQ
1. Qu’est-ce que Prolog ?
Prolog est un langage de programmation logique utilisé pour la résolution de problèmes basés sur des règles et des faits. Il est particulièrement efficace pour le traitement symbolique et les applications nécessitant une logique déclarative.
2. Comment consulter un fichier dans Prolog ?
Utilisez la commande consult('nom_du_fichier.pl') pour charger un fichier contenant des règles ou des faits dans l’environnement Prolog.
3. Que signifie non_vide([_|_]) dans Prolog ?
Cette règle vérifie si une liste n’est pas vide. La syntaxe [_|_] signifie qu’elle contient au moins un élément (tête) et une sous-liste (queue).