|
Mauro DELL'AMICO
Professore Ordinario Dipartimento di Scienze e Metodi dell'Ingegneria
|
Insegnamento: Algoritmi di ottimizzazione
Informatica (Offerta formativa 2024)
Obiettivi formativi
Sviluppare capacità di risolvere problemi complessi tramite alcune delle più moderne ed efficienti tecniche esatte ed euristice: column generation, decomposizione e metaeuristiche.
Presentare metodologie e tecniche matematico-algoritmiche per affrontare problemi computazionalmente complesssi.
Sviluppare capacità di implementare algoritmi matematico-informatici in grado di risolvere problemi complessi.
Presentare alcune recenti tecniche di integrazione tra Machine Learning (ML) e Ottimizzazione Matematica (MO)
Prerequisiti
Conoscenze di programmazione lineare continua e intera.
Conoscenze di linguaggi base di programmazione: python
Programma del corso
Rassegna sugli algoritmi metaeuristici 1CFU
Metodi esatti: column generation e constraint generation. 2CFU
Rassegna su tecniche di Machine Learning per la classificazione e previsione 1CFU
Esempi di modellazione in python 1CFU
Esempi di applicazioni 1CFU
Metodi didattici
Lezioni frontali, esercitazioni di laboratorio, sviluppo di progetti in piccolo gruppi
Il corso è erogato in lingua italiana, in presenza. La frequenza non è obbligatoria, ma fortemente consigliata, in particolare per la parte laboratoriale. Gli studenti lavoratori sono invitati a mettersi in contatto con il docente..
Testi di riferimento
Dispense dell'docente, disponibili online su Moodle
"Column Generation", Desaulniers, Guy, Desrosiers, Jacques, Solomon, Marius M. (Eds.) , Springer
Martin, Richard Kipp (1999), "Large Scale Linear and Integer Optimization: A Unified Approach", Springer
Ronald L. Rardin (2017, second ed.), "Optimization in Operations Research", Pearson.
Gurobi Reference manual
Verifica dell'apprendimento
L’esame consiste nella realizzazione di un piccolo progetto su un tema relativo a un problema di ottimizzazione da sviluppare e implementare singolarmente o in piccoli gruppi.
Risultati attesi
1. Conoscenza e comprensione: conoscere e comprendere l'uso di alcune delle principali tecniche per la soluzione di problemi di decisione ed orttimizzazione,
2. Capacità di applicare conoscenza e comprensione: essere in grado di applicare tecniche di ottimizzazione a problemi di media complessità
3. Autonomia di giudizio: capacità di raccogliere e interpretare i dati ed i risultati di applicazione di metodi algoritmici
4. Abilità comunicative: essere in grado di comunicare informazioni, idee, problemi e soluzioni a interlocutori specialisti e non specialisti;
5. Capacità di apprendimento: aver sviluppato quelle capacità di apprendimento che sono necessarie per estendere le proprie conoscenze di altre tecniche di ottimizzazione e intraprendere studi successivi con un alto grado di autonomia