Intelligenza artificiale
Prof. Stefano Cagnoni (1° modulo) | E-mail: cagnoni@ce.unipr.it |
Prof. Agostino Poggi (2° modulo) | E-mail: poggi@ce.unipr.it |
Finalità
Il corso intende fornire le conoscenze e gli strumenti fondamentali per l'utilizzo di metodologie e tecniche di Intelligenza Artificiale, con particolare attenzione ai linguaggi ed ambienti di sviluppo e di programmazione tipici di questa disciplina. Durante lo svolgimento delle lezioni verro analizzati in dettaglio i contributi scientifici più significativi del settore, mettendo anche in luce le principali problematiche legate alla cosiddetta Ingegneria della Conoscenza, disciplina che giuoca un ruolo centrale nella costruzione dei Sistemi Esperti; verro inoltre descritte le tecniche di base per la soluzione di problemi e per la rappresentazione della conoscenza.
Programma
Introduzione - Cos'è l'intelligenza artificiale. Basi
dell'intelligenza artificiale. Storia dell'intelligenza artificiale. Sistemi
intelligenti. Campi di applicazione. Tecniche di intelligenza artificiale.
Linguaggi per l'intelligenza artificiale - LISP. PROLOG. Estensioni parallele
e orientate agli oggetti del LISP e del PROLOG.
Soluzione di problemi - Formulazione di problemi. Tipi ed esempi di problemi.
Soluzione di problemi basata sulla ricerca: ricerca in ampiezza e ricerca in
profondità. Metodi di ricerca informata: A*, ricerca in salita e simulated
ealing. Risoluzione di giochi basata sulla ricerca: algoritmo minimax e potatura
alfa-beta.
Rappresentazione della conoscenza - L'uso della logica dei predicati. Conoscenze
strutturate: reti semantiche e frame. Sistemi a produzioni. Rappresentazione
di conoscenza incerta: incertezza, reti bayesiane, logiche di default e logica
fuzzy.
L'apprendimento - Apprendimento induttivo: alberi di decisione. Apprendimento
per rinforzo. Apprendimento guidato da insuccesso. Apprendimento mediante esplorazione.
Reti neurali e algoritmi genetici.
La pianificazione - Caratteristiche generali di un sistema di pianificazione.
Il mondo dei blocchi. STRIPS. La pianificazione non lineare. Pianificazione
basata sul metodo del minimo impiego. Pianificazione gerarchica. Pianificazione
nel mondo reale: pianificazione condizionale e controllo dell'esecuzione.
Introduzione ai sistemi esperti - problemi di acquisizione della conoscenza,
rappresentazione della conoscenza, applicazione della conoscenza, generazione
delle spiegazioni. Ciclo di vita dei sistemi esperti. Strumenti per lo sviluppo
di sistemi esperti. Alcuni esempi di sistemi esperti.
Gli agenti e i sistemi multi-agente. Modelli e architetture di agente. I linguaggi
per la programmazione orientata agli agenti. Sistemi multi-agente cooperanti
e concorrenti. Alcuni esempi di applicazione dei sistemi ad agente.
Attività d'esercitazione
Durante le esercitazioni si realizzero dei piccoli sistemi intelligenti utilizzando sia linguaggi per l'Intelligenza Artificiale e sia linguaggi più tradizionali come il C++ e Java.
Modalità d'esame
Sono previste una prova scritta e una prova orale.
Propedeuticità
Sono considerati propeduitici: Fondamenti di Informatica I, Fondamenti di Informatica II e Calcolatori Elettronici.
Testi consigliati
S. RUSSELL, P. NORVING: " Artificial Intelligence -A Modern
Approach ", Prentice Hall, 1995.
E. RICH, K. KNIGHT: " Intelligenza Artificiale ", II edizione, McGraw
Hill, 1993.
E. CHARNIAK, D. MCDERMOTT: " Introduzione alla Intelligenza Artificiale
", Masson - Addison Wesley, 1988.
Testi d'approfondimento
J.M. BRADSHAW: " Software Agents ", American Association
for Artificial Intelligence, 1997.
K.D. FORBUS, J. DE KLEER: " Building Problem Solvers ", American Association
for Artificial Intelligence, 1993.
D.W.Rolston: " Sistemi Esperti Teoria e sviluppo ", Mc-Graw-Hill,
1991.
P. Jackson: " Introduzione ai Sistemi Espert I ", Masson, Addison
Wesley, 1988.
G.L. Steele: " Common Lisp - The Language ", Digital Press, 1990.
M.A. Covington, D. Nute, A. Vellino: " Prolog Programming in Depth ",
Prentice Hall, 1997.
K. FU, R.C. GONZALES ,C.S.GEORGE: " Lee,Robotica ", McGraw Hill, 1989.
Aggiornato