Riunione Indirizzo Liceo artistico ind. Grafica

1
Problemi iniziali di Programmazione Lineare (LP)
I problemi di cui ci si occupa possono essere descritti matematicamente nel modo seguente:
min/ max
f ( x)
s.t.
g1 (x) ≥ 0
g 2 ( x) = 0
g 3 ( x) ≤ 0
qualche x intero o 0,1
dove f, g1, g2, g3 sono funzioni lineari.
Alcune osservazioni
<, > ,≠ non sono ammessi
prodotti di variabili, variabili al denominatore, variabili a potenze diverse da 1 non sono
ammessi
Il problema consiste nel “formulare” algebricamente un problema descritto in linguaggio naturale. La
formulazione deve essere del tipo descritto sopra.
Se mancano vincoli di interezza il problema è di tipo LP (Linear Programming). Se alcune (o tutte) le variabili
hanno vincoli di interezza il problema è di tipo MIP (Mixed Integer Programming).
Alcuni esempi
Esempio 1
La ditta Mobilbelli produce librerie, tavoli e sedie. Per la produzione utilizza pannelli di legno, operai
assemblatori ed operai rifinitori secondo lo schema seguente:
TABELLA N.1
PANNELLI
ASSEMBLAGGIO
RIFINITURA
LIBRERIE
8
4 ORE
2 ORE
TAVOLI
6
2 ORE
1,5 ORE
SEDIE
1
1,5 ORE
0,5 ORE
In ogni giornata lavorativa sono disponibili: 48 pannelli, 20 ore di operaio assemblatore, 8 ore di operaio
rifinitore. Inoltre i prezzi di vendita dei mobili sono i seguenti: Libreria € 120.00, Tavolo € 60.00, Sedia €
40.00. L’obiettivo della ditta sarà quello di guadagnare il massimo possibile. Si potrebbero introdurre i costi,
ma per il momento il problema viene affrontato in maniera diversa, equiparando il guadagno con l’incasso.
Sapendo che la richiesta di sedie e librerie è illimitata ma che non più di 5 tavoli possono essere venduti,
determinare il numero di librerie, tavoli e sedie da produrre in modo da rendere massimo l’incasso.
La prima cosa da fare è vedere quali siano le VARIABILI DECISIONALI che conviene introdurre. In questo
caso le variabili sulle quali posso agire per migliorare l’incasso sono le quantità prodotte.
Le variabili decisionali di questo problema sono:
x1
x2
x3
numero di librerie prodotte
numero di tavoli prodotti
numero di sedie prodotte
2
Il problema può essere rappresentato dal seguente modello matematico (PROGRAMMAZIONE LINEARE):
max z = 120 x1 + 60 x2 + 40 x3
s.t.
8 x1 + 6 x2 + x3 ≤ 48
4 x1 + 2 x2 + 1.5 x3 ≤ 20
2 x1 + 1.5 x2 + 0.5 x3 ≤ 8
x2 ≤ 5
x1 , x2 , x3 ≥ 0
(1)
(2)
(3)
(4)
Si noti che l’obiettivo ed i vincoli del problema sono rappresentati da una FUNZIONE LINEARE z di 3
variabili. Con s.t. (abbreviazione dell’inglese “subject to”) si indicano i vincoli del problema. Questi sono
espressi da disuguaglianze che coinvolgono ancora funzioni lineari e servono a far sì che i valori assunti
dalle variabili x1, x2, x3 siano compatibili con le limitazioni imposte sui fattori produttivi. Nel modello
possiamo evidenziare i seguenti componenti:
Fattori produttivi (INPUT)
• PANNELLI DI LEGNO
• OPERAIO ASSEMBLATORE
• OPERAIO RIFINITORE
Merci prodotte (OUTPUT)
• LIBRERIE
• TAVOLI
• SEDIE
MATRICE TECNOLOGICA
a11 a12
a21 a22
a31 a32
a13 8 6
1
a23 = 4 2 1.5
a33 2 1.5 0.5
I coefficienti tecnici aij indicano, per ogni unità di output, quante unità di input sono richieste: aij
rappresenta la quantità di fattore produttivo i occorrente per produrre una unità di merce j (nel processo
produttivo considerato).
Ad esempio, “a12” indica quanto fattore produttivo 1 (pannelli di legno) dobbiamo utilizzare per produrre
una unità di merce 2 (libreria).
Parliamo di matrice tecnica o tecnologica perché è legata allo specifico processo tecnologico che sta
utilizzando la fabbrica per produrre le merci. La matrice tecnologica cambia in base alla combinazione di
fattori produttivi utilizzata.
3
Esempio 2
Un’azienda produce trenini e soldatini. I primi sono venduti a 7e e i secondi a 3e ciascuno. Ogni trenino
richiede 25’ di assemblaggio e 1 h di verniciatura. Per i soldatini i tempi sono di 20’ in entrambe le
lavorazioni. Sono disponibili 8h di assemblaggio e 20h di verniciatura. Quale deve essere il mix di
produzione per massimizzare i ricavi, tenuto conto che il mercato non assorbe più di 15 trenini.
Ponendo, come variabili decisionali:
x1
x2
nr. di trenini
nr. di soldatini
il problema può essere scritto come (modello matematico):
max =
z 7 x1 + 3 x2
s.t.
25 x1 + 20 x2 ≤ 480 (1)
60 x1 + 20 x2 ≤ 1200 (2)
x1 ≤ 15
(3)
Domanda:
Investireste in assemblaggio, verniciatura o marketing di trenini. Che ne dite dell’interezza della soluzione
•
At a certain refinery, the refining process requires the production of at least two gallons of gasoline for
each gallon of fuel oil. To meet the anticipated demands of winter, at least three million gallons of fuel
oil a day will need to be produced. The demand for gasoline, on the other hand, is not more than 6.4
million gallons a day. If gasoline is selling for $1.90 per gallon and fuel oil sells for $1.50/gal, how much
of each should be produced in order to maximize revenue?
•
In order to ensure optimal health (and thus accurate test results), a lab technician needs to feed the
rabbits a daily diet containing a minimum of 24 grams (g) of fat, 36 g of carbohydrates, and 4 g of
protein. But the rabbits should be fed no more than five ounces of food a day. Rather than order rabbit
food that is custom-blended, it is cheaper to order Food X and Food Y, and blend them for an optimal
mix. Food X contains 8 g of fat, 12 g of carbohydrates, and 2 g of protein per ounce, and costs $0.20 per
ounce. Food Y contains 12 g of fat, 12 g of carbohydrates, and 1 g of protein per ounce, at a cost of
$0.30 per ounce. What is the optimal blend?
4
Geometria della Programmazione Lineare
•
•
I punti x ∈ ℜn che verificano tutti i vincoli di un problema di Programmazione Lineare si chiamano
soluzioni ammissibili e l’insieme costituito da tutte le soluzioni ammissibili forma la regione
ammissibile del problema.
Ad esempio nel problema:
min cx
Ax ≥ b
x≥0
la zona di spazio {x : Ax ≥ b, x ≥ 0} è la regione ammissibile
•
•
Nel caso di problemi che coinvolgono solo 2 variabili è agevole una rappresentazione della RA sul
piano.
Ad esempio si consideri il seguente problema
=
z
max
 s.t.







