Operations Research Docente: Marcello Sanguineti [email protected] Via Opera Pia, 13 - Pad. E, IV piano 010 353 2071 320 433 0866 Operations Research (& Management Science) Metodi matematici rivolti alla soluzione di problemi decisionali Nata durante la II guerra mondiale (gestione di risorse limitate, problemi militari di logistica, decriptazione codice Enigma) Si è sviluppata grazie alla disponibilità di strumenti automatici di calcolo (computer) Obiettivo: determinare la decisione ottima dato un problema in presenza di risorse limitate I problemi vengono affrontati definendone rappresentazione quantitativa (modello matematico) una La soluzione dei problemi è cercata per mezzo di tecniche di ottimizzazione Applicazioni: Logistica e trasporti Economia Computer Science Telecomunicazioni Medicina e Biologia ... Esempi di applicazioni: Problemi logistici della produzione Pianificazione della produzione Controllo delle scorte Scheduling Trasporto Esempi di applicazioni: Problemi decisionali di tipo economico Allocazione di capitali Acquisto/Produzione di beni Esempi di applicazioni: Problemi di gestione operativa Definizione dei turni di lavoro Definizione delle rotte di mezzi di trasporto Facility location Gestione ottima di risorse idriche Ottimizzazione di politiche di controllo Gestione ottima di aree di carico/scarico Problemi in reti di comunicazione e distribuzione Esempi di applicazioni: Problemi di computer science Computational complexity Ingegneria del software Worst-case execution times dei programmi Boolean circuits Design di database relazionali Formulazione dei problemi decisionali Decisione: processo di selezione tra più alternative Alternative finite o infinite Alternative definite esplicitamente o implicitamente Scelta sulla base di uno o più criteri (obiettivi) Condizioni di certezza, incertezza o rischio Problema Formulazione Modello Matematico - Identificare/formulare un modello matematico con cui studiare in modo sistematico il problema decisionale Modello Matematico Obiettivi Variabili decisionali Vincoli - Studiare le proprietà del modello - Sfruttare tali proprietà per trovare una metodologia risolutiva efficiente per problemi di grandi dimensioni - “Tradurre” tale metodologia in un algoritmo Obiettivi del Corso Far acquisire le competenze che consentano di: interpretare e modellare un processo decisionale nei termini di un problema di ottimizzazione, individuando cioè le variabili decisionali, la funzione di costo (o la cifra di merito) da minimizzare (o da massimizzare) e i vincoli; inquadrare il problema nella gamma dei problemi considerati “canonici” (lineari/non-lineari, discreti/continui, deterministici/ stocastici, ecc.); identificare una metodologia risolutiva, tradurla in un algoritmo (da scegliere tra quelli esistenti o da progettare) e realizzare il "matching" fra quest’ultimo e un supporto software di elaborazione. An example of the OR approach to decision problems • Suppose you decide to ride a bicycle around Ireland – you will start in Dublin – the goal is to visit Cork, Galway, Limerick, and Belfast before returning to Dublin • What is the best itinerary? – how can you minimize the number of kilometers yet make sure you visit all the cities? Optimal Tour • If there are only 5 cities it’s not too hard to figure out the optimal tour – the shortest path is most likely a “loop” – any path that crosses over itself will be longer than a path that travels in a big circle Increasing the number of cities • As we add cities to our tour, however, it is much harder to figure out the optimal tour – a simple strategy of going to the closest city does not always lead to the shortest tour – this example has 25 cities – after visiting 4 cities, where would – you go next? Exaustive search: too many tours!! • One way to find the optimal tour is to consider all possible paths • BUT: there is a problem with the exhaustive search strategy – the number of possible tours of a map with n cities is (n − 1)! / 2 – n! is the product n × (n − 1) × (n − 2) ... × 2 × 1 • The number of tours grows incredibly quickly as we add cities to the map!! #cities #tours 5 12 6 60 7 360 8 2,520 9 20,160 10 181,440 The number of tours for 25 cities: 310,224,200,866,619,719,680,000 Real-Life Applications • It’s not likely anyone would want to plan a bike trip to 25 cities… • …but the solution of several important real-world problems is the same as finding a tour of a large number of cities – transportation: school bus routes, service calls, delivering meals, ... – manufacturing: an industrial robot that drills holes in printed circuit boards – VLSI (microchip) layout – communication: planning new telecommunication networks – … For many of these problems n (the number of “cities”) can be 1,000 or more The Traveling Salesman • The problem of finding an optimal path between n points is called the Traveling Salesman Problem (TSP) • The TSP is a famous problem – first posed by Irish mathematician W. R. Hamilton in the 19th century – intensely studied in Operations Research and other areas since 1930 This tour of 13,500 US cities was generated by an advanced algorithm that used several “tricks” to limit the number of possible tours Required 5 “CPU-years” [1 CPU Year = amount of computing work done by a 1 GFLOP reference machine in a year of dedicated service (8760 hours). As of 2010, the fastest six-core PC processor reached 109 GFLOPs ) http://www.tsp.gatech.edu/ What can Operations Research do? Goals of Operations Researchers working on the TSP: • developing mathematical models for the TSP (e.g., Integer Linear Programming models); • investigating their properties; • exploiting such properties to devise methodologies that explore possible tours in the TSP much more efficiently than exhaustive search; • “translating” such methodologies into algorithms that can be implemented in computers. La Ricerca Operativa sul grande schermo A Beautiful Mind [Ron Howard, 2001] Adattamento cinematografico della biografia del premio Nobel John Forbes Nash jr. [Russel Crowe] Teoria dei Giochi Enigma [Michael Apted, 2001] Spy story, dall'omonimo romanzo di Robert Harris The Imitation Game [Morten Tyldum , 2014] Adattamento cinematografico della biografia Alan Turing [Benedict Cumberbatch] Programma del Corso INTRODUZIONE ALLA RICERCA OPERATIVA PROGRAMMAZIONE LINEARE (PL) DUALITÀ PROGRAMMAZIONE LINEARE A NUMERI INTERI (PLI) CENNI ALLA TEORIA DELLA COMPLESSITÀ GRAFI E RETI PROGRAMMAZIONE DINAMICA (PD) CENNI ALLA PROGRAMMAZIONE NON LINEARE (PNL) STRUMENTI SOFTWARE ESERCITAZIONI SVOLTE IN MODO DISTRIBUITO DURANTE IL CORSO INTRODUZIONE ALLA RICERCA OPERATIVA Le origini della RO Problemi reali e modelli matematici; limiti dei modelli Obiettivi, variabili decisionali, vincoli Dimensione dei problemi e inefficienza degli algoritmi “brute force”: esempio numerico introduttivo Classificazioni dei problemi di ottimizzazione Il ruolo della RO nell’Informatica PROGRAMMAZIONE LINEARE (PL) Modelli di PL di importanza applicativa Esempio grafico introduttivo Algebra e geometria della PL Algoritmo del simplesso: punto di vista algebrico e punto di vista geometrico Simplesso sul tableau Analisi di post-ottimalità DUALITÀ Problemi duali: modelli di PL di importanza applicativa Dualità debole e dualità forte Interpretazione economica della dualità (prezzi ombra) Slackness complementare PROGRAMMAZIONE LINEARE A NUMERI INTERI (PLI) Modelli di PLI di importanza applicativa (Matching, Sequencing, Fixed-Charge, Knapsack, Steiner Tree, Plant Location, Scheduling) Algebra e geometria della PLI Algoritmo di tipo branch-and-bound Algoritmo basati su piani di taglio; tagli di Gomory Algoritmi di tipo branch-and-cut CENNI ALLA TEORIA DELLA COMPLESSITÀ Concetto di istanza e dimensione di un'istanza Complessità computazionale di un algoritmo Problemi trattabili ed intrattabili. Problemi in forma decisionale Classi P, NP e co-NP Il teorema di Cook La classe dei problemi NP-completi GRAFI E RETI Grafi e loro rappresentazioni Shortest Path (SP). Algoritmo di Dijkstra. Algoritmo di Bellman-Ford Shortest Spanning Tree (SST). Algoritmo di Kruskal. Algoritmo di Primm-Dijkstra Algoritmi greedy Cenni al Travelling Salesman Problem (TSP) Network flow problems: max flow e min cut Cenni al Vehicle Routing PROGRAMMAZIONE DINAMICA (PD) Esempio introduttivo Problemi di ottimizzazione a stadi. Contesto deterministico Fase backward e fase forward Principio di ottimalità Le equazioni di Bellman Estensione al contesto stocastico La “maledizione della dimensionalità” CENNI ALLA PROGRAMMAZIONE NON-LINEARE PNL libera. Esistenza e caratterizzazione dei minimi. Condizioni necessarie e sufficienti. Metodi del gradiente. Metodo di Newton-Raphson. Velocità di convergenza. PNL vincolata. Esistenza e caratterizzazione dei minimi. Condizioni necessarie e sufficienti. Moltiplicatori di Lagrange. Teorema di Kuhn-Tucker. Metodi con funzioni di penalità. Metodi barriera o a punto interno. STRUMENTI SOFTWARE (EXCEL) LINGO CPLEX Optimization Studio MATLAB Optimization Toolbox ESERCITAZIONI Svolte in modo distribuito durante il Corso