Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA Ricerca Operativa - RO - Dott.ssa Michela Lai mlai@unica.it http://sorsa.unica.it/ Esercitazione 1
Il processo decisionale La ricerca operativa si occupa dello studio di metodologie per la soluzione di problemi decisionali. Articolazione del processo decisionale in tale disciplina: Individuazione del problema fisico Analisi del problema e raccolta dati Costruzione di un modello matematico Implementazione di un algoritmo risolutivo per quel modello Determinazione di una o più soluzioni Analisi dei risultati ottenuti Tipicamente queste fasi non sono strettamente sequenziali
Il processo decisionale Modello: descrizione della porzione di realtà di interesse ai fini del processo decisionale. I modelli di supporto alle decisioni possono essere fisici (esempio: la galleria del vento) o matematici. Modello matematico: descrizione con strumenti di tipo logico-matematico della porzione di realtà di interesse. I modelli matematici possono essere suddivisi in modelli di simulazione, di teoria dei giochi e di ottimizzazione. In questo corso ci occupiamo di modelli di ottimizzazione impiegati per descrivere e risolvere problemi di ottimizzazione.
Problemi di ottimizzazione In un problema di ottimizzazione occorre prendere decisioni sull’uso di risorse disponibili in quantità limitata, in modo da minimizzare il “costo” da esse prodotto e rispettare un dato insieme di condizioni. Un problema di ottimizzazione può essere interpretato come una domanda inviata dal detentore del problema a colui/colei che può risolverlo Dato un insieme F di possibili risposte (o soluzioni ammissibili), un problema di ottimizzazione può essere così formalizzato: min c(x): x є F dove c: F ->R è una funzione che misura il costo associato ad ogni soluzione ammissibile
Problemi di ottimizzazione Un problema di ottimizzazione presenta dei parametri, in generale lasciati indeterminati, e delle proprietà che devono caratterizzare la risposta (o soluzione) desiderata Un’istanza di un dato problema di ottimizzazione è la domanda che si ottiene specificando particolari valori per tutti i parametri del problema La formalizzazione di un problema di ottimizzazione a partire da un problema fisico avviene attraverso un processo di “modellazione” del problema
Modelli di ottimizzazione Non esistono metodologie formali per generare automaticamente modelli di ottimizzazione . La loro costruzione è lasciata fondamentalmente alla fantasia, alla creatività e all’esperienza del singolo In queste esercitazioni vedremo una carrellata di tecniche di modellazione, che possono essere utilizzate come blocchi per modelli più complessi La soluzione di un modello è sempre la soluzione della rappresentazione costruita del problema reale
Il problema della fonderia Definizione del problema, analisi della realtà e raccolta dati Una fonderia deve produrre 1000 pezzi del peso ciascuno di 1kg. Il ferro con cui tali pezzi sono fatti dovrà contenere manganese e silicio nelle seguenti quantità: manganese ≥ 0.45 % 3.25% ≤ silicio ≤ 5.5% Sono disponibili tre tipi di materiale ferroso con le seguenti caratteristiche: Inoltre si può acquistare il solo manganese a 10€/kg TIPO A TIPO B TIPO C % di silicio 4.00 1.00 0.60 % di manganese 0.45 0.50 0.40 Costo (€/kg) 0.025 0.03 0.018 7
Il problema della fonderia Definizione del problema, analisi della realtà e raccolta dati ESERCIZIO: Determinare il piano di produzione che minimizza il costo d’acquisto delle materie prime mediante un modello di Programmazione Lineare
Il problema della fonderia Definizione del problema, analisi della realtà e raccolta dati Variabili: xFA (≥0): numero di kg di materiale ferroso A da acquistare xFB (≥ 0): numero di kg di materiale ferroso B da acquistare xFC (≥ 0): numero di kg di materiale ferroso C da acquistare xM (≥ 0): numero di kg di manganese da acquistare La definizione di queste variabili ci consente di rispettare i vincoli di non negatività
Il problema della fonderia Definizione del problema, analisi della realtà e raccolta dati Vincoli Il numero totale di kg prodotti deve essere 1000: xFA + xFB + xFC + xM = 1000 La quantità di silicio presente nel prodotto risultante è: 0.04 xFA + 0.01 xFB + 0.006 xFC e dovrà essere compresa tra il 3.25% e il 5.5% del totale (1000 kg), quindi 0.04 xFA + 0.01 xFB + 0.006 xFC ≥ 32.5 0.04 xFA + 0.01 xFB + 0.006 xFC ≤ 55
Il problema della fonderia Definizione del problema, analisi della realtà e raccolta dati La quantità di manganese presente nel prodotto risultante non dovrà essere inferiore al 0.45% del totale, quindi: 0.0045 xFA + 0.005 xFB + 0.004 xFC + xM ≥ 4.5 Dobbiamo determinare il piano di produzione che minimizza il costo di acquisto: min 0.025 xFA + 0.03 xFB + 0.018 xFC + 10 xM
Il problema della fonderia Costruzione del modello di ottimizzazione Il problema può essere così formalizzato: min 0.025 xFA + 0.03 xFB + 0.018 xFC + 10 xM s.t. xFA + xFB + xFC + xM = 1000 0.04 xFA + 0.01 xFB + 0.006 xFC ≥ 32.5 0.04 xFA + 0.01 xFB + 0.006 xFC ≤ 55 0.0045 xFA + 0.005 xFB + 0.004 xFC + xM ≥ 4.5 xFA , xFB , xFC ,xM ≥ 0 ESERCIZIO: Scrivere l’istanza su Lindo
Il problema della fonderia Determinazione delle soluzioni Istanza su Lindo: min 0.025 xfa + 0.03 xfb + 0.018 xfc + 10 xm s.t. xfa + xfb + xfc + xm = 1000 0.04 xfa + 0.01 xfb + 0.006 xfc > 32.5 0.04 xfa + 0.01 xfb + 0.006 xfc < 55 0.0045 xfa + 0.005 xfb + 0.004 xfc + xm > 4.5 end
Il problema della fonderia Analisi dei risultati LP OPTIMUM FOUND AT STEP 4 OBJECTIVE FUNCTION VALUE 1) 24.56130 VARIABLE VALUE REDUCED COST XFA 779.431274 0.000000 XFB 0.000000 0.001744 XFC 220.457962 0.000000 XM 0.110727 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 0.022441 3) 0.000000 -0.058494 4) 22.500000 0.000000 5) 0.000000 -10.022441 Soluzione con Lindo:
Il problema della fonderia Individuazione del problema, analisi della realtà e raccolta dati Variable value E’ il vettore delle variabili in condizioni di ottimo Reduced cost (di una variabile) Quantità di cui deve migliorare il coefficiente di quella variabile nella f.o. in modo che questa entri in base Peggioramento della f.o. se quella variabile fuori base fosse forzata ad entrare in base con una variazione unitaria Dual prices (di un vincolo) E’ l’incremento che subirebbe la f.o. in conseguenza di un incremento unitario del RHS del vincolo considerato Slack or Surplus (di un vincolo) Indica lo scarto tra primo e secondo membro
Pianificazione della produzione Individuazione del problema, analisi della realtà e raccolta dati La società Alfa produce 2 linee di microprocessori destinate a 2 diverse tipologie di mercato: Processori A, più potenti e destinati ad un mercato “server” Processori B, meno potenti e destinato ad un mercato “home” La società è in grado di produrre al massimo 3000 wafer a settimana. Da ogni wafer si possono ottenere: 300 processori di tipo A con una resa media del 50% 500 processori di tipo B con una resa media del 60% (i processori B sono meno grandi e meno soggetti a difetti) 16
Pianificazione della produzione Individuazione del problema, analisi della realtà e raccolta dati Prezzi di vendita: 500$ per ogni processore di tipo A 200$ per ogni processore di tipo B La divisione commerciale della società ha stabilito che la massima quantità di processori che possono essere immessi settimanalmente sul mercato, senza causare una riduzione dei prezzi, è: 400.000 processori di tipo A 700.000 processori di tipo B
Pianificazione della produzione Individuazione del problema, analisi della realtà e raccolta dati Determinare con un modello di programmazione lineare quanti processori di tipo A e B occorre produrre settimanalmente, in modo da massimizzare l’utile atteso per la società Processori A Ricavo: 500 $/processore Processori immettibili sul mercato in una settimana: 400.000 Capacità produttiva: 300 processori ottenibili da 1 wafer (resa 50%) Processori B Ricavo: 200 $/processore Processori immettibili sul mercato in una settimana: 700.000 Capacità produttiva: 500 processori ottenibili da 1 wafer (resa 60%) L’impianto è in grado di produrre 3000 wafer alla settimana
Pianificazione della produzione Costruzione del modello di ottimizzazione Variabili xA : numero di processori di tipo A da produrre in una settimana xB : numero di processori di tipo B da produrre in una settimana Poiché non è possibile produrre quantità negative di processori ed esistono delle limitazioni superiori imposte dalla divisione commerciale, si ha che: 0 ≤ xA ≤ 400.000 0 ≤ xB ≤ 700.000
Pianificazione della produzione Costruzione del modello di ottimizzazione Vincoli dovuti al processo produttivo: wA : numero di wafer impiegati per produrre processori di tipo A wB : numero di wafer impiegati per produrre processori di tipo B wA + wB ≤ 3000 Da ogni wafer si possono ricavare in una settimana: 300 · 0.5 = 150 processori di tipo A xA= wA · 150 500 · 0.6 = 300 processori di tipo B xB = wB · 300
Pianificazione della produzione Costruzione del modello di ottimizzazione Ipotizzando che i costi di produzione, pubblicità e distribuzione siano indipendenti dalla tipologia di processore, massimizzare tale ricavo è equivalente a massimizzare l’utile atteso dalla vostra società Il ricavo è dato dalla seguente funzione lineare: max 500 · xA + 200 · xB
Pianificazione della produzione Costruzione del modello di ottimizzazione e determinazione delle soluzioni Modello di ottimizzazione: max 500 xA + 200 xB s.t. xA ≤ 400.000 xB ≤ 700.000 2 xA + xB ≤ 900.000 xA ≥ 0 xB ≥ 0 ESERCIZIO: Ricavare graficamente 3 soluzioni ammissibili e i relativi ricavi 22
Pianificazione della produzione Costruzione del modello di ottimizzazione e determinazione delle soluzioni Modello di ottimizzazione: max 500 xA + 200 xB s.t. xA ≤ 400.000 xB ≤ 700.000 2 xA + xB ≤ 900.000 xA ≥ 0 xB ≥ 0 Spazio ammissibile: 23 23
Pianificazione della produzione Costruzione del modello di ottimizzazione e determinazione delle soluzioni Quanti wafer occorre utilizzare all’ottimo per i due tipi di processori? Questi valori di wA e wB non sono accettabili. Un wafer può essere impiegato solo per una tipologia di processori. Tuttavia, spesso le stime commerciali hanno un rilevante margine di incertezza. Una buone soluzione ammissibile intera è: wA = 2.666 wB = 333
Pianificazione della produzione Costruzione del modello di ottimizzazione e determinazione delle soluzioni Modello di ottimizzazione: max 500 xA + 200 xB s.t. xA ≤ 400.000 xB ≤ 700.000 2 xA + xB ≤ 900.000 xA ≥ 0 xB ≥ 0 ESERCIZIO: Scrivere l’istanza su Lindo
Pianificazione della produzione Costruzione del modello di ottimizzazione e determinazione delle soluzioni Modello di ottimizzazione: max 500 xA + 200 xB s.t. xA ≤ 400.000 xB ≤ 700.000 2 xA + xB ≤ 900.000 xA ≥ 0 xB ≥ 0 Istanza su Lindo: max 500 xa + 200 xb s.t. xa < 400000 xb < 700000 2 xa + xb < 900000 end
Pianificazione della produzione Costruzione del modello di ottimizzazione e determinazione delle soluzioni LP OPTIMUM FOUND AT STEP 2 OBJECTIVE FUNCTION VALUE 1) 0.2200000E+09 VARIABLE VALUE REDUCED COST XA 400000.000000 0.000000 XB 100000.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 100.000000 3) 600000.000000 0.000000 4) 0.000000 200.000000 NO. ITERATIONS= 2 Soluzione con Lindo: 27
Dal problema della fonderia a una notazione più generale La struttura modellistica del problema della fonderia può essere applicata a numerosi problemi decisionali: Si deve definire quante unità acquistare tra un dato insieme di prodotti (ad esempio tre tipologie di materiali ferrosi) Spesso non si può acquistare una quantità di un dato prodotto che sia superiore a un limite predefinito Questi prodotti presentano delle proprietà (ad esempio la quantità di silicio e manganese) Il mix di beni acquistati deve garantire dei requisiti rispetto a tali proprietà (ad esempio la quantità minima di silicio e manganese) Occorre minimizzare il costo di acquisto dei prodotti 28
Dal problema della fonderia a una notazione più generale j l’indice dei prodotti tra cui poter scegliere i l’indice delle proprietà xj la quantità (non negativa) da acquistare del prodotto j cj il costo unitario di acquisto del prodotto j uj la quantità massima acquistabile del prodotto j bi la quantità minima della proprietà i richiesta nel mix di prodotti da acquistare aij la quantità di proprietà i presente in una unità del prodotto j 29
Dal problema della fonderia a una notazione più generale Il precedente problema può essere così formalizzato: s.t. Possibile applicazione: il problema della dieta 30
Il problema della dieta Una mensa scolastica deve pianificare gli acquisti degli alimenti per la sua attività La dieta deve rispettare alcuni requisiti nutrizionali minimi e le porzioni massime di ogni alimento Noti i costi unitari dei vari alimenti, determinare la composizione di alimenti in modo da minimizzare il costo complessivo d’acquisto degli alimenti 31
Il problema della dieta ESERCIZIO Definire variabili e vincoli. Scrivere l’istanza su Lindo Dati del problema: Alimento Quantità massima (in hg) Prezzo di vendita (in €/hg) Pane 4 0.1 Latte 3 0.5 Uova 1 0.12 Carne 2 0.9 Dolce 1.3 Valori nutrizionali minimi Calorie 600 cal. Proteine 50 g Calcio 0.7 g Valori nutrizionali per hg Pane Latte Uova Carne Dolce Calorie 30 50 150 180 400 Proteine 5 g 15 g 30 g 90 g 70 g Calcio 0.02 g 0.15 g 0.05 g 0.08 g 0.01 g 32
Il problema della dieta Istanza su Lindo: min 0.1 x_pane + 0.5 x_latte + 0.12 x_uova + 0.9 x_carne + 1.3 x_dolce s.t. 30 x_pane + 50 x_latte + 150 x_uova + 180 x_carne + 400 x_dolce > 600 5 x_pane + 15 x_latte + 30 x_uova + 90 x_carne + 70 x_dolce > 50 0.02 x_pane + 0.15 x_latte + 0.05 x_uova + 0.08 x_carne + 0.01 x_dolce > 0.7 x_pane < 4 x_latte < 3 x_uova < 1 x_carne < 2 x_dolce < 2 end 33
Il problema della dieta Soluzione con Lindo: LP OPTIMUM FOUND AT STEP 6 OBJECTIVE FUNCTION VALUE 1) 3.370000 VARIABLE VALUE REDUCED COST X_PANE 4.000000 0.000000 X_LATTE 3.000000 0.000000 X_UOVA 1.000000 0.000000 X_CARNE 1.500000 0.000000 X_DOLCE 0.000000 1.187500 34
Problema del call center Individuazione del problema, analisi della realtà e raccolta dati Per un’indagine conoscitiva si vogliono contattare rispettivamente almeno: 150 donne sposate 110 donne non sposate 120 uomini sposati 100 uomini non sposati Dati: Costo telefonate al mattino (prima delle 14:00) = 0.2€ Costo telefonate alla sera (dopo le 14:00) = 0.1€ Probabilità di risposta: Quante telefonate effettuare nei due periodi? Si richiede che almeno metà delle telefonate sia effettuata al mattino ESERCIZIO: Scrivere il relativo modello di ottimizzazione RISP % Mattina % Sera D.S. 30 D.N.S. 10 20 U.S. 15 U.N.S. 40 5
Problema del call center Costruzione del modello di ottimizzazione Variabili tm: numero di telefonate da compiere al mattino di costo unitario tp: numero di telefonate da compiere al pomeriggio di costo unitario Parametri i: indice delle categorie di persone a cui telefonare aim: probabilità di trovare una persona della categoria i al mattino aip: probabilità di trovare una persona della categoria i al pomeriggio bi: numero minimo di persone di categoria i a cui telefonare
Problema del call center Costruzione del modello di ottimizzazione Funzione obiettivo: min cm ∙ tm + cp ∙ tp Soddisfacimento del numero minimo di chiamate per la categoria i: aim ∙ tm + aip ∙ tp ≥ bi Almeno la metà delle telefonate devono essere effettuate al mattino: tm - tp ≥ 0 Vincoli di non-negatività: tm ≥0 tp ≥0 ESERCIZIO: Scrivere l’istanza su lindo
Problema del call center Determinazione delle soluzioni Modello di ottimizzazione: min cm ∙ tm + cp ∙ tp aim ∙ tm + aip ∙ tp ≥ bi tm - tp ≥ 0 tm ≥0 tp ≥0 Istanza su Lindo: min 2 tm + 1 tp s.t. 30 tm + 30 tp > 15000 10 tm + 20 tp > 11000 10 tm + 15 tp > 12000 40 tm + 5 tp > 10000 tm - tp > 0 end
Problema del call center Analisi dei risultati LP OPTIMUM FOUND AT STEP 5 OBJECTIVE FUNCTION VALUE 1) 1440.000 VARIABLE VALUE REDUCED COST TM 480.000000 0.000000 TP 480.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 13800.000000 0.000000 3) 3400.000000 0.000000 4) 0.000000 -0.120000 5) 11600.000000 0.000000 6) 0.000000 -0.800000 NO. ITERATIONS= 5 Soluzione con Lindo
Esercizi per casa 1 Scrivere il modello L’agenzia matrimoniale Cuori Solitari deve organizzare il gran ballo di fine anno. L’agenzia ha n clienti maschi e n clienti femmine, ed ha prenotato n tavoli da due posti al famoso ristorante Cupido. Dai profili psicologici raccolti dai clienti, l’agenzia è in grado di calcolare, per ogni maschio i, l’insieme F(i) delle femmine con le quali potrebbe essere interessato ad intrecciare una relazione, e che potrebbero essere interessate ad intrecciare una relazione con lui; un analogo insieme M(j) può essere ottenuto per ogni femmina j. Dai profili dei clienti, l’agenzia `e anche in grado di calcolare, per ogni coppia (i; j) “compatibile”, il costo cij della cena da offrire, che deve consistere di piatti graditi ad entrambi i commensali. L’agenzia vuole quindi decidere come formare le coppie per il gran ballo in modo da evitare coppie incompatibili e minimizzare il costo complessivo delle cene.