Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA Laboratorio di Modelli Matematici per il Supporto alle Decisioni - LAB_MMSD - Dott.ssa Michela Lai mlai@unica.it Dott.ing. Alberto Pillai alberto.pillai@virgilio.it http://sorsa.unica.it/ Esercitazione 1
Il processo decisionale La Teoria delle decisioni 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
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:
Pianificazione della produzione 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
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 16
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 17
Dal problema della fonderia a una notazione più generale Il precedente problema può essere così formalizzato: s.t. Possibile applicazione: il problema della dieta 18
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 19
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 20
Il problema della dieta Su Lindo: 21
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 22
Conclusione Problemi con variabili quantitative Il problema della fonderia Il problema della dieta 23
Programmazione Lineare Intera (o mista) Variabili logiche In altri problemi le variabili rappresentano scelte di tipo logico e possono assumere uno solo dei valori 0 (Falso) e 1 (Vero) Esempio: la variabile xi vale 1 se è vero che l’elemento i fa parte di un certo insieme e vale 0 altrimenti I problemi di ottimizzazione con logiche variabili sono detti problemi di Programmazione Lineare Intera (o mista) 24
Variabili logiche Nei problemi di Programmazione Lineare Intera funzione obiettivo e vincoli sono lineari e tutte le variabili possono assumere solo valori interi Quando solo alcune variabili devono essere intere, si parla di programmazione lineare misto-intera Esempio: il Problema dello Zaino (o Knapsack problem) 25
Possibili applicazioni: Problema dello zaino Individuazione del problema, analisi della realtà e raccolta dati Dato un insieme di E = (1,2,…n) elementi, a ciascuno dei quali è associato un peso e un beneficio, determinare un sottoinsieme di elementi tale che produca beneficio totale massimo il peso totale non superi la capacità dello zaino Possibili applicazioni: Scegliere tra n alternative progettuali nel rispetto del budget finanziario (capacità) a disposizione Scegliere come impiegare un capitale finanziario (capacità) tra n possibili investimenti 26
Problema dello zaino Costruzione del modello matematico Notazione aj = peso dell’elemento j, j = 1......n cj = beneficio dell’elemento j, j = 1……n b = peso massimo sostenibile dallo zaino Ipotesi (Cosa succede se ?) aj < b per j = 1……n (Cosa succede nel caso contrario?) 27
Problema dello zaino Costruzione del modello matematico Introduciamo per ogni elemento j є E una variabile logica xj: xj = 1 se l’elemento j è inserito nello zaino xj = 0 se l’elemento j non è inserito nello zaino La condizione sulla capacità dello zaino è pertanto: La funzione obiettivo è: 28
Problema dello zaino Costruzione del modello matematico Formulazione del 0-1 Knapsack problem: s.t. Esercizio. Un ladro entra in un magazzino e trova i seguenti oggetti: Scrivere su Lindo l’istanza del problema dello zaino, in modo da aiutare il ladro a realizzare il furto di maggior valore, compatibilmente con la capacità del suo zaino Elemento A B C D E F Peso 9 12 6 5 3 2 Valore 30 36 15 11 Capacità zaino = 19 29
Problema dello zaino Esercizio La stringa finale int 6 impone che le prime sei variabili dell’istanza siano binarie 30
Problema dello zaino Soluzione del problema con Lindo Soluzione con Lindo: OBJECTIVE FUNCTION VALUE 1) 51.00000 VARIABLE VALUE REDUCED COST XA 0.000000 -30.000000 XB 1.000000 -36.000000 XC 1.000000 -15.000000 XD 0.000000 -11.000000 XE 0.000000 -5.000000 XF 0.000000 -3.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 1.000000 0.000000 NO. ITERATIONS= 2 31
Problema dello zaino Varianti Bounded Knapsack Problem: rispetto alla formulazione precedente, le variabili del problema sono intere e limitate superiormente: xj = nr. di volte che l’elemento j è inserito nello zaino Unbounded Knapsack Problem: rispetto alla formulazione bounded, l’unica differenza è che xj = +∞ 32
Problema dello zaino Esercizio Risolvere su Lindo il problema del ladro utilizzando la variante Unbounded Knapsack Problem La stringa finale gin 6 impone che le prime sei variabili dell’istanza siano intere 33
Problema dello zaino Soluzione del problema con Lindo Soluzione con Lindo: OBJECTIVE FUNCTION VALUE 1) 60.00000 VARIABLE VALUE REDUCED COST XA 2.000000 -30.000000 XB 0.000000 -36.000000 XC 0.000000 -15.000000 XD 0.000000 -11.000000 XE 0.000000 -5.000000 XF 0.000000 -3.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 1.000000 0.000000 NO. ITERATIONS= 1 34
Esercizi per casa 1 Scrivere il modello e risolverlo con dati a piacere 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 `e 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`o 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.
Esercizi per casa 2 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 RISP % Mattina % Sera D.S. 30 D.N.S. 10 20 U.S. 15 U.N.S. 40 5
Problema del call center Individuazione del problema, analisi della realtà e raccolta dati ESERCIZIO: Scrivere il relativo modello di ottimizzazione