corso |
Codice: | 426AA | Crediti: | 12 | Semestre: | 1-2 | Sigla: | SID | |
Settore disciplinare: | INF/01 - Informatica |
È utile (anche se non strettamente necessaria) una conoscenza dei concetti base di ottimizzazione matematica.
Il corso si prefigge di fornire agli studenti, attraverso alcuni esempi specifici, la conoscenza dei concetti di base relativi allo sviluppo di strumenti software per il supporto alle decisioni, in particolare quelli basati su tecniche di ottimizzazione. L'obiettivo principale è quello di familiarizzare gli studenti con le problematiche (che raramente vengono affrontate nei corsi di ottimizzazione) relative all'utilizzo nella pratica di strumenti basati su principi matematici complessi, quali il recupero e la validazione dei dati necessari a definire il problema, la scrittura ed il debug di modelli matematici complessi, l'uso consapevole dei complessi algoritmi di soluzione, e l'impatto nel processo dell'incertezza dei dati con le metodologie necessarie per affrontare il problema.
Concetti base relativi ai software per il supporto alle decisioni: interfaccia, solutore, modello, istanza. Esempi rievanti di API di solutori e linguaggi di modellazione. Concetti di base relativi all'uso di solutori per problemi difficili a grande scala. Concetti di base relativi alla gestione del problema dell'incertezza nei dati.
Capacità di affrontare autonomamente tutti i passi necessari all'uso e/o allo sviluppo di un sistema di supporto alle decisioni: selezione dei dati, selezione del modello, selezione degli strumenti algoritmici, implementazione del modello, verifica dell'efficacia (con particolare riferimento al problema dell'incertezza dei dati) e dell'efficienza dell'approccio, azioni volte a migliorarle qualora non siano sufficienti.
Il corso mira ad educare gli studenti ad un approccio critico allo sviluppo di sistemi informativi, in particolare quelli per il supporto alle decisioni, in grado di comprendere le necessità ed i punti di vista di tutti gli attori e di determinare il corretto compromesso tra fedeltà del modello ed efficienza computazionale dello stesso. Elemento fondamentale in questo è la correttezza deontologica nel palesare agli utilizzatori i limiti che inevitabilmente questi strumenti hanno ed i compromessi che devono essere fatti nel loro sviluppo, rimanendo sempre aperti alle giuste istanze degli utenti e fornendo in modo professionale il proprio contributo alla selezione del mix di strumenti e tecniche più appropriato a ciascuna applicazione specifica.
Il corso si prefigge di fornire agli studenti, attraverso esempi concreti ed il lavoro progettuale, la capacità di realizzare ed utilizzare al meglio sistemi di supporto a decisioni complesse, perlopiù in ambito aziendale, in particolare quelli basati su tecniche di ottimizzazione matematica. Il corso si concentra sugli aspetti pratici dell'uso di tali strumenti (sistemi e linguaggi di modellazione, solutori ed interfacce, parametri algoritmici) e mira ad avere una forte componente progettuale in modo da familiarizzare gli studenti in particolare con gli aspetti prettamente informatici di queste attività. Dato però che tali strumenti sono fondati su schemi algoritmici complessi e proprietà matematiche rigorosamente definite, è necessario fornire allo stesso tempo agli studenti la consapevolezza di tali fondamenti, in particolare dove ciò sia necessario per comprenderne al meglio l'uso o permettere la progettazione di approcci più efficaci ed efficienti, ad esempio con riguardo alle problematiche relative all'incertezza dei dati.
The course will, through presentation of actual working cases and project work, enable the student to produce and/or appropriately use software tools for the support to complex decisions (mainly at the corporate/industrial level), in particular those based on mathematical optimization techniques. The course is focussed on practical aspects of these tools (modeling languages and systems, solvers and interfaces, algorithmic parameters, ...) and has a strong project aspect in order to familiarize the students, in particular, with the specific computer science aspects of these activities. However, since these tools are based on complex algorithmic schemes and rigorously defined mathematical properties, it is at the same time necessary to provide the students with appropriate consciousness of these foundational aspects, in particular whenever this is necessary to better understand their use or design more efficient and effective approaches; a particularly relevant case is that of handling the issue of uncertainty in the data of the problem.
- Teoria delle decisioni, processi decisionali.
- Struttura dei sistemi di supporto alle decisioni.
- Richiami ai problemi di Programmazione Lineare (PL) e Programmazione Lineare Intera (PLI)
- Struttura dei solutori di PL e PLI
- Richiami agli algoritmi risolutivi per PL e PLI
- Costruzione delle istanze: API, linguaggi e sistemi di modellazione
- Risoluzione di istanze di problemi realistici e loro difficoltà in pratica
- Metodologie per il miglioramento della prestazioni degli agoritmi:
= piani di taglio
= tecniche di generazione di colonne e decomposizione
= euristiche e metaeuristiche
- Il problema dell'incertezza dei dati e le metodologie per affrontarlo:
= ottimizzazione stocastica
= ottimizzazione robusta
Ore lezione: | 30 | Ore esercitazione: | 4 | Ore laboratorio: | 14 |
Jon Lee A First Course in Linear Optimization Reex Press, 2013
Appunti, lucidi ed altro materiale distribuito dal docente durante il corso
D. Simchi-Levi, X. Chen and J. Bramel Logic of Logistics: Theory, algorithms, and applications for logistics and supply chain Springer-Verlag, 2004
L.A. Wolsey Integer programming John Wiley & Sons
G. Ghiani, R. Musmanno Modelli e Metodi per l'Organizzazione dei Sistemi Logistici Pitagora, 2000