Docenti: Alberto
Martelli e Pietro Torasso
Scopo: Lo scopo del corso è di sperimentare come
linguaggi logici e ambienti per intelligenza artificiale permettano la
soluzione di particolari classi di problemi e lo sviluppo di sistemi
intelligenti.
Una parte del corso illustra come la programmazione logica possa essere
utilizzata per formulare e risolvere problemi di intelligenza
artificiale, basandosi su tecniche classiche di risoluzione di problemi
e sull'uso della programmazione logica con vincoli.
Una seconda parte presenta ambienti per lo sviluppo di sistemi
intelligenti. In particolare sono presi in considerazione ambienti che
attraverso l'uso di regole di produzione permettono di realizzare
agenti intelligenti che combinano aspetti deliberativi e reattivi.
Modalità d'esame: l'esame consisterà in una
discussione individuale degli argomenti trattati nel corso e dei
progetti (sviluppati anche in gruppo) proposti durante lo svolgimento
del corso. L'esame prevede
anche la dimostrazione su macchine del laboratorio dei sistemi
sviluppati. Data la natura del laboratorio è prevista una certa
flessibilità
nel concordare con i docenti la data dell'esame.
Prerequisiti: si assume la conoscenza dei contenuti del corso
di "Sistemi Intelligenti" e della programmazione ad oggetti.
Attività di laboratorio e progetti
Strategie di ricerca e Pianificazione in Prolog (con vincoli)
Programma
Parte prima
Introduzione alla programmazione logicaParte seconda
Clausole di Horn - Interprete del Prolog
L'aritmetica in Prolog
Controllo: cut, negazione, setof, ...
Strutture dati: termini, liste
Meta-predicati: modifiche del database
Rappresentazione di problemi di intelligenza artificiale: ricerca nello spazio degli stati
Vincoli - Constraint logic programming
Richiami su formalismi a regoleL'ambiente CLIPS:
fatti ordinati e non ordinatiInterpreti forward chaining e backward chaining - Metainterpreti
formalismo a regole
pattern matching
strategie di controllo
Richiami sulla organizzazione di un agente
Realizzazione di aspetti reattivi e deliberativi
Cenni su JESS
Materiale bibliografico e di documentazione:
Parte prima:
L. Console, E. Lamma, P. Mello, M. Milano: "Programmazione logica
e Prolog" (nuova edizione), UTET 1997
Parte seconda:
S. J. Russell e P. Norvig, Intelligenza Artificiale: un approccio
moderno, Prentice Hall, UTET
Documentazione a diverso livello di dettaglio su CLIPS (manuali,
esempi, un rapporto introduttivo) è disponibile nella directory
CLIPS
su disco D del server NT della rete didattica.