INTELLIGENZA ARTIFICIALE

Crediti: 
9
Settore scientifico disciplinare: 
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI (ING-INF/05)
Anno accademico di offerta: 
2016/2017
Semestre dell'insegnamento: 
Primo Semestre
Lingua di insegnamento: 

Italiano

Obiettivi formativi

Il corso si propone di introdurre gli studenti alle tecniche e alle metodologie mirate a riprodurre sul computer comportamenti 'intelligenti' con particolare attenzione per le tecniche di ingegneria della conoscenza e di apprendimento automatico.

Conoscenze e capacità di comprendere

In particolare il corso si propone di illustrare
-le principali tecniche di rappresentazione della conoscenza utilizzate in Intelligenza Artificiale,
-la definizione di formulazione di un problema e le attività necessarie per risolverlo,
-la gestione della conoscenza (certa o incerta) attraverso la logica e il ragionamento
-alcuni dei più importanti metodi di Apprendimento Automatico
-alcuni aspetti del Web Semantico

Competenze

Sulla base dei contenuti del corso lo studente dovrà essere in grado di:
-formulare un problema in modo tale da poter essere risolto con ragionamento automatico
-descrivere e rappresentare la conoscenza di un dominio attraverso l’uso dei linguaggi della logica
-analizzare la conoscenza utilizzata in un dominio scegliendo il metodo che ritiene più appropriato per la sua gestione
-risolvere un problema pratico mediante metodi di apprendimento automatico
-progettare un’applicazione di Web Semantico

Autonomia di giudizio

Nello svolgimento del progetto lo studente dovrà analizzare lo stato dell'arte presente in letteratura per motivare le scelte eseguite nella risoluzione del problema.

Capacità comunicative

Le esercitazioni di laboratorio ed il progetto possono essere svolti in piccoli gruppi favorendo così lo scambio di opinioni. Inoltre la stesura della relazione richiede allo studente una buona organizzazione logica e chiarezza nell’esposizione dei dati e dei risultati.

Capacità di apprendimento

La capacità dello studente di vedere le cose da prospettive diverse è favorita dall’integrazione nel corso di lezioni teoriche con riferimenti ad applicazioni concrete e dall’attività di laboratorio.

Prerequisiti

Nessuno

Contenuti dell'insegnamento

Intelligenza Artificiale
1 Introduzione
1.1 Definizioni e approcci

2 Soluzione di problemi con la ricerca
2.1 Problemi ben definiti e ricerca di una soluzione
2.2 Strategia di ricerca non informata
2.3 Strategia di ricerca con informazione parziale
2.4 Strategie di ricerca informata o euristica
2.4 Ricerca con avversari
2.5 I giochi
2.6 Decisioni ottime nei giochi
2.7 Decisioni imperfette in tempo reale

3 Rappresentazione della Conoscenza
3.1 Introduzione alla logica
3.2 La logica del primo ordine
3.2.1 L’inferenza nella logica del primo ordine
3.3 Ingegneria della conoscenza e logica del primo ordine
3.4 Logica descrittiva.
3.5 L’inferenza nella logica descrittiva
3.6 Ingegneria ontologica
3.7 Ragionamento con conoscenza incerta
3.8 Richiami della teoria della probabilità e reti di Bayes
3.9 La logica fuzzy

4. Cenni sulla pianificazione.

5. Web Semantico
5.1 Gli elementi base del web semantico.
5.2 Tassonomie e Ontologie
5.3 Esempi di applicazioni

6 Apprendimento automatico
6.1 Apprendimento biologico e apprendimento automatico
6.2 Richiami sulle tecniche di apprendimento automatico dell'Intelligenza Artificiale classica

7 Soft Computing
7.1 Introduzion alle Tecniche di Soft Computing
7.2 Reti Neurali
7.3 Calcolo Evoluzionistico
7.3.1 Algoritmi Genetici
7.3.2 Programmazione Genetica
7.4 Swarm Intelligence
7.5 Sistemi Ibridi
7.6 Esempi di applicazioni

Programma esteso

Intelligenza Artificiale (esteso)
1 Introduzione
1.1 Definizioni e approcci
1.2 I fondamenti dell’IA
1.3 La storia dell’IA
1.3.1 Gli inizi
1.3.2 L’IA diventa un’industria
1.3.3 L’IA diventa una scienza

