Guida al Laboratorio
SWIProlog: compilatore prolog, comando: pl
aiuto: man pl e /export/ai/Tutorials/swi-prolog-refman.pdf
YAP: compilatore prolog, comando: yap
aiuto: /export/ai/Tutorials/yap.pdf
FOIL: sistema di programmazione logica induttiva, comando: foil6
aiuto: /export/ai/Tutorials/foil.txt
c4.5: sistema di apprendimento automatico, comando: c4.5
aiuto: man c4.5
weka: suite di strumenti di data mining, comando: weka o icona sul desktop
aiuto: /export/ai/Tutorials/weka.pdf
ALEPH: sistema di programmazione logica induttiva, per eseguirlo copiare
il file aleph.pl dalla directory /export/ia nella propria home, lanciare
YAP o SWIProlog e caricare aleph.pl (con il comando ?-[aleph].)
aiuto: /export/ai/Tutorials/aleph_toc.html
Esercizi Proposti
I seguenti esercizi sono stati risolti utilizzando il sistema
SICStus
Prolog.
-
Sperimentazione del sistema Prolog. A partire da
alcuni fatti del tipo padre(X,Y) e madre(X,Y), si mostri come
ottenere le relazioni nonno/a(X,Y), bisnonno/a(X,Y), nipote(X,Y),
pronipote(X,Y).
Soluzione
-
Si propone di scrivere relazioni sulle liste per determinare
- lunghezza (ricorsivamente ed iterativamente)
- numero di atomi
- appartenenza alla lista o ad un suo elemento (se lista)
- concatenzaione
- inversione (ricorsivamente ed iterativamente)
Descrizione
Soluzione
-
Esercizio di crittoaritmetica
Descrizione
Soluzione
-
Meta-interprete per sistemi esperti, con strategia forward e
backtracking (con e senza spiegazioni delle risposte).
Descrizione
Soluzione
-
Meta-interprete per la scomposizione in sottoproblemi (con e senza
visualizzazione dell'albero and/or)
Descrizione
Soluzione
-
Implementazione di setof senza impiegare setof, bagof, findall.
Soluzione
-
Gioco del tris con strategia minmax
Soluzione
- Gioco del tris con tagli alfabeta
Soluzione