Appunti di Ricerca Operativa

Documenti analoghi
3.2 Rilassamenti lineari/combinatori e bounds

Ottimizzazione Combinatoria 2 Presentazione

Appunti di Ricerca Operativa

Indice. 1 Introduzione... 1

Si consideri il seguente tableau ottimo di un problema di programmazione lineare

Lezioni di Ricerca Operativa

Dispense per i corsi di Informatica generale Corso di laurea in Matematica e. Introduzione agli Algoritmi Corso di laurea in Informatica

Ricerca Operativa A.A. 2007/ Introduzione

Appunti di Ricerca Operativa

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione

Dualità Lagrangiana. Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014

Lezioni di Ricerca Operativa

Algoritmo di Branch & Bound

3.4 Metodo di Branch and Bound

Ricerca Operativa. Docente. 1. Introduzione

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

AMPL Problemi su Reti

I Appello Ricerca Operativa 2 bis Compito A

Domande d esame. Ricerca Operativa. G. Liuzzi. Giovedí 14 Maggio Istituto di Analisi dei Sistemi ed Informatica IASI - CNR

Sull algoritmo di ascesa duale per il problema della localizzazione di impianti

ALGORITMI E COMPLESSITA'

Il Problema dell Albero Ricoprente Minimo (Shortest Spanning Tree - SST)

Problemi, istanze, soluzioni

Matroidi, algoritmi greedy e teorema di Rado

COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04

COMPITO DI RICERCA OPERATIVA. max 5 2x 1 + 3x 2 x 3 = 2 + x 1 5x 2 x 4 = 5 + x 2. x 5 = 1 + x 1 x 2

Esame di Ricerca Operativa del 08/01/13. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Esercizi di Programmazione Lineare - Dualità

UNIVERSITA DEGLI STUDI DI PERUGIA

REGISTRI D'ESAME CODICE ESAME CORSO DI LAUREA NOME DEL CORSO LAUREA CFU

Algoritmo basato su cancellazione di cicli

4.1 Localizzazione e pianificazione delle base station per le reti UMTS

Transcript:

Appunti di Ricerca Operativa 2012/2013

Prefazione La Ricerca Operativa è un campo in continua evoluzione, il cui impatto sulle realtà aziendali ed organizzative è in costante crescita. L insegnamento di questa disciplina, ed in particolare delle sue basi metodologiche ed algoritmiche, è quindi indispensabile nei corsi che mirano a formare molte figure con elevate capacità tecnologiche e manageriali, ad esempio ma non solamente nei corsi di Laurea in Informatica, Ingegneria e materie affini. Queste dispense sono state sviluppate dal Gruppo di Ricerca Operativa del Dipartimento di Informatica dell Università di Pisa per il supporto a diversi della stessa Università, quali i Corsi di Laurea in Informatica e in Informatica Applicata e i Corsi di Laurea Specialistica in Informatica e in Tecnologie Informatiche. Inoltre, le dispense sono adottate anche in Corsi di Laurea di altre Università italiane. Queste dispense sono il frutto di un lavoro collettivo, svolto nel corso di molti anni da diverse persone, in forme e ruoli diversi. In particolare, hanno collaborato alla stesura di questo documento Giorgio Gallo, Stefano Pallottino, Maria Grazia Scutellà, AntonioFrangionieGiancarloBigi. Un aiuto particolare alla stesura e al miglioramento delle dispense è stato dato da Paola Cappanera e Maria Paola Scaparra. Molte altre persone, tra cui molti studenti dei corsi di Ricerca Operativa all interno dei corsi di Laurea e di Laurea Specialistica della Classe di Informatica dell Università di Pisa, hanno contributo a queste dispense segnalando errori esuggerendomiglioramenti. Atuttiloro va il ringraziamento degli estensori. Ogni errore ed imprecisione rimasta nel testo è esclusivamente responsabilità degli autori; segnalazioni a tal proposito sonocaldamentebenvenute. L utilizzo di questo materiale in corsi di studio diversi da quelli tenuti dagli estensori del documento è permesso ed incoraggiato, a condizione che sia opportunamente citata la fonte, che non venga tratto profitto dal fornire il materiale agli studenti, e che tale utilizzo venga segnalato agli autori. La modalità di distribuzione consigliata è quella di fare riferimento alla pagina Web dei Corsi di Ricerca Operativa presso il Dipartimento di Informatica http://www.di.unipi.it/optimize/courses/ in cui si trovano le versioni più aggiornate del testo, insieme ad altro materiale che può risultare utile per gli studenti.

