Laboratorio di Sistemi Intelligenti

Anno Accademico 2004/05

 

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

I due link seguenti contengono materiale relativo alle attività di laboratorio ed ai progetti proposti per l'esame.


Strategie di ricerca e Pianificazione in Prolog (con vincoli)

Uso di CLIPS/JESS per lo sviluppo di un agente intelligente




 
 

Programma

Parte prima
 

 Introduzione alla programmazione logica
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
Parte seconda
 
 Richiami su formalismi a regole

 L'ambiente CLIPS:

  fatti ordinati e non ordinati
  formalismo a regole
  pattern matching
  strategie di controllo
 Interpreti forward chaining e backward chaining - Metainterpreti
 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.