Dati Generali
Periodo di attività
Annualità Singola (19/09/2024 - 05/06/2025)
Syllabus
Obiettivi Formativi
L'insegnamento approfondisce algoritmi e linguaggi basati su intelligenza artificiale per risolvere problemi di soddisfacibilità e di ottimizzazione vincolata e problemi di analisi dei dati.
Gli obiettivi formativi dell’insegnamento prevedono che gli studenti siano in grado di:
- descrivere le principali caratteristiche di linguaggio di programmazione logica a vincoli sui domini finiti (Constraint Logic Programming on Finite Domains - CLP(FD))
- descrivere gli algoritmi di propagazione dei principali vincoli in CLP(FD)
- modellare un problema di soddisfacibilità o di ottimizzazione vincolata nei linguaggi CLP(FD) e Answer Set Programming
- descrivere l'algoritmo di Conflict Directed Clause Learning di un risolutore SAT
- codificare un problema di soddisfacibilità in SAT
- riconoscere quali modelli a vincoli sono più promettenti di altri
- analizzare i dati memorizzati in database con strumenti di Machine learning e Data mining sia descrittivi che predittivi.
Gli obiettivi formativi dell’insegnamento prevedono che gli studenti siano in grado di:
- descrivere le principali caratteristiche di linguaggio di programmazione logica a vincoli sui domini finiti (Constraint Logic Programming on Finite Domains - CLP(FD))
- descrivere gli algoritmi di propagazione dei principali vincoli in CLP(FD)
- modellare un problema di soddisfacibilità o di ottimizzazione vincolata nei linguaggi CLP(FD) e Answer Set Programming
- descrivere l'algoritmo di Conflict Directed Clause Learning di un risolutore SAT
- codificare un problema di soddisfacibilità in SAT
- riconoscere quali modelli a vincoli sono più promettenti di altri
- analizzare i dati memorizzati in database con strumenti di Machine learning e Data mining sia descrittivi che predittivi.
Prerequisiti
------------------------------------------------------------
Insegnamento raggruppato: 70476 - INTELLIGENZA ARTIFICIALE PER L'OTTIMIZZAZIONE VINCOLATA (mutua dall'attività formativa INTELLIGENZA ARTIFICIALE PER L'OTTIMIZZAZIONE VINCOLATA - 70443 del CdS INGEGNERIA INFORMATICA E DELL’AUTOMAZIONE - 1229)
------------------------------------------------------------
E’ necessario avere acquisito e assimilato le seguenti conoscenze fornite dal corso "Fondamenti di Intelligenza Artificiale”:
• programmazione logica
• problemi di soddisfacimento di vincoli e loro tecniche di risoluzione
------------------------------------------------------------
Insegnamento raggruppato: 70478 - DATA MINING AND ANALYTICS (mutua dall'attività formativa MACHINE LEARNING E DATA MINING - 163192 del CdS INTELLIGENZA ARTIFICIALE, DATA SCIENCE E BIG DATA - 3207)
------------------------------------------------------------
L’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), e l’aver seguito il corso di Fondamenti di Intelligenza Artificiale.
Insegnamento raggruppato: 70476 - INTELLIGENZA ARTIFICIALE PER L'OTTIMIZZAZIONE VINCOLATA (mutua dall'attività formativa INTELLIGENZA ARTIFICIALE PER L'OTTIMIZZAZIONE VINCOLATA - 70443 del CdS INGEGNERIA INFORMATICA E DELL’AUTOMAZIONE - 1229)
------------------------------------------------------------
E’ necessario avere acquisito e assimilato le seguenti conoscenze fornite dal corso "Fondamenti di Intelligenza Artificiale”:
• programmazione logica
• problemi di soddisfacimento di vincoli e loro tecniche di risoluzione
------------------------------------------------------------
Insegnamento raggruppato: 70478 - DATA MINING AND ANALYTICS (mutua dall'attività formativa MACHINE LEARNING E DATA MINING - 163192 del CdS INTELLIGENZA ARTIFICIALE, DATA SCIENCE E BIG DATA - 3207)
------------------------------------------------------------
L’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), e l’aver seguito il corso di Fondamenti di Intelligenza Artificiale.
Metodi didattici
------------------------------------------------------------
Insegnamento raggruppato: 70476 - INTELLIGENZA ARTIFICIALE PER L'OTTIMIZZAZIONE VINCOLATA (mutua dall'attività formativa INTELLIGENZA ARTIFICIALE PER L'OTTIMIZZAZIONE VINCOLATA - 70443 del CdS INGEGNERIA INFORMATICA E DELL’AUTOMAZIONE - 1229)
------------------------------------------------------------
Le lezioni sono organizzate tramite la tecnica della Flipped Classroom: vengono fornite videolezioni da guardare a casa su tutti gli argomenti del corso.
Le lezioni in presenza sono tenute in laboratorio di informatica; vengono assegnati esercizi che vengono svolti al calcolatore, per poter apprendere tramite "learning by doing" le tecniche apprese nelle videolezioni.
Le esercitazioni in laboratorio riguardano l'uso di linguaggi di programmazione logica a vincoli, di risolutori SAT e di Answer Set Programming per la risoluzione di problemi a vincoli.
------------------------------------------------------------
Insegnamento raggruppato: 70478 - DATA MINING AND ANALYTICS (mutua dall'attività formativa MACHINE LEARNING E DATA MINING - 163192 del CdS INTELLIGENZA ARTIFICIALE, DATA SCIENCE E BIG DATA - 3207)
------------------------------------------------------------
l corso è organizzato in:
- lezioni frontali in aula su tutti gli argomenti del corso;
- esercitazioni nei laboratori di informatica per il progetto di modelli di apprendimento automatico e la risoluzione di problemi di data mining
Videolezioni asincrone sono disponibili sul Google Classroom del corso.
Insegnamento raggruppato: 70476 - INTELLIGENZA ARTIFICIALE PER L'OTTIMIZZAZIONE VINCOLATA (mutua dall'attività formativa INTELLIGENZA ARTIFICIALE PER L'OTTIMIZZAZIONE VINCOLATA - 70443 del CdS INGEGNERIA INFORMATICA E DELL’AUTOMAZIONE - 1229)
------------------------------------------------------------
Le lezioni sono organizzate tramite la tecnica della Flipped Classroom: vengono fornite videolezioni da guardare a casa su tutti gli argomenti del corso.
Le lezioni in presenza sono tenute in laboratorio di informatica; vengono assegnati esercizi che vengono svolti al calcolatore, per poter apprendere tramite "learning by doing" le tecniche apprese nelle videolezioni.
Le esercitazioni in laboratorio riguardano l'uso di linguaggi di programmazione logica a vincoli, di risolutori SAT e di Answer Set Programming per la risoluzione di problemi a vincoli.
------------------------------------------------------------
Insegnamento raggruppato: 70478 - DATA MINING AND ANALYTICS (mutua dall'attività formativa MACHINE LEARNING E DATA MINING - 163192 del CdS INTELLIGENZA ARTIFICIALE, DATA SCIENCE E BIG DATA - 3207)
------------------------------------------------------------
l corso è organizzato in:
- lezioni frontali in aula su tutti gli argomenti del corso;
- esercitazioni nei laboratori di informatica per il progetto di modelli di apprendimento automatico e la risoluzione di problemi di data mining
Videolezioni asincrone sono disponibili sul Google Classroom del corso.
Verifica Apprendimento
Al fine di verificare la capacità dello studente di modellare problemi a vincoli nei vari linguaggi di programmazione studiati, viene fatta una prova di laboratorio; in questa prova, allo studente viene descritto un problema, che deve poi risolvere tramite un programma in Answer Set Programming e tramite un programma in programmazione logica a vincoli.
Durante la prova di laboratorio è possibile accedere alla documentazione dei software CLP(FD) e ASP; non è possibile consultare altro materiale (appunti, slide, ecc.).
Il totale dei punti disponibili per questa prova è 25; una valutazione intorno al 25 dimostrerà che lo studente ha ottenuto ottime capacità di modellare e risolvere problemi a vincoli, mentre uno studente che ottiene intorno a 13 punti dimostrerà di aver ottenuto sufficienti capacità di modellare e risolvere problemi a vincoli.
Al fine di verificare la conoscenza dello studente sulle tecniche di propagazione disponibili nei risolutori moderni, viene fatta una prima prova scritta. Questa prova contiene un esercizio in cui deve dimostrare di aver appreso le tecniche di propagazione con vincoli globali nella programmazione logica a vincoli sui domini finiti (tipicamente da 4 punti) ed un esercizio sulla risoluzione in problemi SAT (tipicamente da 4 punti).
Durante la prima prova scritta non è possibile utilizzare materiale didattico.
La prova di laboratorio e la prima prova scritta vanno sostenute nello stesso appello; sono considerate superate se il voto complessivo è almeno 18.
Al fine di verificare la capacità degli studenti di analizzare i dati memorizzati in database con strumenti sia descrittivi che predittivi, vengono effettuati una seconda prova scritta e, su richiesta dello studente, una prova orale (facoltativa).
La seconda prova scritta dura 90 minuti e contiene brevi esercizi e domande teoriche su analisi dei dati. Vale fino a 32 punti, con una soglia di sufficienza posta a 18. Non è consentito usare materiale didattico.
E' possibile, su richiesta dello studente, svolgere una prova orale basata sull'approfondimento di una tematica di ricerca, attraverso l'esposizione del contenuto di pubblicazioni scientifiche scelte dal docente. La prova orale viene richiesta al docente via email e può modificare il voto dello scritto nel range [-2, +2].
Il voto finale è dato dalla somma dei voti nelle prove diviso per 2.
Se richiesto con almeno una settimana di anticipo, l'esame può essere sostenuto in lingua Inglese.
Durante la prova di laboratorio è possibile accedere alla documentazione dei software CLP(FD) e ASP; non è possibile consultare altro materiale (appunti, slide, ecc.).
Il totale dei punti disponibili per questa prova è 25; una valutazione intorno al 25 dimostrerà che lo studente ha ottenuto ottime capacità di modellare e risolvere problemi a vincoli, mentre uno studente che ottiene intorno a 13 punti dimostrerà di aver ottenuto sufficienti capacità di modellare e risolvere problemi a vincoli.
Al fine di verificare la conoscenza dello studente sulle tecniche di propagazione disponibili nei risolutori moderni, viene fatta una prima prova scritta. Questa prova contiene un esercizio in cui deve dimostrare di aver appreso le tecniche di propagazione con vincoli globali nella programmazione logica a vincoli sui domini finiti (tipicamente da 4 punti) ed un esercizio sulla risoluzione in problemi SAT (tipicamente da 4 punti).
Durante la prima prova scritta non è possibile utilizzare materiale didattico.
La prova di laboratorio e la prima prova scritta vanno sostenute nello stesso appello; sono considerate superate se il voto complessivo è almeno 18.
Al fine di verificare la capacità degli studenti di analizzare i dati memorizzati in database con strumenti sia descrittivi che predittivi, vengono effettuati una seconda prova scritta e, su richiesta dello studente, una prova orale (facoltativa).
La seconda prova scritta dura 90 minuti e contiene brevi esercizi e domande teoriche su analisi dei dati. Vale fino a 32 punti, con una soglia di sufficienza posta a 18. Non è consentito usare materiale didattico.
E' possibile, su richiesta dello studente, svolgere una prova orale basata sull'approfondimento di una tematica di ricerca, attraverso l'esposizione del contenuto di pubblicazioni scientifiche scelte dal docente. La prova orale viene richiesta al docente via email e può modificare il voto dello scritto nel range [-2, +2].
Il voto finale è dato dalla somma dei voti nelle prove diviso per 2.
Se richiesto con almeno una settimana di anticipo, l'esame può essere sostenuto in lingua Inglese.
Testi
------------------------------------------------------------
Insegnamento raggruppato: 70476 - INTELLIGENZA ARTIFICIALE PER L'OTTIMIZZAZIONE VINCOLATA (mutua dall'attività formativa INTELLIGENZA ARTIFICIALE PER L'OTTIMIZZAZIONE VINCOLATA - 70443 del CdS INGEGNERIA INFORMATICA E DELL’AUTOMAZIONE - 1229)
------------------------------------------------------------
Il materiale didattico di riferimento viene pubblicato su Google Classroom (codice w4we66a per il 2024/25)
Per approfondimenti, si consigliano i seguenti testi:
- Krzysztof R. Apt and Mark Wallace. Constraint Logic Programming using Eclipse. Cambridge University Press, 2007
- Francesca Rossi, Peter van Beek, Toby Walsh (Eds.):
Handbook of Constraint Programming, Elsevier 2006
- Martin Gebser, Roland Kaminski, Benjamin Kaufmann, Torsten Schaub: Answer Set Solving in Practice. Morgan & Claypool, 2012
------------------------------------------------------------
Insegnamento raggruppato: 70478 - DATA MINING AND ANALYTICS (mutua dall'attività formativa MACHINE LEARNING E DATA MINING - 163192 del CdS INTELLIGENZA ARTIFICIALE, DATA SCIENCE E BIG DATA - 3207)
------------------------------------------------------------
Peter Flach, “Machine Learning The Art and Science of Algorithms that Make Sense of Data”, Cambridge University Press, 2012
Tom M. Mitchell, “Machine Learning”, McGraw-Hill, 1997
Ian Witten, Eibe Frank, “Data Mining: Practical Machine Learning Tools and Techniques with Java Implementations”, ultima edizione, Morgan Kaufmann Publishers
Hal Daumé III, A Course in Machine Learning, http://www.ciml.info/
Insegnamento raggruppato: 70476 - INTELLIGENZA ARTIFICIALE PER L'OTTIMIZZAZIONE VINCOLATA (mutua dall'attività formativa INTELLIGENZA ARTIFICIALE PER L'OTTIMIZZAZIONE VINCOLATA - 70443 del CdS INGEGNERIA INFORMATICA E DELL’AUTOMAZIONE - 1229)
------------------------------------------------------------
Il materiale didattico di riferimento viene pubblicato su Google Classroom (codice w4we66a per il 2024/25)
Per approfondimenti, si consigliano i seguenti testi:
- Krzysztof R. Apt and Mark Wallace. Constraint Logic Programming using Eclipse. Cambridge University Press, 2007
- Francesca Rossi, Peter van Beek, Toby Walsh (Eds.):
Handbook of Constraint Programming, Elsevier 2006
- Martin Gebser, Roland Kaminski, Benjamin Kaufmann, Torsten Schaub: Answer Set Solving in Practice. Morgan & Claypool, 2012
------------------------------------------------------------
Insegnamento raggruppato: 70478 - DATA MINING AND ANALYTICS (mutua dall'attività formativa MACHINE LEARNING E DATA MINING - 163192 del CdS INTELLIGENZA ARTIFICIALE, DATA SCIENCE E BIG DATA - 3207)
------------------------------------------------------------
Peter Flach, “Machine Learning The Art and Science of Algorithms that Make Sense of Data”, Cambridge University Press, 2012
Tom M. Mitchell, “Machine Learning”, McGraw-Hill, 1997
Ian Witten, Eibe Frank, “Data Mining: Practical Machine Learning Tools and Techniques with Java Implementations”, ultima edizione, Morgan Kaufmann Publishers
Hal Daumé III, A Course in Machine Learning, http://www.ciml.info/
Contenuti
------------------------------------------------------------
Insegnamento raggruppato: 70476 - INTELLIGENZA ARTIFICIALE PER L'OTTIMIZZAZIONE VINCOLATA (mutua dall'attività formativa INTELLIGENZA ARTIFICIALE PER L'OTTIMIZZAZIONE VINCOLATA - 70443 del CdS INGEGNERIA INFORMATICA E DELL’AUTOMAZIONE - 1229)
------------------------------------------------------------
Il corso presenta le principali tecniche di propagazione e risoluzione dei vincoli e la loro applicazione concreta a varie tipologie di problemi reali.
In particolare, il corso tratta i linguaggi e risolutori sui domini finiti, con cenni di linguaggi e risolutori sui reali ed altri domini. Particolare enfasi verrà data ai linguaggi basati sulla logica, ovvero linguaggi di programmazione logica a vincoli e programmazione Answer Set Programming. Verranno poi spiegate le principali tecniche utilizzate nei risolutori SAT e le tecniche di codifica di problemi a vincoli in SAT.
Programmazione logica a vincoli sui domini finiti
- Vincoli globali
- Ottimizzazione
- Generazione di nuovi vincoli
- rimozione di simmetrie, vincoli ridondanti
- strategie di search
Algoritmi di risoluzione SAT
- Algoritmo Davis-Putnam-Logeman-Loveland
- Algoritmo Conflict-Directed Clause Learning
Algoritmi di codifica di problemi di soddisfacimento di vincoli in SAT
- direct encoding
- log encoding
- support encoding
Answer Set Programming
------------------------------------------------------------
Insegnamento raggruppato: 70478 - DATA MINING AND ANALYTICS (mutua dall'attività formativa MACHINE LEARNING E DATA MINING - 163192 del CdS INTELLIGENZA ARTIFICIALE, DATA SCIENCE E BIG DATA - 3207)
------------------------------------------------------------
Il corso prevede 60 ore di didattica frontale e esercitazioni di laboratorio sulle seguenti tematiche:
Introduzione al Machine Learning: cenni storici, principali campi applicativi, paradigmi di apprendimento, apprendimento di concetti e ordinamento da generale a specifico, apprendimento di regole proposizionali
L’uso dei dati nel Machine Learning: training, validazione e test; generalizzazione, underfitting e overfitting; capacità; bias e varianza
Metriche di valutazione delle performance di modelli
Classificazione e regressione con modelli basati su alberi (Alberi decisionali, Random forest), Naive Bayes classifier, K-nearest Neighbors, metodi Kernel; Ensemble learning, boosting, bagging
Dimensionality reduction
Clustering (k-means, Expectation Maximization, metodi gerarchici e probabilistici)
Introduzione al Data Mining
Regole associative e APRIORI
Laboratorio: libreria scikit-learn e linguaggio Python
Insegnamento raggruppato: 70476 - INTELLIGENZA ARTIFICIALE PER L'OTTIMIZZAZIONE VINCOLATA (mutua dall'attività formativa INTELLIGENZA ARTIFICIALE PER L'OTTIMIZZAZIONE VINCOLATA - 70443 del CdS INGEGNERIA INFORMATICA E DELL’AUTOMAZIONE - 1229)
------------------------------------------------------------
Il corso presenta le principali tecniche di propagazione e risoluzione dei vincoli e la loro applicazione concreta a varie tipologie di problemi reali.
In particolare, il corso tratta i linguaggi e risolutori sui domini finiti, con cenni di linguaggi e risolutori sui reali ed altri domini. Particolare enfasi verrà data ai linguaggi basati sulla logica, ovvero linguaggi di programmazione logica a vincoli e programmazione Answer Set Programming. Verranno poi spiegate le principali tecniche utilizzate nei risolutori SAT e le tecniche di codifica di problemi a vincoli in SAT.
Programmazione logica a vincoli sui domini finiti
- Vincoli globali
- Ottimizzazione
- Generazione di nuovi vincoli
- rimozione di simmetrie, vincoli ridondanti
- strategie di search
Algoritmi di risoluzione SAT
- Algoritmo Davis-Putnam-Logeman-Loveland
- Algoritmo Conflict-Directed Clause Learning
Algoritmi di codifica di problemi di soddisfacimento di vincoli in SAT
- direct encoding
- log encoding
- support encoding
Answer Set Programming
------------------------------------------------------------
Insegnamento raggruppato: 70478 - DATA MINING AND ANALYTICS (mutua dall'attività formativa MACHINE LEARNING E DATA MINING - 163192 del CdS INTELLIGENZA ARTIFICIALE, DATA SCIENCE E BIG DATA - 3207)
------------------------------------------------------------
Il corso prevede 60 ore di didattica frontale e esercitazioni di laboratorio sulle seguenti tematiche:
Introduzione al Machine Learning: cenni storici, principali campi applicativi, paradigmi di apprendimento, apprendimento di concetti e ordinamento da generale a specifico, apprendimento di regole proposizionali
L’uso dei dati nel Machine Learning: training, validazione e test; generalizzazione, underfitting e overfitting; capacità; bias e varianza
Metriche di valutazione delle performance di modelli
Classificazione e regressione con modelli basati su alberi (Alberi decisionali, Random forest), Naive Bayes classifier, K-nearest Neighbors, metodi Kernel; Ensemble learning, boosting, bagging
Dimensionality reduction
Clustering (k-means, Expectation Maximization, metodi gerarchici e probabilistici)
Introduzione al Data Mining
Regole associative e APRIORI
Laboratorio: libreria scikit-learn e linguaggio Python
Lingua Insegnamento
ITALIANO
Corsi
Corsi
INGEGNERIA INFORMATICA E DELL’AUTOMAZIONE
Laurea Magistrale
2 anni
No Results Found