Salta ai contenuti. | Salta alla navigazione

Strumenti personali

FONDAMENTI DI INTELLIGENZA ARTIFICIALE I

Anno accademico e docente
Non hai trovato la Scheda dell'insegnamento riferita a un anno accademico precedente? Ecco come fare >>
English course description
Anno accademico
2014/2015
Docente
EVELINA LAMMA
Crediti formativi
6
Periodo didattico
Primo Semestre
SSD
ING-INF/05

Obiettivi formativi

Il corso è il primo insegnamento di Intelligenza Artificiale (IA) ed illustra i principi architetturali dei sistemi di Intelligenza Artificiale, i metodi di rappresentazione della conoscenza e di ragionamento automatico, con particolare riferimento a sistemi basati sulla conoscenza e alla logica e al linguaggio e motore inferenziale Prolog.
Per approfondire alcuni argomenti, nell'ambito del corso sono tenuti alcuni seminari a tema, presentati da esperti esterni su invito del docente.

Le principali conoscenze acquisite sono relative ai metodi per la modellazione e rappresentazione di un problema di Intelligenza Artificiale , e alle tecniche per trovarne una soluzione in modo automatico.
Le principali abilità (ossia la capacità di applicare le conoscenze acquisite) saranno:
- capacità di applicare metodi di rappresentazione per modellare semplici problemi di Intelligenza Artificiale, partendo da una descrizione testuale;
- capacità di applicare strategie di ricerca informate e non, o ricerca con avversario, o tecniche di propagazione di vincoli per risolvere problemi di Intelligenza Artificiale già modellati;
- capacità di mostrare l’evoluzione a tempo di esecuzione di un programma Prolog;
- capacità di sintetizzare un programma Prolog, che risolva un problema dato, partendo da una descrizione testuale.

Prerequisiti

Questo insegnamento richiede come prerequisito la conoscenza dei concetti base della programmazione e di almeno un linguaggio di programmazione di alto livello (imperativo, o a oggetti).

Contenuti del corso

1) Introduzione all'Intelligenza Artificiale: alcuni cenni storici, principali campi applicativi, introduzione ai sistemi basati sulla conoscenza e i loro principi architetturali.
2) Risoluzione di problemi: rappresentazione nello "spazio degli stati", metodi di soluzione "forward" e "backward", strategie di ricerca (informate e cieche); ricerca con avversario (giochi); problemi a vincoli: tecniche di consistenza e algoritmi di propagazione.
3) Rappresentazione della conoscenza: logica dei predicati del primo ordine, sistemi a regole di produzione, sistemi basati sulla conoscenza.
4) Linguaggi per Intelligenza Artificiale. Il Prolog: dalla logica alla programmazione logica, il linguaggio Prolog come risolutore, progettazione e sviluppo di semplici programmi Prolog.
5) Seminari tematici: Swarm intelligence; Ontologie e Semantic Web; Logiche descrittive e Semantic Web.

Metodi didattici

Il corso comprende lezioni frontali in aula per alcuni argomenti, con esercizi svolti in aula, e lezioni ed esercitazioni pratiche in Laboratorio di Informatica, per argomenti legati alla libreria Java AIMA.search per strategie di ricerca, alla programmazione Prolog, e al ragionatore ontologico Pellet per il seminario tematico su Semantic Web.
Gli studenti hanno anche libero accesso al Laboratorio per ulteriori esercitazioni individuali.

Modalità di verifica dell'apprendimento

La verifica dell'apprendimento si svolge sia in forma di autovalutazione dello studente, tramite gli esercizi proposti (e svolti) durante il corso, sia al termine, sotto forma di prova d'esame.

La prova d'esame consiste in una prova scritta, organizzata come un insieme di esercizi (sui punti 2), 3) 4) indicati nei contenuti del corso), e domande teoriche su tutti gli argomenti trattati nel corso. Il punteggio totale per tale prova è di 32 punti, con una soglia di sufficienza posta a 18/32. Il voto finale è dato dal punteggio ottenuto. Con punteggio superiore o uguale a 31, il voto finale è 30/30 e Lode. Durante lo svolgimento di tale prova non è concesso consultare testi, appunti o altra fonte di informazione.

Su richiesta esplicita dello studente, è possibile sostenere anche un colloquio orale. Tale colloquio verterà sui contenuti presentati nel corso, nonché su un argomento preventivamente concordato con il docente, e sviluppato dallo studente in modo autonomo. Il colloquio orale, che comunque è di carattere facoltativo, può portare ad un aumento di massimo 3 punti rispetto al risultato dello scritto.

Lo studente può ripetere più volte la prova scritta, qualora non sia riuscito a superarla in precedenza, o qualora non sia soddisfatto del punteggio conseguito. Qualora lo studente ripeta la prova (consegnando l'elaborato al docente), i voti conseguiti in precedenza sono annullati, e sarà considerata come valida solo la prova più recente.

Testi di riferimento

Testi per consultazione e approfondimento:

Su Intelligenza Artificiale:
S. Russell e P. Norvig, "Intelligenza artificiale. Un approccio moderno", volume 1, Pearson Education-Prentice Hall, Ultima Edizione, oppure qualsiasi edizione precedente.

Sul linguaggio Prolog:
L.Console, E.Lamma, P.Mello, M. Milano: "Programmazione Logica e Prolog", UTET, Seconda Edizione, 1997.

Testi per consultazione e approfondimento:
E. Rich, K. Knight: “Intelligenza Artificiale”, McGraw Hill, Seconda Edizione 1992.
I. Bratko: “Programmare in Prolog per l’Intelligenza Artificiale”, Masson ed Addison-Wesley, 1988.