•
20 x1 +
x1
x1
3 x1
x1
30 x2
+ x2
− x2
+2 x2
−2 x2
x1 , x2
≥ 1
≥ −1
≤ 6
≤ 1
≥ 0
Osservo anzitutto che ogni disequazione è soddisfatta da tutti i punti di un semipiano; ad esempio
la disequazione x1 + x2 ≥ 1 è verificata dai punti nel semipiano tratteggiato:
5
•
Tracciando anche le rette:
−1
x1 − x2 =
2 x1 + 3 x2 =
6
x1 − 2 x2 =
1
si delimitano i piani che, intersecati, formano la RA
20X1+30X2 = 70
REG. AMMISSIBILE
•
•
20X1+30X2 = 40
20X1+30X2 =60
Sono tracciate anche le rette che corrispondono a valori diversi della fo
Si osservi che fra i punti della regione ammissibile vogliamo trovare quelli che rendono massimo il
valore della funzione obiettivo=
z 20 x1 + 30 x2
•
Questo può essere determinato graficamente disegnando le curve di livello (isocosto, isoprofitto,
isoquanti,…) 20 x1 + 30 x2 =
k ed individuando quella che, al crescere di K , “interseca per ultima”
la regione ammissibile. Nell’esempio precedente la retta 20 x1 + 30 x2 =
70 che interseca la
•
•
regione ammissibile nel VERTICE (4/5 , 9/5).
In realtà si può dimostrare che nei modelli di Programmazione Lineare (PL) la regione ammissibile è
sempre un poligono (o meglio un poliedro nel caso di tre o più variabili)
In effetti, in uno spazio ad n dimensioni un poliedro può essere definito proprio come l'intersezione
di un numero finito di semispazi (che a loro volta coincidono con gli insiemi delle soluzioni di una
disequazione lineare del tipo a1 x1 + ... + an xn ≤ b ) almeno una soluzione ottima si trova sempre in
un vertice (si potrebbe avere tutto una faccia di soluzioni, se la curva di livello è parallela ad esso).