Laurea Magistrale in Ingegneria Informatica FONDAMENTI DI RICERCA OPERATIVA Edoardo Amaldi DEI - Politecnico di Milano edoardo.amaldi@polimi.it Pagina web del corso: http://home.dei.polimi.it/amaldi/fro-mi-13-14.html
1. INTRODUZIONE La Ricerca Operativa ( Operations Research ) è la branca della matematica applicata in cui problemi decisionali complessi vengono analizzati e risolti mediante modelli matematici e metodi quantitativi avanzati (ottimizzazione, simulazione, teoria dei giochi,...). Scopo: fornire un supporto alla presa di decisioni A cavallo tra matematica applicata, informatica, economia ed ingegneria 1
1.1 Problemi decisionali Problemi in cui si deve scegliere una soluzione tra un numero elevato di soluzioni alternative (ammissibili) sulla base di uno o più criteri Esempi: 1) Problema di assegnamento: Dati m jobs e m macchine, ogni job può essere eseguito su qualsiasi macchina e sia t ij il tempo di esecuzione del job J i sulla macchina M j. M 1 M 2 M 3 J 1 2 6 3 J 2 8 4 9 J 3 5 7 8 Tabella dei tempi di esecuzione (m = 3) Decidere quale job assegnare ad ogni macchina in modo da minimizzare il tempo totale di esecuzione. Ogni job dev essere assegnato ad una macchina ed ogni macchina deve vedersi assegnare un job. Numero di soluzioni alternative? 2
1.1 Problemi decisionali Problemi in cui si deve scegliere una soluzione tra un numero elevato di soluzioni alternative (ammissibili) sulla base di uno o più criteri Esempi: 1) Problema di assegnamento: Dati m jobs e m macchine, ogni job può essere eseguito su qualsiasi macchina e sia t ij il tempo di esecuzione del job J i sulla macchina M j. M 1 M 2 M 3 J 1 2 6 3 J 2 8 4 9 J 3 5 7 8 Tabella dei tempi di esecuzione (m = 3) Decidere quale job assegnare ad ogni macchina in modo da minimizzare il tempo totale di esecuzione. Ogni job dev essere assegnato ad una macchina ed ogni macchina deve vedersi assegnare un job. Numero di soluzioni alternative? m! possibili assegnamenti (=numero di permutazioni) 3
2) Progetto di rete: Decidere come collegare n città (uffici) tramite un insieme di collegamenti possibili in modo da minimizzare il costo totale di collegamento. Dato un grafo G = (V, E) con un nodo i V per ogni città e un lato [i, j] E di costo c ij per ogni collegamento, selezionare un sottoinsieme di lati di costo totale minimo che permetta il collegamento tra tutte le coppie di nodi. Numero di soluzioni alternative? 4
2) Progetto di rete: Decidere come collegare n città (uffici) tramite un insieme di collegamenti possibili in modo da minimizzare il costo totale di collegamento. Dato un grafo G = (V, E) con un nodo i V per ogni città e un lato [i, j] E di costo c ij per ogni collegamento, selezionare un sottoinsieme di lati di costo totale minimo che permetta il collegamento tra tutte le coppie di nodi. Numero di soluzioni alternative: 2 m dove m = E 5
2) Progetto di rete: Decidere come collegare n città (uffici) tramite un insieme di collegamenti possibili in modo da minimizzare il costo totale di collegamento. Dato un grafo G = (V, E) con un nodo i V per ogni città e un lato [i, j] E di costo c ij per ogni collegamento, selezionare un sottoinsieme di lati di costo totale minimo che permetta il collegamento tra tutte le coppie di nodi. Numero di soluzioni alternative: 2 m dove m = E 3) Cammini minimi: Dato un grafo che rappresenta una rete stradale con una lunghezza (tempo di percorrenza) per ogni arco, determinare il cammino più corto (rapido) tra due punti. 6
4) Pianificazione dei turni: Organizzare i turni del personale rispettando le varie esigenze e minimizzando il numero di persone coinvolte 5) Gestione di servizi: Determinare il numero di sportelli da aprire affinché il tempo medio di attesa non superi un certo valore 6) Problema multicriterio: Decidere quale modello di PC portatile acquistare, tenendo conto del prezzo, del peso, delle prestazioni 7
4) Pianificazione dei turni: Organizzare i turni del personale rispettando le varie esigenze e minimizzando il numero di persone coinvolte 5) Gestione di servizi: Determinare il numero di sportelli da aprire affinché il tempo medio di attesa non superi un certo valore 6) Problema multicriterio: Decidere quale modello di PC portatile acquistare, tenendo conto del prezzo, del peso, delle prestazioni Problemi complessi affrontati con l approccio modellistico (modelli matematici, algoritmi e loro implementazioni) 8
1.2 Schema generale di uno studio di R.O. Problema Modello Algoritmo Programma Fasi principali: definizione del problema costruzione del modello sviluppo dell algoritmo realizzazione del programma analisi dei risultati rimettendo anche in questione le fasi precedenti Modello: rappresentazione semplificata della realtà Per definirlo bisogna individuare gli elementi fondamentali e le principali relazioni tra di loro Algoritmo: dipende dal tipo di problema e di modello 9
1.3 Cenni storici: Ricerca Operativa Origini durante la seconda guerra mondiale: Gruppi di scienziati/ingegneri incaricati di assegnare in modo efficiente le risorse limitate alle diverse operazioni (posizionamento dei radar, approvigionamento dei convogli, logistica...) Operations Research sta per la ricerca del modo più efficiente di condurre le operazioni Nel dopoguerra, metodi analoghi applicati in ambito economico, industriale e sociale. Il boom economico, ingrandendo le imprese e organizzazioni, poneva problemi decisionali sempre più complessi. Circostanze favorevoli: Rapidi progressi teorici in Ricerca Operativa e in Calcolo Numerico Avvento e diffusione dei primi computer (potenza di calcolo disponibile e poi diffusione di software) Ricerca Operativa = Management Science 10
Esempio 1: Mix produttivo Una azienda produce tre tipi di apparecchiature elettroniche. Le fasi critiche del ciclo produttivo: assemblaggio, finitura e controllo di qualità. Minuti-uomo per ogni fase e prodotto: A 1 A 2 A 3 Assemblaggio 80 70 120 Finitura 70 90 20 Controllo qualità 40 30 20 Disponibilità produttiva nell orizzonte di pianificazione espressa in minuti-uomo: Margine lordo unitario espresso in KEuro: Assemblaggio Finitura Controllo qualità 30000 25000 18000 A 1 A 2 A 3 16 10 2 Si suppone che l azienda possa vendere tutto ciò che produce. Formulare in termini matematici il problema di determinare un piano di produzione che massimizzi il margine lordo complessivo. 11
Modello mix produttivo Variabili di decisione: x j = quantità di apparecchiatura A j prodotta, con j = 1, 2, 3 Funzione obiettivo: max z = 16x 1 + 10x 2 + 2x 3 Vincoli: capacità produttiva per ogni fase 80x 1 + 70x 2 + 120x 3 30000 (assemblaggio) 70x 1 + 90x 2 + 20x 3 25000 (finitura) 40x 1 + 30x 2 + 20x 3 18000 (controllo qualità) Non negatività delle variabili: x 1, x 2, x 3 0 (anche valori frazionari) 12
Esempio 2: Pianificazione di investimenti Una società di investimenti finanziari deve decidere la composizione di un portafoglio di titoli. Investimento Area Capitale [ c j ] (KEuro) Rendimento atteso [ r j ] A (settore auto) Germania 150 11% B (settore auto) Italia 150 9% C (settore informatica) U.S.A. 60 13% D (settore informatica) Italia 100 10% E (settore elettrodomestici) Italia 125 8% F (settore elettrodomestici) Francia 100 7% G (titoli di stato a breve) Italia 50 3% H (titoli di stato a lungo) Inghilterra 80 5% Capitale a disposizione = 600 KEuro Al massimo 5 investimenti per non frammentare troppo la gestione. Diversificazione per area geografica: 3 investimenti in Italia e 3 all estero. Formulare in termini matematici il problema di selezione degli investimenti in modo tale da massimizzare il ritorno atteso rispettando i vincoli che mirano a ridurre il rischio. 13
Modello di pianificazione di investimenti Variabili di decisione: x j = 1 se j-esimo investimento viene effettuato e x j = 0 altrimenti, con j = 1,..., 8 Funzione obiettivo: Vincoli: 8 max z = c j r j x j j=1 8 c j x j 600 (capitale) j=1 8 x j 5 (max 5 investimenti) j=1 x 2 + x 4 + x 5 + x 7 3 (max 3 in Italia) x 1 + x 3 + x 6 + x 8 3 (max 3 all estero) Variabili binarie (intere): x j {0, 1} j, 1 j 8 14
Variante: Per limitare il rischio, se si seleziona un investimento nel settore informatico si richiede di selezionare anche un titolo di stato. 15
Variante: Per limitare il rischio, se si seleziona un investimento nel settore informatico si richiede di selezionare anche un titolo di stato. Modello: 8 max z = c j r j x j j=1 8 c j x j 600 (capitale) j=1 8 x j 5 (max 5 investimenti) j=1 x 2 + x 4 + x 5 + x 7 3 (max 3 in Italia) x 1 + x 3 + x 6 + x 8 3 (max 3 all estero) x 3 + x 4 x 7 + x 8 (investimenti in titoli di stato) 2 x j {0, 1} j, 1 j 8 16
Esempio 3: Problema di assegnamento Il responsabile di un azienda di consulenza deve assegnare m = 3 progetti a m ingegneri sulla base delle seguenti stime dei tempi che ciascuno impiega ad eseguire ogni progetto: I 1 I 2 I 3 P 1 2 6 3 P 2 8 4 9 P 3 5 7 8 Tabella dei tempi di esecuzione t ij, 1 i, j 3 Formulare in termini matematici il problema di determinare quale progetto assegnare ad ogni ingegnere in modo tale da minimizzare la somma dei tempi di completamento di tutti i progetti. 17
Modello di assegnamento Variabili di decisione: x ij = 1 se i-esimo progetto viene assegnato al j-esimo ingegnere e x ij = 0 altrimenti i, j con 1 i, j 3 Funzione obiettivo: min z = 3 3 t ij x ij Vincoli: i=1 j=1 3 x ij = 1 j = 1, 2, 3 (ad ogni ingegnere j un unico progetto) i=1 3 x ij = 1 i = 1, 2, 3 (ogni progetto i ad un unico ingegnere) j=1 Variabili binarie (intere): x ij {0, 1} i, j, 1 i, j 3 18
Esempio 4: localizzazione di impianti Tre pozzi petroliferi, situati nei punti A, B e C, estraggono greggio. Si deve localizzare una raffineria e collegarla ai tre pozzi tramite oleodotti di cui il costo è proporzionale al quadrato della loro lunghezza. La raffineria non può essere costruita nel raggio di 100 km attorno al punto (città) D = (100, 200). Gli oleodotti possono invece attraversare la zona vietata. Formulare in termini matematici il problema di decidere dove localizzare la raffineria in modo da minimizzare il costo degli oleodotti. 19
Modello di localizzazione di impianti Variabili di decisione: x 1, x 2 coordinate cartesiane della raffineria Funzione obiettivo: min z = [ (x 1 0) 2 + (x 2 0) 2] [ + (x 1 300) 2 + (x 2 0) 2] + [(x 1 240) 2 + (x 2 300) 2] Vincoli: (x 1 100) 2 + (x 2 200) 2 100 Natura variabili: x 1, x 2 reali 20
1.4 Caratteristiche dei problemi decisionali numero di decisori (chi decide?) numero degli obiettivi (in base a quali criteri decide?) grado di incertezza dei dati (con quali informazioni decide?) Incerto Grado di incertezza ambiente Un decisore, un obiettivo Programmazione matematica Certo Più obiettivi Programmazione multi-obiettivo Grado di incertezza > 0 Programmazione stocastica Uno Uno Molti Numero di decisori Più decisori Teoria dei giochi Molti Numero di criteri 21
1.5 Programmazione matematica (PM) Problemi decisionali con un solo decisore, un solo criterio di scelta e ambiente certo opt f (x) con x X variabili di decisione x R n problema : grandezze numeriche il cui valore individua una soluzione del regione ammissibile X R n distingue le soluzioni ammissibili da quelle non ammissibili (mediante vincoli) = X = x Rn : g i (x) 0, i = 1,..., m funzione obiettivo f : X R esprime in modo quantitativo il gradimento o il costo di ciascuna soluzione ammissibile { } min opt = max Osservazione: max{f(x) : x X} = min{ f(x) : x X} 22
Ottimi globali Risolvere un problema di Programmazione (Ottimizzazione) Matematica consiste nell individuare una soluzione ammissibile globalmente ottima, ovvero un x X tale che f (x ) f (x) x X se opt = min f (x ) f (x) x X se opt = max Può avvenire che: 1. il problema sia inammissibile (X = ) 2. il problema sia illimitato ( c R, x c X tale che f (x c ) c oppure f (x c ) c) 3. vi sia un unica soluzione ottima 4. vi sia un numero elevatissimo (anche infinito) di soluzioni ottime (con lo stesso valore ottimo!) 23
Ottimi locali Talvolta ci si deve accontentare di una soluzione ammissibile localmente ottima, ovvero un ˆx X tale che f (ˆx) f (x) x con x X e x ˆx ɛ se opt = min f (ˆx) f (x) x con x X e x ˆx ɛ se opt = max per ɛ > 0 opportuno Un problema può avere tanti ottimi locali! 24
Casi particolari di PM Programmazione Lineare (PL) f (x) lineare X = x Rn : g i (x) Esempio: Mix produttivo = 0, i = 1,..., m con g i (x) lineari per ogni i Programmazione Lineare Intera (PLI) f (x) lineare X = x Rn : g i (x) = 0, i = 1,..., m Zn con g i (x) lineari per ogni i Esempi: Pianificazione investimenti e assegnamento di incarichi PLI coincide con PL con in più il vincolo di interezza delle variabili di decisione 25
Programmazione Non Lineare (PNL) f (x) convessa/regolare o non convessa/regolare = X = x Rn : g i (x) 0, i = 1,..., m con per ogni i g i (x) convesse/regolari o non Esempio: Localizzazione di impianti (con g i convesse) 26
Cenni storici: Programmazione Matematica 1826/1827: Joseph Fourier presenta un metodo per la risoluzione di sistemi di disuguaglianze lineari (Fourier-Motzkin) e discute alcuni programmi lineari con due o tre variabili 1939: Leonid Kantorovitch getta le basi della Programmazione Lineare (Premio Nobel 1975) 1947: George Dantzig propone indipendentemente la PL ed inventa l algoritmo del simplesso 1958: Ralph Gomory propone il metodo dei piani di taglio per risolvere i problemi di PLI Jean-Baptiste Joseph Fourier L.V. Kantorovitch G.B. Dantzig R.E. Gomory (1786-1830) (1912-1986) (1914-2005) (1929-) 27
1.6 Programmazione a molti obiettivi Vi sono vari approcci per tenere conto di più obiettivi Se si desidera minimizzare f 1 (x) e massimizzare f 2 (x) (esempio portatile: f 1 costo e f 2 prestazioni) 1. ricondursi al caso con un solo obiettivo convertendo i diversi obiettivi in unità di misura omogenee min λ 1 f 1 (x) λ 2 f 2 (x) con adeguati scalari λ 1 e λ 2 2. ottimizzare l obiettivo prioritario e ridurre quelli secondari a vincoli di qualità max x X f 2 (x) con X = {x X : f 2 (x) c} con una adeguata costante c 3. ottimizzazione lessicografica: tra tutte le soluzione che massimizzano f 2, trovare quella che minimizza f 1 min x X f 1 (x) dove X = {x X : x = argmax f2 (x)}. 28
1.7 Programmazione matematica e simulazione Entrambe richiedono la costruzione di un modello e lo sviluppo di un algoritmo Programmazione matematica Simulazione Problemi ben formalizzabili L algoritmo fornisce una soluzione I risultati sono certi Problemi difficili da formalizzare L algoritmo riproduce il sistema reale e permette di sperimentare le prestazioni di soluzioni diverse I risultati sono da interpretare 29
1.8 Esempi di successi della R.O. anno azienda settore effetto 90 Taco Bell turni personale 7.6M $ risparmio (fast food) annuo 92 American Arlines nuovo sistema di tariffe, overbooking + 500M $ e coordinamento dei voli 92 Harris Corp. pianificazione 50% 95% ordini (semiconduttori) produzione on time 95 GM - car rental utilizzo parco +50M $ annui auto evitato fallimento 96 HP - stampanti riprogettata linea raddopiata produttiva produzione 97 Bosques Arauco logistica taglio 5M $ risparmio e trasporto annuo 99 IBM riorganizzata catena 750M $ risparmio logistica annuo La maggior parte dei manager delle Fortune 500 dichiara di aver usato le metodologie della R.O. Video: http://www.bnet.com/videos/operations-research-critical-applications-for-business/178846 30
http://www.scienceofbetter.org/ 31
Non solo per soldi! Ad esempio: progetto regionale con Centrale Operativa 118 Notevoli vantaggi non solo per le grandi aziende/enti/organizzazioni R.O. utile ogniqualvolta si desidera razionalizzare l uso di risorse limitate In un contesto globalizzato e di crisi (caratterizzato da forte competitività, rapida evoluzione, elevata complessità ed incertezza) è indispensabile trovare ed implementare soluzioni efficienti. L informatizzazione e la crescente disponibilità di dati aprono nuovi orizzonti. 32