Salta ai contenuti. | Salta alla navigazione

Strumenti personali

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
2022/2023
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.

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. AIMA.search come libreria per ricerca nello spazio degli stati e CPS
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.

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, alla programmazione Prolog.

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 Classroom corso. 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.