RICERCA OPERATIVA (Corso di Laurea in Ingegneria Informatica

RICERCA OPERATIVA
(Corso di Laurea in Ingegneria Informatica - Laurea Specialistica - 9 CFU)
Prof. Raffaele Pesenti
Scopo della Ricerca Operativa è fornire un approccio scientifico all'analisi dei problemi di gestione delle risorse
e al decision making. A tal fine la Ricerca Operativa formula modelli logico-matematici e sviluppa metodi di
soluzione su calcolatore per predire le conseguenze associate a scelte alternative e determinare quindi le
decisioni ottime.
In questo contesto il corso si articola nei temi fondamentali della modellazione di problemi, della loro trattabilità,
dei metodi di soluzione tramite la programmazione lineare e non e l'ottimizzazione combinatoria. Obiettivo del
corso è la presentazione della materia nei suoi aspetti metodologici, teorici ed applicativi al fine di fornire allo
studente conoscenze su modelli e algoritmi di base. Al termine del corso lo studente dovrebbe avere acquisito
competenze che gli permettano di affrontare i problemi reali sviluppando modelli e metodi anche originali. In
particolare dovrebbe essere capace di partecipare alla progettazione o alla gestione di sistemi facendo in modo
che essi operino nel modo più efficace ed efficiente in presenza di risorse limitate.
Tutte le informazioni e le dispense del corso possono essere trovate sul sito http://www.unipa.it/~pesenti
MODALITÀ DI ESAME
L’esame prevede una prova scritta ed un colloquio oppure successivi accertamenti del profitto durante
lo svolgimento del corso.
PROGRAMMA DEL CORSO
Problemi e modelli - Introduzione al problem solving: problemi reali e modelli matematici. Il concetto
di sistema. Le difficoltà inerenti la raccolta dei dati. Approccio costruttivo e da template per lo sviluppo di
modelli matematici. Regole pratiche per lo sviluppo dei modelli. Limiti dei modelli.
Programmazione non lineare - Esistenza e caratterizzazione dei minimi. Ottimizzazione ad una
dimensione. Ottimizzazione non vincolata: metodi del gradiente (massima discesa, Newton, quasi-Newton,
gradiente coniugato), convergenza. Ottimizzazione vincolata: caratterizzazione dei minimi (caso vincolato),
metodi del gradiente, metodi con funzioni di penalità, metodi barriera o a punto interno.
Teoria della Complessità Computazionale - Concetto di istanza e dimensione di un'istanza.
Definizione di complessità computazionale di un algoritmo. Problemi trattabili ed intrattabili, vari tipi di
intrattabilità. Problemi decisionali, definizione delle classi P e NP. Concetto di algoritmo non deterministico.
Classe Co-NP. Congettura sulla classe NP. Concetto di riduzione polinomiale. Il teorema di Cook: la classe dei
problemi NP-completi. Alcuni esempi classici di problemi NP-completi. Algoritmi pseudopolinomiali. Problemi
NP-hard, P-easy. Trattabilità della PL. Complessità degli algoritmi paralleli.
Modelli lineari su reti: applicazioni, proprietà algoritmi - Definizioni base. Rappresentazione di una
rete. Matrici di incidenza nodi-archi. Il problemi di flusso su reti: cammino minimo, massimo flusso, flusso a
costo minimo, trasporto, assegnamento. Il problema dell'albero ricoprente di costo minimo e il concetto di
metodo greedy. Reti CPM e PERT.
Euristiche - Errori. Euristiche e algoritmi approssimati. Metaeuristiche costruttive: greedy, di
disaggregazione, lagrangiane. Metaeuristiche migliorative: ricerca locale, tabù search, simulated annealing.