Indice 1 Problemi e Modelli 1 1.1 Modelli e Problemi................................... 2 1.2 Tecniche di Modellazione.................................. 6 1.2.1 Programmazione Lineare.............................. 7 1.2.2 Variabili logiche................................... 11 1.2.3 Relazioni binarie................................... 15 1.2.4 Vincoli di assegnamento e semiassegnamento................... 16 1.2.5 Selezione di sottoinsiemi............................... 20 1.2.6 Variabili a valori discreti............................... 22 1.2.7 Minima quantità positiva prefissata......................... 25 1.2.8 Funzione con carico fisso............................ 25 1.2.9 Vincoli di soglia................................... 26 1.2.10 Come rappresentare il valore assoluto....................... 28 1.2.11 Funzioni lineari a tratti............................... 29 1.2.12 Vincoli disgiuntivi.................................. 31 1.2.13 Un esempio di formulazione e alcuni esercizi.......... 33 2 Programmazione Lineare 39 2.1 Problemi di Programmazione Lineare............................ 39 2.1.1 Geometria della Programmazione Lineare.............. 43 2.2 Teoria Matematica della Dualità.............................. 50 2.2.1 Coppie di problemi duali.............................. 51 2.2.2 Il teorema debole della dualità........................... 54 2.2.3 Il teorema forte della dualità e sue conseguenze.................. 55 2.2.4 Il teorema degli scarti complementari................ 58 2.2.5 Soluzioni complementari e basi........................... 62 2.3 Algoritmi del Simplesso................................... 66 2.3.1 L algoritmo del Simplesso Primale......................... 66 2.3.2 L algoritmo del Simplesso Duale.......................... 78 2.3.3 Analisi post-ottimale................................. 84 3 Grafi e reti di flusso 89 3.1 Flussi su reti......................................... 89 3.1.1 Alcuni modelli di flusso............................... 91 3.1.2 Trasformazioni equivalenti.............................. 93 3.2 Cammini di costo minimo............................... 95 3.2.1 Il problema...................................... 96 3.2.2 Alberi, etichette e condizioni di ottimo....................... 97 3.2.3 L algoritmo SPT................................... 99 3.2.4 Algoritmi a coda di priorità............................. 102 3.2.5 Algoritmi a selezione su lista............................ 104 3.2.6 Cammini minimi su grafi aciclici.......................... 107 iii

iv INDICE 3.2.7 Cammini minimi con radici multiple........................ 108 3.3 Il problema di flusso massimo................................ 108 3.3.1 Tagli, cammini aumentanti e condizioni di ottimo....... 109 3.3.2 Algoritmo per cammini aumentanti......................... 112 3.3.3 Algoritmo basato su preflussi............................ 114 3.3.4 Flusso massimo con più sorgenti/pozzi....................... 118 3.4 Il problema di flusso di costo minimo..................... 119 3.4.1 Cammini, cicli aumentanti e condizioni di ottimo....... 119 3.4.2 Algoritmo basato su cammini minimi successivi.................. 122 3.4.3 Algoritmo basato su cancellazione di cicli..................... 124 3.4.4 Basi di cicli...................................... 126 3.5 Problemi di accoppiamento................................. 127 3.5.1 Accoppiamento di massima cardinalità....................... 128 3.5.2 Assegnamento di costo minimo........................ 130 3.5.3 Accoppiamento di massima cardinalità bottleneck................ 133 4 Ottimizzazione Combinatoria 137 4.1 Introduzione....................................... 137 4.2 Programmazione Lineare Intera (Mista).......................... 138 4.2.1 Il rilassamento continuo............................... 139 4.2.2 Formulazioni di PL equivalenti per la PLI.............. 141 4.2.3 Diseguaglianze valide................................. 142 4.3 Dimostrazioni di ottimalità................................. 143 5 Algoritmi euristici 145 5.1 Algoritmi greedy.................................... 145 5.1.1 Esempi di algoritmi greedy.......................... 146 5.1.2 Algoritmi greedy con garanzia sulle prestazioni.................. 153 5.1.3 Matroidi........................................ 161 5.2 Algoritmi di ricerca locale........................... 165 5.2.1 Esempi di algoritmi di ricerca locale................. 167 5.2.2 Intorni di grande dimensione............................ 173 5.2.3 Metaeuristiche.................................... 175 6 Tecniche di rilassamento 187 6.1 Rilassamento continuo.................................... 188 6.1.1 Efficacia del rilassamento continuo......................... 189 6.1.2 Informazione generata dal rilassamento continuo................. 191 6.2 Eliminazione di vincoli.................................... 194 6.2.1 Esempi di rilassamenti per eliminazione di vincoli................. 195 6.3 Rilassamento Lagrangiano.................................. 199 6.3.1 Teoria del rilassamento Lagrangiano................. 201 6.3.2 Algoritmi per il rilassamento Lagrangiano..................... 206 6.3.3 Informazione generata dal rilassamento Lagrangiano............... 211 6.4 Rilassamento surrogato................................... 213 7 Algoritmi enumerativi 215 7.1 Algoritmi di enumerazione implicita............................ 215 7.1.1 Uno schema generale................................. 216 7.1.2 Implementare un algoritmo enumerativo............... 222 7.1.3 Esempi di algoritmi enumerativi.......................... 230 7.2 Tecniche poliedrali...................................... 237

INDICE v A Algoritmi e complessità 239 A.1 Modelli computazionali................................... 239 A.2 Misure di complessità.................................... 239 A.3 Problemi trattabili e problemi intrattabili......................... 240 A.3.1 Le classi P e NP................................... 240 A.3.2 Problemi NP-completi e problemi NP-ardui................... 241 A.3.3 Complessità ed approssimazione.......................... 242 B Grafi e Reti 243 B.1 I grafi: notazione e nomenclatura....................... 243 B.1.1 Grafi, nodi, archi................................... 243 B.1.2 Cammini, cicli.................................... 244 B.1.3 Tagli e connettività.............................. 245 B.1.4 Alberi......................................... 246 B.2 Rappresentazione di grafi ed alberi............................. 248 B.2.1 Matrici di incidenza e liste di adiacenza...................... 248 B.2.2 Rappresentazione di alberi: la funzione predecessore............... 250 B.2.3 Visite di un albero.................................. 250 B.2.4 Livello dei nodi di un albero............................. 250 B.3 Visita di un grafo.................................... 251 B.3.1 Implementazioni della procedura di visita..................... 251 B.3.2 Usi della procedura di visita............................. 253