Intelligenza Artificiale I - a.a. 2000-2001
Docente
Maurizio Martelli.
Collaboratori
Marco Bozzano;
Barbara Catania;
Giorgio Delzanno;
Viviana Mascardi;
Giovanna Sissa.
Il corso e' autocontenuto
anche se e' opportuno aver seguito
i corsi fondamentali di informatica del
biennio.
Parole chiave del corso: Intelligenza Artificiale classica;
Prolog; CLP.
Lo scopo del corso e' di analizzare alcune problematiche classiche
della Intelligenza Artificiale dimostrando come esse possono essere
affrontate e risolte mediante l'uso di Programmazione Logica
(in particolare Prolog) e Programmazione Logica a Vincoli.
Verranno pertanto fornite le conoscenze
necessarie a realizzare programmi Prolog complessi ed una introduzione al
Constraint Logic Programming
(le prime 20 ore di lezione, contrassegnate da "Prolog" e "CLP" scritto tra
parentesi dopo il contenuto della lezione)
e verranno poi introdotti diversi problemi classici dell'intelligenza
artificiale ("Intelligenza Artificiale: teoria"),
dimostrando l'utilizzo di Prolog e CLP come strumenti per
risolvere ciascuno di tali problemi ("Applicazione").
Le ore dedicate a IA teorica ed applicazioni Prolog e CLP saranno 24.
La struttura dell'esercitazione verra' decisa in seguito.
-
Programmazione Logica (PL), Constraint Logic Programming (CLP),
applicazioni di PL e CLP a
risoluzione di problemi di Intelligenza Artificiale (AI)
-
Il linguaggio PROLOG
- Cenni di
logica matematica (Calcolo dei Predicati del Primo Ordine)
- Cenni su
unificazione, risoluzione SLD e Clausole Horn
- Interpretazione
procedurale di programmi logici
- Aritmetica, I/O, predicati metalogici, cut e
predicati extra-logici in PROLOG
- Metaprogrammazione, Metainterpreti e Teorie
Multiple
-
Il CLP
- Introduzione al CLP
- Programmazione con vincoli.
- Domini e risolutori di vincoli.
-
Possibili applicazioni di LP e CLP in AI
- Tecniche euristiche.
- Giochi.
- Rappresentazione della conoscenza.
- Sistemi esperti.
- Pianificazione e scheduling.
- Ragionamento approssimato.
- Riconoscimento del linguaggio naturale.
Prolog
-
Levi G., Patricelli F. PROLOG:
linguaggio, applicazioni ed implementazioni,
Scuola Superiore G. Reiss
Romoli, L'Aquila, 1993. (ISBN 88 85280 15 3). In italiano
- Console L., Lamma E., Mello P., Milano M.
Programmazione Logica e PROLOG,
UTET Università, 1997. In italiano
-
Lloyd J. Foundations
of Logic Programming,
Springer-Verlag, 1987. In italiano
-
Sterling
L., Shapiro E. The art of Prolog,
TheMIT Press,
1986.
Intelligenza Artificiale
-
Russel S., Norvig P.Intelligenza Artificiale: un approccio moderno,
Translated by Luigia Carlucci Aiello,UTET Llibreria Srl., 1998
-
Nilson N.J. Artificial intelligence: A new Synthesis,
Morgan Kaufmann Pub., 1998.
-
Luger G.F.,
Stubblefield W.A. Artificial Intelligence and the design of expert
systems,
The Benjamin/Cummings Pub. Comp. Inc.,
1989.
-
Chang C.-L., Lee
R.C.-T. Symbolic Logic and Mechanical Theorem Proving ,
Academic
Press, 1973. In italiano
-
Genesereth M.R., Nilson N.J. Logical foundations of
Artificial intelligence,
Morgan Kaufmann Pub., 1987.
-
Luogo delle lezioni: Aula 218 il Mar. e Aula 704 il Gio.
-
Orario settimanale:
Mar 14-16 (A 218), Gio 14-17 (A 704).
- 7/11/00 - Mar. 9-11 (Maurizio)
- Obiettivi del corso, modalita' di esame.
- Presentazione del corso Intelligenza Artificiale I.
- 9/11/00 - Gio. 14-17 (Viviana)
- Introduzione alla programmazione logica (Prolog).
- Cenni di Logica del prim'ordine (Prolog).
- Richiami dei concetti base di programmazione logica (fatti, regole,
programmi, goal) (Prolog).
- Sostituzioni (Prolog).
- 16/11/00 - Gio. 14-17 (Maurizio)
- Unificazione (Prolog).
- Risoluzione (Prolog).
- Interpretazione procedurale dei linguaggi logici (Prolog).
- 21/11/00 - Mar. 9-11 (Maurizio)
- Interprete astratto per Prolog puro e relativi concetti
computazionali (Prolog).
- Programmi e costrutti metalogici in Prolog (Prolog).
- Esempi di programmazione ricorsiva (Prolog).
- 23/11/00 - Gio. 14-17 (Maurizio)
- Concetti ed esempi relativi all'uso del Cut (Prolog).
- 28/11/00 - Mar. 9-11 (Maurizio)
- Predicati per la manipolazione di programmi (Prolog).
- Non determinismo in Prolog (Prolog).
- 30/11/00 - Gio. 14-17 (Viviana)
- Programmazione al second'ordine (Prolog).
- Esercizi in preparazione al primo compitino.
- 5/12/00 - Mar. 9-11 (Barbara)
- Introduzione al CLP (CLP).
- Programmazione con vincoli (CLP).
- Domini e risolutori di vincoli (CLP).
- 7/12/00 - Gio 14-17 (Giovanna Sissa)
- Introduzione ai sistemi esperti (Intelligenza Artificiale: teoria).
- 12/12/00 - Mar. 14-16 (Maurizio)
- Metaprogrammazione e amalgamazione (Prolog).
- Metainterpreti: introduzione (Prolog).
- 13/12/00 - Mer. 11-13 (Viviana)
- 14/12/00 - Gio. 14-16 (Barbara 1 h, Viviana 1 h)
- Propagazione di Constraints (CLP).
- Applicazioni di Constraint Problem Solving a Intelligenza Artificiale
(Applicazione).
- Un esempio di uso di CLP per Scheduling (Applicazione).
- 19/12/00 - Mar. 14-16 (Maurizio)
- Mondi multipli (Prolog).
- Metainterpreti e strumenti di ambiente (Prolog).
- 21/12/00 - Gio. 14-17 (Maurizio)
- Metainterpreti per Sistemi Esperti (why e ask the user).
- Metainterpreti per tipi di ragionamento forward, adduttivo.
(Applicazione).
- 9/01/01 - Mar. 9-11 (Maurizio)
- Introduzione rappresentazione della conoscenza.
- Metainterpreti per ereditarieta', frames.
- 11/01/01 - Gio. 14-17 (Maurizio)
- Introduzione sistemi per la conoscenza incerta.
- Metainterpreti per ragionamento approssimato.
- Ambienti con linguaggi multipli e cenni valutazione parziale.
- 16/01/01 - Mar. 9-11 (Viviana)
- 16/01/01 - Mar. 14-16 (Marco)
- Strutture dati ed algoritmi per visita di grafi;
- Tecniche di IA per problem solving.
- 18/01/01 - Gio. 14-17 (Marco)
- Tecniche euristiche applicate al problem solving;
- Introduzione a teoria dei giochi.
- 23/01/01 - Mar. 9-11 (Viviana)
- Riconoscimento del linguaggio naturale.
- Realizzazione di grammatiche per parsing del linguaggio naturale in Prolog.
- 25/01/01 - Gio. 14-17 (Viviana)
- Attribuzione di una semantica a frasi in linguaggio naturale (Prolog).
- Introduzione all'apprendimento automatico.
- 02/02/01 - Ven. 14-16 (Giorgio e Viviana)
- Discussione testo esercitazione.
- Esercizi di preparazione al terzo compitino.
- 6/02/01 - Mar. 14-16 (Viviana)
- Il corso prevede 3 compitini che verranno valutati con voti nel range
[0..34].
- Per chi ha sostenuto e superato tutti i compitini il voto finale e'
attribuito come media matematica dei voti dei compitini.
- I compitini saltati o insoddisfacenti vanno recuperati con un orale. Il voto
della prova orale verra' utilizzato al posto del voto del compitino saltato nel calcolo
della media finale.
- L'esercitazione verra' valutata con un incremento/decremento nel range [-1,+3]
sul voto cosi' ottenuto.
- Sara' attribuita la lode a chi avra' un voto complessivo (ottenuto come
sopra) maggiore di 30.