FONDAMENTI DI INTELLIGENZA ARTIFICIALE

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
2020/2021
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 previsti seminari tematici, presentati da esperti 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 analizzare e 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).
Se ne sconsiglia la frequenza durante una laurea triennale.

Contenuti del corso

1) Introduzione all'Intelligenza Artificiale: alcuni cenni storici, principali campi applicativi, introduzione ai sistemi basati sulla conoscenza e i loro blocchi architetturali (base di conoscenza e motore di inferenza).
2) Risoluzione di problemi: rappresentazione nello spazio degli stati, metodi di soluzione forward e backward, strategie di ricerca (cieche e informate); ricerca con avversario (giochi); problemi a vincoli: tecniche di consistenza e algoritmi di propagazione.
3) Rappresentazione della conoscenza: logica dei predicati del primo ordine, regole di produzione, reti semantiche e frames.
4) Linguaggi per Intelligenza Artificiale. Prolog: dalla logica alla programmazione logica, il linguaggio Prolog come risolutore, progettazione e sviluppo di semplici programmi Prolog.
5) Seminari tematici (AIMA.search come libreria per ricerca nello spazio degli stati; 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 il seminario tematico su strategie di ricerca, alla programmazione Prolog, e al ragionatore ontologico Pellet per il seminario tematico su Semantic Web.

Modalità di verifica dell'apprendimento

L’obiettivo della prova d’esame è verificare il livello di raggiungimento degli obiettivi formativi precedentemente indicati. Durante il corso è incentivata l'autovalutazione dello studente, tramite esercizi proposti e risolti.

La prova d'esame consiste in una prova scritta, della durata di due ore, organizzata come un insieme di esercizi e domande teoriche che possono vertere su tutti gli argomenti trattati nel corso.
In particolare la prova prevede esercizi su:
- modellazione e risoluzione con: logica dei predicati / tecniche a vincoli / strategie informate e non, di semplici problemi di IA (per verificare l’acquisizione della capacità di applicare metodi di rappresentazione per modellare semplici problemi di Intelligenza Artificiale, partendo da una descrizione testuale, e la capacità di applicare strategie di ricerca informate e non, o tecniche di propagazione di vincoli per risolvere problemi di Intelligenza Artificiale già modellati);
- applicazione di algoritmi per ricerca con avversario (per verificare l’acquisizione della capacità di applicare algoritmi per problemi di ricerca con avversario);
- analisi e sintesi di programmi Prolog (per verificare l’acquisizione della capacità di analizzare e mostrare l’evoluzione a tempo di esecuzione di un programma Prolog, e la capacità di sintetizzare un programma Prolog, che risolva un problema dato, partendo da una descrizione testuale);
- domanda aperta su tutti gli argomenti trattati nel corso (per verificare l’acquisizione delle principali conoscenze teoriche sui metodi di Intelligenza Artificiale).

Il punteggio totale per la prova d’esame è di 32 punti, con una soglia di sufficienza posta a 18/32. Il voto finale è dato dal punteggio ottenuto, espresso in trentesimi. Con punteggio superiore a 30, 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

Tutte le diapositive proiettate e discusse a lezione sono pubblicate nel sito Web del corso:
http://www.unife.it/ing/lm.infoauto/Fond_IA
(in corso di aggiornamento per AA 2020-21) dove sono disponibili anche testi e soluzioni di prove d'esame degli anni accademici precedenti, utili allo studente per raffinare e autovalutare la propria preparazione.

Testi di riferimento utilizzati:

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 ulteriore 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.