Esercitazione II

Download Report

Transcript Esercitazione II

Economia
Applicata all’Ingegneria
Dott.ing. Massimo Di Francesco
[email protected]
Dott.ssa Michela Lai
[email protected]
http://sorsa.unica.it/
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 logicomatematico 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 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:
TIPO A
TIPO B
TIPO C
% di silicio
% di manganese
4.00
0.45
1.00
0.50
0.60
0.40
Costo (€/kg)
0.025
0.03
0.018
Inoltre si può acquistare il solo manganese a 10€/kg
4
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
5
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à
6
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
7
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
8
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
9
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
10
Il problema della fonderia
Analisi dei risultati
Soluzione con Lindo:
LP OPTIMUM FOUND AT STEP
4
OBJECTIVE FUNCTION VALUE
1) 24.56130
VARIABLE
XFA
XFB
XFC
XM
VALUE
779.431274
0.000000
220.457962
0.110727
REDUCED COST
0.000000
0.001744
0.000000
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
11
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à
 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
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:
Alimento
Quantità massima (in
hg)
Prezzo di vendita (in
€/hg)
Pane
4
0.1
Latte
3
0.5
Uova
1
0.12
Calorie
600 cal.
Carne
2
0.9
Proteine
50 g
Dolce
2
1.3
Calcio
0.7 g
Valori nutrizionali
minimi
Valori nutrizionali per hg
Pane
Latte
Uova
Carne
Dolce
Calorie
30
50
150
180
400
Proteine
5g
15 g
30 g
90 g
70 g
Calcio
0.02 g
0.15 g
0.05 g
0.08 g
0.01 g
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
X_PANE
X_LATTE
X_UOVA
X_CARNE
X_DOLCE
VALUE
REDUCED COST
4.000000
0.000000
3.000000
0.000000
1.000000
0.000000
1.500000
0.000000
0.000000
1.187500
18
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).
19
Determinare la produzione giornaliera di costo minimo.
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
21
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
22
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.
TURNI
ORARIO
N.OSTETRICHE
1
2
3
4
5
6
6-10
10-14
14-18
18-22
22-2
2-6
70
80
50
60
40
30
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
25
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
26