Manuel Iori Dipartimento di Scienze e Metodi dell’Ingegneria (DISMI) Università degli studi di Modena e Reggio Emilia Via Amendola 2, Pad. Buccola, 42122 Reggio Emilia web: www.or.unimore.it/iori/iori.htm email: [email protected] tel: 0522 522 653 1. Introduzione 1 Struttura del Corso Durata – 81 ore totali (9 crediti), divise in: 38 ore di lezione 10 ore di seminari e casi di studio 33 ore di laboratorio informatico Modalità d’esame – Tesina: Progetto informatico da sviluppare in gruppo utilizzando il software Xpress Assegnata ad ogni gruppo durante il corso, con una precisa data di consegna Indispensabile per poter passare al successivo esame orale – Esame orale: domande su tutto il programma trattato nelle ore di lezione Materiale didattico – Tutte le slides e gli esercizi svolti sono disponibili su: www.or.unimore.it/corsi/MOLP/MOLP.htm – Tutte le informazioni sulle tesine e sugli esami orali su: www.or.unimore.it/corsi/MOLP/MOLP-Esami.htm Propedeuticità (consigliate) – Ricerca Operativa – Modelli e Metodi per il Supporto alle Decisioni I Metodi di Ottimizzazione per la Logistica e la Produzione 1. Introduzione 2 Alcuni testi consigliati – R. Baldacci, M. Dell’Amico, Fondamenti di Ricerca Operativa, Pitagora – S. Martello, Ricerca Operativa per la Laurea Magistrale, Progetto Leonardo – A. Colorni, M. Bruglieri, Ricerca Operativa, Edizioni Zanichelli – M. Fischetti, Lezioni di Ricerca Operativa, Edizioni Libreria Progetto, Padova – P. Serafini, Ottimizzazione, Zanichelli – P. Toth, D. Vigo, The Vehicle Routing Problem, SIAM – D. Bertsimas, J.N. Tsitsiklis, Introduction to Linear Optimization, Athena Scientific – F. Glover, G.A. Kochenberger, Handbook of Metaheuristics, Kluwer Metodi di Ottimizzazione per la Logistica e la Produzione 1. Introduzione 3 Programma Introduzione 1. Introduzione alle tematiche del corso (a) Problemi affrontati (b) Tecniche risolutive proposte 2. Introduzione all’uso del software Xpress (a) (b) (c) (d) La programmazione in Xpress Utilizzo di Xpress per la Programmazione Lineare Utilizzo di Xpress per la Programmazione Lineare Intera Soluzione di alcuni esercizi di base 3. Cenni sulla teoria della complessità (a) La complessità degli algoritmi (b) La complessità dei problemi di ottimizzazione Modelli Matematici ed Algoritmi Euristici 4. Modelli matematici ed algoritmi euristici per alcuni problemi di ottimizzazione (a) Introduzione (b) Classificazione degli algoritmi di tipo euristico (c) Presentazione di alcuni problemi di base, sviluppo di modelli e di semplici algoritmi euristici per la loro soluzione: Problema del Knapsack Problema del Bin Packing Problema del Parallel Processor Scheduling Problema del Traveling Salesman Problema del Set Covering (d) Laboratorio: implementazione in Xpress degli algoritmi trattati Metodi di Ottimizzazione per la Logistica e la Produzione 1. Introduzione 4 Algoritmi Metaeuristici 5. Algoritmi di ricerca locale e metaeuristici (a) Classificazione (b) Algoritmi di ricerca locale (c) Algoritmo Multi Start (d) Applicazione al problema dell’Equicut (e) Algoritmi a soglia (f) Simulated Annealing (g) Algoritmi Genetici (h) Tabu Search (i) Ant Colony Optimization Metodi di Ottimizzazione per la Logistica e la Distribuzione 6. I problemi di trasporto e distribuzione (a) Breve introduzione (b) Vincoli e complicazioni (c) Vehicle Routing Problem (VRP) ed estensioni 7. Algoritmi esatti per il VRP (a) Formulazione 2-indici (b) Formulazione di tipo Set Partitioning (c) Formulazione 2-commodity (d) Metodi esatti di tipo branch-and-cut (e) Casi di studio su recenti applicazioni industriali Metodi di Ottimizzazione per la Logistica e la Produzione 1. Introduzione 5 8. Algoritmi euristici per il VRP (a) Euristici costruttivi (b) Ricerca locale (c) Esempi di algoritmi sviluppati in letteratura (d) Tabu Search per il VRP (e) Casi di studio su recenti applicazioni industriali 9. Localizzazione di Servizi (a) Problemi di localizzazione di facilities (b) Algoritmi euristici (c) Modelli matematici (d) Casi di studio su recenti applicazioni industriali Metodi di Ottimizzazione per la Produzione e la Schedulazione 10. La pianificazione della produzione (a) Breve introduzione alla pianificazione della produzione (b) Le linee di produzione i. Il dimensionamento della linea ii. Gestione delle precedenze di lavorazione iii. Il bilanciamento della linea (c) Modelli aggregati i. Il bilanciamento dei flussi ii. Modellazione della capacità produttiva iii. Lot sizing (d) Il problema della disaggregazione (e) Casi di studio su recenti applicazioni industriali Metodi di Ottimizzazione per la Logistica e la Produzione 1. Introduzione 6 11. Schedulazione (a) Gli elementi della schedulazione (b) Problemi a macchina singola (c) Problemi a macchine parallele (d) Shop problem (e) Funzioni obiettivo (f) La classificazione dei problemi di schedulazione (g) Dispatching rules (h) Esempi di algoritmi esatti polinomiali (i) Job Shop (j) Casi di studio su recenti applicazioni industriali Metodi di Ottimizzazione per la Logistica e la Produzione 1. Introduzione 7 Introduzione Molti problemi reali possono essere formulati come problemi di ottimizzazione nel modo seguente: Minimize subject to f (x) x∈X dove f è definita funzione obiettivo ed X ⊆ Rn è l’insieme dei vincoli. Ogni x ∈ X è definita soluzione ammissibile di costo f (x). Se esiste una soluzione x∗ ∈ X tale che: f (x∗) ≤ f (x), ∀x ∈ X allora x∗ è chiamata soluzione ottima (o minimo globale). Per f (x) ed X qualsiasi (Programmazione Matematica), non esiste un algoritmo esatto omnicomprensivo. Esistono alcuni casi particolari in cui è possibile determinare la soluzione ottima: – Programmazione Convessa; – Programmazione Lineare; – Programmazione Lineare Intera. Metodi di Ottimizzazione per la Logistica e la Produzione 1. Introduzione 8 Se f (x) e i vincoli definenti X sono lineari e x ∈ Rn siamo nell’ambito della Programmazione Lineare: Minimize subject to c′ x Ax = b Senza perdita di generalità ci si riconduce usualmente a variabili non negative: Minimize subject to c′ x Ax = b x≥0 Esitono algoritmi ottimi per la risoluzione di problemi di programmazione lineare: – Eesempio: algoritmo del simplesso. Se inoltre x può assumere solo valori interi, siamo nell’ambito della Programmazione Lineare Intera: Minimize subject to c′ x Ax = b x ≥ 0, intero La programmazione lineare intera è definita NP-difficile – non si conoscono algoritmi esatti polinomiali. I tempi di esecuzione possono essere molto elevati. Metodi di Ottimizzazione per la Logistica e la Produzione 1. Introduzione 9 Un grandissimo numero di problemi industriali e gestionali (decisionali) può essere formulato come programmazione lineare intera. Esempio: Vehicle Routing Problem (VRP): – Dato un deposito di partenza, una flotta di veicoli, una rete stradale e un insieme di clienti richiedenti una data quantità di merce, determinare gli instradamenti dei veicoli per soddisfare le richieste dei clienti con la minima spesa. Algoritmo più performante per il VRP: – Soluzione ottima fino a 100 clienti; – Tempi di risoluzione di qualche giorno su un PC standard. In generale, l’obiettivo è quello di determinare una soluzione ottima con metodi esatti. Ad esempio si costruisce il modello matematico del problema e lo si risolve tramite software. Spesso le istanze di interesse pratico hanno dimensioni tali da rendere proibitivo l’utilizzo di algoritmi esatti. In tali casi ci si accontenta di una buona soluzione fra le soluzioni ammissibili. Si utilizzano gli algoritmi euristici, che permettono di trovare in tempi brevi soluzioni ammissibili di buona qualità. Metodi di Ottimizzazione per la Logistica e la Produzione 1. Introduzione 10 Gli algoritmi euristici possono essere classificati come segue: – Algoritmi costruttivi; – Di ricerca locale; – Metaeuristiche. Sono efficaci non solo per problemi di programmazione lineare intera, ma anche di ottimizzazione generale. Differenti compromessi tra qualità della soluzione e tempo di calcolo. Per valutare la soluzione euristica ottenuta si usa una stima (lower bound per problemi di minimo): – Limite inferiore al valore raggiungibile dalla soluzione ottima; – Esempi: rilassamento continuo, rilassamento lagrangiano. Se il valore della soluzione euristica è uguale al lower bound, allora è anche ottimo. Altrimenti ho una stima dell’approssimazione. Esempio, metaeuristici per VRP: – Pochi minuti di esecuzione su un PC; – Generalmente entro un 5% dal lower bound (e spesso entro un 1% dal valore ottimo, se conosciuto). Obiettivo del corso: fornire una conoscenza di base di tecniche di ottimizzazione euristiche, lower bound ed esatte per problemi industriali, con particolare riferimento alla logistica dei trasporti, alla localizzazione di depositi, alla produzione e alla schedulazione. Metodi di Ottimizzazione per la Logistica e la Produzione