2 Soluzione di problemi con la ricerca
2.1 Problemi ben definiti e ricerca di una soluzione
2.1.1 Formulazione di un problema
2.1.2 Problemi giocattolo
2.2 Strategia di ricerca non informata
2.3 Strategia di ricerca con informazione parziale
2.3.1 Problemi di contingenza
2.4 Strategie di ricerca informata o euristica
2.4.1 Funzioni euristiche
2.4 Ricerca con avversari
2.5 I giochi
2.6 Decisioni ottime nei giochi
2.6.1 L’algoritmo minimax
2.7 Decisioni imperfette in tempo reale
2.7.1 Il problema dell’orizzonte
2.7.2 Potatura alfa-beta

3 Rappresentazione della Conoscenza
3.1 Introduzione alla logica
3.2 La logica del primo ordine
3.2.1 Sintassi e semantica della logica del primo ordine
3.2.2 L’inferenza nella logica del primo ordine
3.2.3 Concatenazione in avanti ed all’indietro
3.2.4 Forma normale e clausole di Horn per la logica del primo ordine
3.3 Ingegneria della conoscenza e logica del primo ordine
3.4 La Logica descrittiva
3.4.1 Categorie ed oggetti
3.4.2 L’inferenza nella logica descrittiva
3.4.3 L’ereditarietà come forma di inferenza
3.5 Ingegneria ontologica
3.6 Ragionamento con conoscenza incerta
3.6.1 Richiami della teoria della probabilità e reti di Bayes
3.7 La logica fuzzy
3.7.1 Gli operatori della logica fuzzy
3.7.2 Inferenza nella logica fuzzy

4. Cenni sulla pianificazione.

5. Web Semantico
5.1 Gli elementi base del web semantico.
5.1.1 Metadati, XML, RDF
5.2 Tassonomie e Ontologie
5.2.1 OWL
5.3 Esempi di Applicazioni

6 Apprendimento automatico
6.1 Apprendimento biologico e apprendimento automatico
6.2 Richiami sulle tecniche di apprendimento automatico dell'Intelligenza Artificiale classica

7 Soft Computing
7.1 Tecniche di Soft Computing
7.1.1 Conoscenza certa e conoscenza incerta
7.1.2 Comportamenti emergenti
7.2 Reti Neurali
7.2.1 Modello Biologico
7.2.2 Regole di apprendimento
7.3 Calcolo Evoluzionistico
7.3.1 Algoritmi Genetici
7.3.2 Programmazione Genetica
7.4 Swarm Intelligence
7.5 Sistemi Ibridi
7.6 Esempi di applicazioni

Bibliografia

Appunti del corso.
Russell, Norvig - Intelligenza Artificiale: un approccio moderno 2/Ed, Prentice Hall, 2005
Haykin - Neural networks. US Imports & PHIPEs, 1999
Engelbrecht - Computational Intelligence: an introduction, 2a edizione, Wiley, 2007
Eiben, Smith - Introduction to Evolutionary Computing, Springer, 2003
Blum, Merkle - Swarm Intelligence, Springer, 2008
Tettamanzi, Tomassini - Soft Computing:Integrating evolutionary, neural and fuzzy systems,
Springer, 2001
Della Valle,Celino, Cerizza - Semantic web:dai fondamenti alla realizzazione di un'applicazione,Pearson Education Italia (collana Addison Wesley ), 2009

Metodi didattici

Nel corso sono previste sia lezioni in aula che attività di esercitazione.
Nelle lezioni in aula verranno trattati gli aspetti teorici del corso assieme alla descrizione di alcuni casi di studio delle principali tematiche affrontate.
Le attività d'esercitazione verrano svolte in laboratorio su problemi reali.

Modalità verifica apprendimento

Non sono previste prove in itinere.
L’esame consiste di tre parti:
i) una verifica scritta a risposta libera articolata su tre quesiti sui temi trattati a lezione per la parte di ingegneria della conoscenza
ii) una relazione sugli esercizi svolti in laboratorio sui temi di apprendimento automatico
iii) una relazione scritta (e relativa esposizione orale) su un lavoro di progetto che approfondisce uno dei temi trattati a lezione o in laboratorio.

Altre informazioni

Il materiale didattico e di supporto alle lezioni sarà reso disponibile durante il corso in formato elettronico.