260 likes | 380 Views
Dott.ing. Massimo Di Francesco mdifrance@unica.it Dott.ssa Michela Lai mlai@unica.it. http://sorsa.unica.it/. Economia Applicata all’Ingegneria. Esercitazione 2. La programmazione lineare per problemi decisionali di economia. Articolazione del processo decisionale:
E N D
Dott.ing. Massimo Di Francesco mdifrance@unica.it Dott.ssa Michela Lai mlai@unica.it http://sorsa.unica.it/ Economia Applicata all’Ingegneria Esercitazione 2
La programmazione lineare per problemi decisionali di economia Articolazione del processo decisionale: • Definizione del problema • Costruzione di un modello matematico di programmazione lineare • Risoluzione delle istanze del modello con il programma scelto (ad esempio Lindo) • Analisi dei risultati ottenuti Tipicamente queste fasi non sono strettamente sequenziali Modello matematico: descrizione con strumenti di tipo logico-matematico della porzione di realtà di interesse. 2
La programmazione lineare per problemi decisionali di economia Non esistono metodologie formali per generare automaticamente modelli di programmazione lineare. La loro costruzione è lasciata fondamentalmente alla fantasia, alla creatività e all’esperienza del singolo La soluzione di un modello è sempre la soluzione della rappresentazione costruita del problema reale 3
Il problema della fonderiaDefinizione 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 4
Il problema della fonderiaDefinizione 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 5
Il problema della fonderiaDefinizione 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à 6
Il problema della fonderiaDefinizione 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 7
Il problema della fonderiaDefinizione 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 8
Il problema della fonderiaCostruzione 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 9
Il problema della fonderiaDeterminazione 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 fonderiaAnalisi 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:
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 12
Dal problema della fonderia a una notazione più generale Notazione • j l’indice dei prodotti tra cui poter scegliere • i l’indice delle proprietà • xjla 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 prodottoj 13
Dal problema della fonderia a una notazione più generale • Il precedente problema può essere così formalizzato: s.t. Possibile applicazione: il problema della dieta 14
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 15
Il problema della dieta ESERCIZIO Definire variabili e vincoli. Dati del problema: 16
Il problema della dieta min 0.1 x_pane + 0.5 x_latte + 0.12 x_uova + 0.9 x_carne + 1.3 x_dolce 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 17
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
Pasta Un’impresa produce 3 tipi di pasta: Tipo A, Tipo B e Tipo C. Per produrre la pasta utilizza 4 diverse macchine (M1, M2, M3, M4) le cui produzioni orarie sono: • M1: 15 pacchi di pasta tipo B e 10 tipo C • M2: 20 pacchi di pasta tipo A, 15 tipo B e 25 tipo C • M3: 25 pacchi di pasta tipo A e 20 tipo C • M4: 20 pacchi di pasta tipo A 10 tipo B Il mercato giornalmente richiede almeno: 650 pacchi di pasta di tipo A, 500 di tipo B e 500 di tipo C. I costi di produzione orari sono: • M1: 90 euro • M2: 150 euro • M3: 140 euro • M4: 105 euro Ogni macchina non può superare 15ore di produzione giornaliere. Inoltre, le ore di produzione sono complete (una macchina lavora per 0,1, 2,…,15 ore, non si tiene conto dei minuti). Determinare la produzione giornaliera di costo minimo. 19
Pasta Variabili: • M1: numero di ore giornaliere di impiego della macchina 1 • M2: numero di ore giornaliere di impiego della macchina 2 • M3: numero di ore giornaliere di impiego della macchina 3 • M4: numero di ore giornaliere di impiego della macchina 4 Vincoli: • Il numero massimo delle ore nelle quali può lavorare ogni macchina è 15 • M1 ≤ 15 • M2 ≤ 15 • M3 ≤ 15 • M4 ≤ 15 • La quantità minima giornaliera richiesta per tipologia di pasta: • 20 M2 + 25 M3 + 20 M4 ≥ 650 • 15 M1 + 15 M2 + 10 M4 ≥ 500 • 10 M1 + 25 M2 + 20 M3 ≥ 500 20
Pasta Su Lindo : • min 90 M1 + 150 M2 + 140 M3 + 105 M4 • s.t. • M1) M1 < 15 • M2) M2 < 15 • M3) M3 < 15 • M4) M4 < 15 • PACCHIA)20 M2 + 25 M3 + 20M4 > 650 • PACCHIB)15 M1+ 15 M2 + 10M4 > 500 • PACCHIC)10 M1+ 25 M2 + 20M3 > 500 • end • gin 4 Nome seguito da “)” consente di assegnare un nome al vincolo facilitando la lettura della soluzione
Pasta Soluzione su Lindo: • OBJECTIVE FUNCTION VALUE • 1) 4915.000 • VARIABLE VALUE REDUCED COST • M1 9.000000 90.000000 • M2 15.000000 150.000000 • M3 2.000000 140.000000 • M4 15.000000 105.000000 • ROW SLACK OR SURPLUS DUAL PRICES • M1) 6.000000 0.000000 • M2) 0.000000 0.000000 • M3) 13.000000 0.000000 • M4) 0.000000 0.000000 • PACCHIA) 0.000000 0.000000 • PACCHIB) 10.000000 0.000000 • PACCHIC) 5.000000 0.000000
Turni Ospedalieri Il direttore amministrativo dell’ospedale Santa Cara deve stabilire i turni ospedalieri delle ostetriche, in modo da garantire un minimo numero di ostetriche presenti in ogni turno (indicato nella tabella). Il direttore vuole utilizzare il minor numero totale di ostetriche, tenendo conto che le ostetriche che si recano in reparto per uno dei primi cinque turni sono obbligate a lavorare per 8 ore consecutive (due turni consecutivi), mentre quelle impiegate nell’ultimo turno (turno 6) lavorano solo 4 ore. 23
Turni Ospedalieri Variabili • x1: numero di ostetriche nel turno 1 • x2: numero di ostetriche nel turno 2 • x3: numero di ostetriche nel turno 3 • x4: numero di ostetriche nel turno 4 • x5: numero di ostetriche nel turno 5 • x6: numero di ostetriche nel turno 6 Vincoli: • x1 ≥ 70 • x1 + x2 ≥ 80 • x2 + x3 ≥ 50 • x3 + x4 ≥ 60 • x4 + x5 ≥ 40 • x5 + x6 ≥ 30 24
Turni Ospedalieri Su Lindo: min 8 x1 + 8 x2 + 8 x3 + 8 x4 + 8 x5 + 4 x6 s.t. 1T) x1 > 70 2T) x1+x2 > 80 3T) x2+x3 > 50 4T) x3+x4 > 60 5T) x4+x5 > 40 6T) x5+x6 > 30 end
Turni Ospedalieri Soluzione: OBJECTIVE FUNCTION VALUE 1) 1320.000 VARIABLE VALUE REDUCED COST X1 70.000000 0.000000 X2 10.000000 0.000000 X3 40.000000 0.000000 X4 20.000000 0.000000 X5 20.000000 0.000000 X6 10.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 1T) 0.000000 -4.000000 2T) 0.000000 -4.000000 3T) 0.000000 -4.000000 4T) 0.000000 -4.000000 5T) 0.000000 -4.000000 6T) 0.000000 -4.000000