Prolog¶
Pour pratiquer : http://swish.swi-prolog.org/
Notions de bases¶
constante, variable, prédicat
fait :
homme(pac). matiere(ia). enseigne(pac, ia). enseigne(pac, algo). titre(ia, "Introduction à l'IA"). titre(algo, "Algorithmique").
requête :
?- matiere(X) ?- enseigne(X, algo) ?- enseigne(pac, Y), titre(Y, Z)
règle :
matiere(X) :- enseigne(_Y, X) .
exemples plus sophistiqué :
Dans l’application de recherche de chemin, menu Edit > View Prolog Code
Arbre généalogique¶
En utilisant exclusivement deux prédicats unaires
hommeetfemme, et un prédicat binaireparent, représentez l’arbre généalogique des Simpsons, d’après la figure ci-dessous.
Pour démarrer:
homme(bart).
homme(homer).
femme(marge).
parent(bart,homer).
parent(bart,marge).
Avertissement
N’utilisez pas de majuscule pour les noms propres, Prolog les considérerait comme des variables…
Ajoutez ensuite des règles permettant de déduire d’autres prédicats (tels que
père,frèreOuSoeur…), afin d’arriver à déduire :cousin(ling, bart).
Pour démarrer:
père(X,Y) :- parent(X,Y), homme(Y).
Ajoutez enfin des règles permettant de déduire un prédicat binaire ancêtre. Par exemple, pour bart, les faits suivants doivent être déduits :
ancêtre(bart, homer). ancêtre(bart, marge). ancêtre(bart, abraham). ancêtre(bart, mona). ancêtre(bart, clancy). ancêtre(bart, jackie).
L’arbre généalogique des Simpsons¶