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
homme
etfemme
, 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).