ID:
015474
Tipo Insegnamento:
Obbligatorio
Durata (ore):
64
CFU:
8
SSD:
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Url:
INGEGNERIA INFORMATICA E DELL’AUTOMAZIONE/Percorso Comune Anno: 1
Anno:
2024
Dati Generali
Periodo di attività
Primo Semestre (19/09/2024 - 17/12/2024)
Syllabus
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, al linguaggio e motore inferenziale Prolog, alle logiche descrittive e ai reasoner ontologici.
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 (strategie di ricerca, ricerca con avversario, propagazione di vincoli, logica computazionale).
Le principali abilità (ossia la capacità di applicare le conoscenze acquisite) saranno:
- capacità di modellare semplici problemi di Intelligenza Artificiale, partendo da una descrizione testuale, applicando metodi di rappresentazione.
Per risolvere problemi di Intelligenza Artificiale già modellati:
- capacità di applicare strategie di ricerca informate e non;
- capacità di applicare algoritmi per ricerca con avversario;
- capacità di applicare tecniche di propagazione di vincoli
Inoltre:
- capacità di sintetizzare un programma Prolog, che risolva un problema dato, partendo da una descrizione testuale;
- capacità di analizzare e mostrare l’evoluzione a tempo di esecuzione di un programma Prolog;
- capacità di modellare in Logiche Descrittive un dominio di interesse, partendo da una descrizione testuale;
- capacità di utilizzare reasoner ontologici per eseguire inferenze.
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 (strategie di ricerca, ricerca con avversario, propagazione di vincoli, logica computazionale).
Le principali abilità (ossia la capacità di applicare le conoscenze acquisite) saranno:
- capacità di modellare semplici problemi di Intelligenza Artificiale, partendo da una descrizione testuale, applicando metodi di rappresentazione.
Per risolvere problemi di Intelligenza Artificiale già modellati:
- capacità di applicare strategie di ricerca informate e non;
- capacità di applicare algoritmi per ricerca con avversario;
- capacità di applicare tecniche di propagazione di vincoli
Inoltre:
- capacità di sintetizzare un programma Prolog, che risolva un problema dato, partendo da una descrizione testuale;
- capacità di analizzare e mostrare l’evoluzione a tempo di esecuzione di un programma Prolog;
- capacità di modellare in Logiche Descrittive un dominio di interesse, partendo da una descrizione testuale;
- capacità di utilizzare reasoner ontologici per eseguire inferenze.
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.
Se ne sconsiglia la frequenza durante una laurea triennale.
Metodi didattici
Il corso è erogato al I semestre. La didattica comprende lezioni frontali in aula per alcuni argomenti, con esercizi svolti in aula, e lezioni ed esercitazioni pratiche in Laboratorio, per argomenti legati alla libreria AIMA.search, alla programmazione Prolog e ai reasoner ontologici.
Verifica Apprendimento
L’obiettivo della prova finale d’esame è verificare il livello di raggiungimento degli obiettivi formativi indicati. Durante l'insegnamento è anche incentivata l'autovalutazione, tramite la proposta di esercizi da risolvere, la cui soluzione è discussa successivamente dal docente.
La prova d'esame consiste in una prova scritta, della durata di circa due ore e trenta, organizzata come un insieme di esercizi e domande teoriche che possono vertere su tutti gli argomenti trattati nel corso.
In particolare la prova scritta prevede esercizi (sui punti 2, 3 e 4 indicati nei Contenuti del corso) come segue:
- modellazione e risoluzione con logica dei predicati del I ordine, rappresentazione in forma a clausole e applicazione del principio di risoluzione per dimostrare un goal;
- applicazione di algoritmi per ricerca con avversario (min-max e tagli alfa-beta);
- applicazione di strategie di ricerca informate e non, su un esempio di ricerca descritto in forma grafica;
- applicazione di tecniche a vincoli per risolvere un Constraint Satisfaction Problem, con variabili vincolate da vincoli;
- sintesi di un programma Prolog, generalmente su liste, partendo da un testo di specifica;
- dimostrazione dello spazio di ricerca esplorato (albero SLD-NF) durante l’esecuzione di un programma Prolog, partendo da un dato goal;
- sintesi di una teoria in una logica descrittiva fra quelle analizzate durante il corso;
- domande aperte su tutti gli argomenti trattati nel corso (per verificare l’acquisizione delle principali conoscenze teoriche sui metodi di Intelligenza Artificiale). Il voto finale è dato dal punteggio ottenuto, espresso in trentunesimi (/31). La soglia della sufficienza è posta a 18/31 punti.Con punteggio superiore a 30, il voto finale è 30/30 e Lode. Durante lo svolgimento della prova non è concesso consultare testi, appunti o altra fonte di informazione.
Su richiesta esplicita dello studente/studentessa, è 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 variazione (in piu’ o in meno) di massimo 3 punti rispetto al risultato dello scritto.
Lo studente/studentessa 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/studentessa completi la prova (consegnando l'elaborato), i voti conseguiti in precedenza sono annullati, e sarà considerata come valida solo la prova più recente.
La prova d'esame consiste in una prova scritta, della durata di circa due ore e trenta, organizzata come un insieme di esercizi e domande teoriche che possono vertere su tutti gli argomenti trattati nel corso.
In particolare la prova scritta prevede esercizi (sui punti 2, 3 e 4 indicati nei Contenuti del corso) come segue:
- modellazione e risoluzione con logica dei predicati del I ordine, rappresentazione in forma a clausole e applicazione del principio di risoluzione per dimostrare un goal;
- applicazione di algoritmi per ricerca con avversario (min-max e tagli alfa-beta);
- applicazione di strategie di ricerca informate e non, su un esempio di ricerca descritto in forma grafica;
- applicazione di tecniche a vincoli per risolvere un Constraint Satisfaction Problem, con variabili vincolate da vincoli;
- sintesi di un programma Prolog, generalmente su liste, partendo da un testo di specifica;
- dimostrazione dello spazio di ricerca esplorato (albero SLD-NF) durante l’esecuzione di un programma Prolog, partendo da un dato goal;
- sintesi di una teoria in una logica descrittiva fra quelle analizzate durante il corso;
- domande aperte su tutti gli argomenti trattati nel corso (per verificare l’acquisizione delle principali conoscenze teoriche sui metodi di Intelligenza Artificiale). Il voto finale è dato dal punteggio ottenuto, espresso in trentunesimi (/31). La soglia della sufficienza è posta a 18/31 punti.Con punteggio superiore a 30, il voto finale è 30/30 e Lode. Durante lo svolgimento della prova non è concesso consultare testi, appunti o altra fonte di informazione.
Su richiesta esplicita dello studente/studentessa, è 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 variazione (in piu’ o in meno) di massimo 3 punti rispetto al risultato dello scritto.
Lo studente/studentessa 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/studentessa completi la prova (consegnando l'elaborato), i voti conseguiti in precedenza sono annullati, e sarà considerata come valida solo la prova più recente.
Testi
Testi di riferimento utilizzati sono:
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 del testo.
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.
The Description Logic Handbook: Theory, Implementation, and Applications. Cambridge University Press, 2nd Edition, 2007
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 del testo.
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.
The Description Logic Handbook: Theory, Implementation, and Applications. Cambridge University Press, 2nd Edition, 2007
Contenuti
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 (Constraint Satisfaction Problems): tecniche di consistenza e algoritmi di propagazione. AIMA.search come libreria per ricerca nello spazio degli stati e per Constraint Satisfaction Problems (CSP).
3) Rappresentazione della conoscenza: logica dei predicati del primo ordine, calcolo dei predicati, logica a clausole e principio di risoluzione. Rappresentazione di informazioni negative.
4) Linguaggi per Intelligenza Artificiale: Dalla logica alla programmazione logica, il linguaggio Prolog come risolutore, progettazione e sviluppo di semplici programmi Prolog. Le logiche descrittive, loro classificazione, espressività e complessità computazionale, esempi di reasoner ontologici e loro utilizzo, anche nel Semantic Web.
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 (Constraint Satisfaction Problems): tecniche di consistenza e algoritmi di propagazione. AIMA.search come libreria per ricerca nello spazio degli stati e per Constraint Satisfaction Problems (CSP).
3) Rappresentazione della conoscenza: logica dei predicati del primo ordine, calcolo dei predicati, logica a clausole e principio di risoluzione. Rappresentazione di informazioni negative.
4) Linguaggi per Intelligenza Artificiale: Dalla logica alla programmazione logica, il linguaggio Prolog come risolutore, progettazione e sviluppo di semplici programmi Prolog. Le logiche descrittive, loro classificazione, espressività e complessità computazionale, esempi di reasoner ontologici e loro utilizzo, anche nel Semantic Web.
Lingua Insegnamento
Italiano
Corsi
Corsi
INGEGNERIA INFORMATICA E DELL’AUTOMAZIONE
Laurea Magistrale
2 anni
No Results Found
Persone
Persone (3)
Docenti di ruolo di IIa fascia
Ricercatori a tempo determinato - Tipo A
No Results Found