Programmazione lineare

Transcript

Programmazione lineare
Programmazione lineare
Un modello matematico per un problema di programmazione lineare
Problema 1. Un reparto di un’azienda di elettrodomestici può produrre giornalmente non più di 6 lavatrici,
delle quali alcune sono di un tipo A e le altre di un tipo B. Il turno di lavoro non può superare le 8 ore giornaliere; una lavatrice di tipo A richiede 2 ore di lavoro, mentre una di tipo B ne righiede una. Se una lavatrice di tipo A costa 600 Fr e una di tipo B 400 Fr, quante lavatrici di ciascun tipo devono essere prodotte
giornalmente affinché l’azienda realizzi il massimo guadagno?
Nell’enunciato ci sono molte informazioni ed è un po’ difficile tenerle tutte a mente e intravedere
rapidamente un procedimento per risolvere il problema. È però importante rilevareche, una
volta trovata la soluzione, l’azienda sarà in grado di programmare la produzione del reparto.
Proviamo a tradurre in linguaggio matematico le informazioni del problema e costruire un relativo modello matematico.
x = numero di lavatrici di tipo A
y = numero di lavatrici di tipo B
Si hanno le seguenti restrizioni:
•
il numero di ciascuna lavatrice non può essere negativo:......................................................
•
il numero complessivo delle lavatrici non può essere superiore a 6:......................................
•
la durata massima del lavoro non può superare le 8 ore giornaliere:....................................
L’obiettivo dell’azienda è decidere quante lavatrici (di ciascun tipo) produrre giornalmente
affinché venga realizzato il massimo profitto. La funzione che esprime il guadagno dell’azineda in
Franchi viene chiamata funzione obiettivo ed è:
z = 600x + 400y
Il problema consiste perciò nel trovare i valori di x e y che rendano la funzione obiettivo più
grande possibile, sotto le condizioni espresse dalle disequazioni lineari viste prima che, dovendo
valere simultaneamente, costituiscono il seguente sistema:

x>0



y>0
x+ y66



2x + y 6 8
1
La funzione da massimizzare è: z(x; y) = 600x + 400y.
Di questi problemi, in cui intervengono quantità di variabili da “ottimizazre” sotto determinate
condizioni, si occupa una parte applicativa della matematica che viene chiamata programmazione lineare.
Il nostro problema è volutamente semplice, ma la programmazione linerare risolve problemi ben
più complessi che si presentano nell’ambito dell’economia aziendale, della produzione industriale,
dell’alimentazione, dello sfruttamento ottimale delle risorse e dei servizi in generale, in tutti quei
settori nei quali occorre esaminare varie alternative al fine di realizzare un certo obiettivo alle
condizioni più vantaggiose. In talune questioni intervengono decine di variabli; in questi casi
vengono utilizzate tecniche diverse e le soluzioni sono ottenute mediante l’impiego di un computer. Noi ci limiteremo a risolvere problemi abbastanza semplici.
Risolviamo ora il problema precedente cominciando a trovare l’insieme di soluzione del sistema

x>0



y>0
x+y66



2x + y 6 8
Grafico per il primo problema
12
11
10
9
8
7
6
5
4
3
2
1
0
−2 −1−1 0
1
2
3
4
5
−2
2
6
7
8
9
10 11 12
Come potete facilmente rendervi conto, l’insieme delle soluzioni è la regione OABC ossia l’intersezione dei semipiani corrispondenti alle quattro disequazioni del sistema. Poiché in queste
ultime compaiono i segni > e 6 , tutti i punti che si trovano sul contorno della regione, cioè i
punti dei segmenti OA, AB, BC, CO appartengono all’insieme soluzione.
Fra gli infiniti punti della regione, dobbiamo cercare quelli per i quali x ∈ N e y ∈ N; nel nostro
caso alcune soluzioni accettabili corrispondono ai punti: (0; 0), (4; 0), (2; 4), (0; 6), (2; 1), (3; 2), (1;
5), (0; 4), (1; 3), (1; 4).
Per ottenere la soluzione che assicuri il massimo guadagno, cioé la soluzione ottimale, dobbiamo
cercare i punti le cui coordinate rendano massimo il valore della funzione obiettivo
z = 600y + 400x
Quali punti cercare?
Teorema 1. Si può dimostrare in modo del tutto generale che le soluzioni ottimali di un problema di programmazione lineare sono i punti situati sul contorno, e in particolare nei vertici
dell’insieme di soluzione.
Corollario 2. Se x e y ∈ N può accadere che non vi siano punti ottimali sul contorno; in tal
caso bisognerà cercarli in prossimità del contorno.
Nel nostro caso, alcuni di tali punti sono i punti O, A, P, B, Q, C. Possiamo formare la seguente
tabella:
Punti sul contorno x y Guadagno z = 600x + 400y
O(0; 0)
0 0
A(4; 0)
4 0
P (3; 2)
3 2
B(2; 4)
2 4
Q(1; 5)
1 5
C(0; 6)
0 6
La soluzione ottimale è data da x = 2ey = 4. Perciò, producendo giornalmente 2 lavatrici di tipo
A e 4 di tipo B l’azienda realizza il massimo guadagno di 2800 Fr.
Interpretazione geometrica della funzione obiettivo z(x; y) = ax + by
Rappresenta l’insieme soluzione del sistema di disequazioni qui sotto riportato

x>0



y>0
x + 3y 6 9



2x + y 6 8
3
Grafico per il secondo problema
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
−1
−8 −7 −6 −5 −4 −3 −2 −1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
−2
−3
−4
−5
−6
−7
−8
Per trovare il massimo o il minimo di una forma lineare del tipo ax + b y si considera l’insieme
delle rette z(x; y) = ax + by variabili al variare di z ∈ R.
Consideriamo ad esempio la funzione z(x; y) = x + 2y con l’obiettivo di trovare per quali valori
di x e di y si ottiene il massimo valore di z.
Per capire come si possono trovare questi valori di x e y, inizia a fare il seguente esercizio: rappresenta le rette z(x; y) = x + 2y per i seguenti valori di z: 0; 2; 4; 7, nel piano cartesiano sopra
disegnato. (Osserva che la funzione z(x; y) = x + 2y è descritta in forma implicita. Per rappresentarla è più facile trasformarla in forma esplicita, risolvendola rispetto a y.
Osservazioni:
•
che si tratti di rette parallele è subito evidente, dal momento che hanno tutte la pendenza
1
pari a 2 ;
•
a mano a mano che aumenta z, la retta si allontana sempre più dall’origine.
Esaminiamo le proprietà di alcune di tali rette:
1. z = 0 corrisponde alla retta passante per l’origine x + 2y = 0 e che fa assumere il minimo
valore 0 + 2 · 0 = 0;
2. Per trovare un valore ottimale di x + 2y , disegnamo la retta passante per P (3; 2) paral4
lela a x + 2y = 0. Il valore di z corrispondente si ottiene sostituendo x = 3 e y = 2
nell’equazione z = x + 2y, imponendo cioè che la retta passi per il punto P ; z = 3 + 2 · 2
⇒ z = 7. La retta ha perciò equazione x + 2y = 7 e 7 è il massimo valore di x + 2y nella
regione colorata corrispondente all’insieme soluzione del sistema dato.
Osservazione
In generale se la regione di accettabilità è limitata, la funzione obiettivo raggiunge il massimo e
il minimo per i valori delle coordinate di uno o più vertici della regione. Il valore massimo o
minimo sono unici, però ci potrebbero essere più punti che danno una soluzione ottimale.
Questo fatto si può capire molto meglio geometricamente: il massimo o il minimo viene generalmente dato dalle coordinate dei vertici della regione di accettabilità, per il quale passa la retta
della funzione obiettivo. Se la retta è parallela ad un lato della regione di accettabilità, la scelta
di x e y non sarebbe più unica, ma ogni punto di quel lato darebbe una soluzione ottimale del
problema. Nei seguenti diagrammi vengono illustrati questi casi:
Per i massimi
Esattamente una soluzione
Esattamente una soluzione
Segmento come soluzione
Nessuna soluzione, sistema non limitato
5
Per i minimi
Esattamente una soluzione
Un segmento come soluzione
Esattamente una soluzione
Il minimo (0; 0) come soluzione
Esercizio 1. Data la funzione obiettivo z = x + 2y e i vincoli:

x + y >1



2x + 4y > 3
x >0



y >0
determina per quali valori di x e y la funzione obiettivo assume il valore minimo.
Esercizio 2. Data la funzione obiettivo z = x + 2y e i vincoli:

 x + y >2
x >0

y >0
determina per quali valori x e y la funzione obiettivo assume valore massimo.
6
Esempi di problemi di programmazione lineare
Definizione 3. Un problema di programmazione lineare richiede di trovare il valore ottimale
(massimo o minimo) di una funzione obiettivo lineare del tipo z = ax + by, dove le incognite x e
y sono soggette ai vincoli nella forma di un sistema di disequazioni. L’insieme dei punti che
rispettano tali vincoli è detto regione di accettabilità del problema. Ogni punto di questa regione
che dà un valore ottimale della funzione obiettivo, è detto soluzione ottimale.
Teorema 4. Se un problema di programmazione lineare ha una soluzione, questa si trova in un
vertice della regione di accettabilità.
Se un problema di programmazione lineare ha più soluzioni, almeno una di queste è situata su
un vertice della regione di accettabilità.
Risoluzione di un problema di programmazione lineare
1. Costruisci un modello matematico per il problema:
a) determina le incognite e scrivi la funzione obiettivo;
b) scrivi i vincoli in forma di disequazioni lineari.
2. Rappresenta la regione di accettabilità nel piano cartesiano e determina le coordinate dei
vertici.
3. Calcola il valore della funzione obiettivo in ogni vertice e stabilisci la soluzione ottimale.
4. Rappresenta la funzione obiettivo graficamente per stabilire il valore massimo o minimo
cercato, lavorando con le rette parallele a quella passante per l’origine.
Problema 2. Un dietologo deve fornire una dieta a base di due alimenti A1 e A2 in modo che abbia almeno
2500 calorie e 3500 unità di vitamina B12. Sapendo che un chilogrammo di A1 ha 1400 calorie e 1000 unità
di vitamina e che un chilogrammo di A2 ha 800 calorie e 2000 unità di vitamina, si vuol conoscere come deve
essere costituita la dieta per essere la più economica possibile, se un chilogrammo di A1 costa 20 Fr e un chilogrammo di A2 15 Fr.
Schematizziamo i dati del problema mediante una tabella:
A1 A2 minimo consentito
Calorie per Kg
Vitamina per Kg
Costo al Kg
Siano x e y rispettivamente i chilogrammi di prodotto A1 e A2 da prescrivere; il costo complessivo della dieta si potrà rappresentare mediante l’espressione:
........................................................................................................................................................
È ovvio che non tutte le coppie (x; y) rappresentano soluzioni possibili per il problema proposto.
Il numero di calorie minimo espresso dalla coppia (x; y) è:...........................................................
Il numero di unità di vitamina espresso dalla coppia (x; y) è:.......................................................
Le due quantità in peso devono essere positive: ...........................................................................
7
Dunque per risolvere il problema posto, dovremmo determinare le soluzioni del sistema che racchiude tutte le condizioni da rispettare (vincoli):

1400x + 800y > 2500



1000x + 2000y > 3500
x
>0



y>0
e successivamente, calcolare nell’insieme di tali soluzioni il più piccolo valore di z
z = 20x + 15y
Analizziomo la risluzione del problema in due modi: grafico e algebrico.
Problema 3. Una ditta produce due articoli di tipo A e B, ciascuno dei quali richiede lavorazioni in due settori diversi: fonderia e rifinitura, secondo la seguente tabella:
Prodotto Ore di fonderia Ore di rifinitura
A
3
2
B
3
1
Il numero di ore disponibili in ciascun settore durante la settimana lavorativa è il seguente:
Fonderia 55 ore; rifinitura 30 ore.
Determina il numero di articoli del tipo A e B da realizzare, in modo che l’utile settimanale sia massimo nei
tre seguenti casi:
1. I due articoli producono rispettivamente l’utile di 20 Fr per A e 30 Fr per B;
2. l’utile è di 40 Fr per A e di 30 Fr per B;
3. Ll’utile è di 20 Fr per tutti e due gli articoli.
Le condizioni da rispetatre sono identiche nei tre casi; cambia unicamente la funzione obiettivo.
Siano:
x la quantità prodotta dell’articolo A
y la quantità prodotta dell’articolo B
Il modello matematico del problema è costituito da vincoli e dalla funzione obiettivo seguenti:



























fob(x; y) = z = .
Esercizio 3. Determina il massimo e il minimo della funzione obiettivo z = 5x + 15y, soggetta ai seguenti
vincoli:

x + 3y 6 6 0



x + y > 10
 x−y<0


x, y > 0
Esercizio 4. Determina il minimo e il massimo della funzione obiettivo z = 10x + 5y soggetta ai seguenti vincoli:

2x + y > 4 0



3x + y 6 1 5 0
2x
−y>0



x, y > 0
8
Esercizio 5. Una ditta di elettronica produce due tipi di computer: un desktop e un portatile. La produzione di un desktop costa 400 Fr e richiede 40 ore di lavoro. La produzione dei portatili costa 250 Fr e necessita 30 ore di lavoro. Se questa ditta ha a disposizione un capitale di 20000 Fr e di 2160 ore di lavoro per la
produzione dei desktop e dei portatili:
a) qual è il numero massimo di computer che la ditta può produrre?
b) Se ogni desktop dà un guadagno di 320 Fr e ogni portatile di 220 Fr, quanti computer di ogni tipo
dovrebbe produrre per ottenere il massimo profitto? A quanto ammonta il guadagno massimo?
Esercizio 6. Calamità naturali o guerre richiedono di organizzare un ponte aereo per evacuare la popolazione di una zona. In generale, le compagnie aeree che mettono a disposizione i loro veicoli sono più di una,
con aerei di capacità e costi diversi e si deve scegliere la soluzione più economica; ecco un esempio da esaminare.
Si devono trasportare 800 persone e 100 tonnellate di bagagli. Una compagnia mette a disposizione 6 aerei di
tipo A e ogni aereo può trasportare 100 passeggeri e 20 tonnellate di bagagli al presso di 200000 Fr. Un’altra
compagnia offre 8 aerei di tipo B e ogni aereo può trasportare 200 passeggeri e 10 tonnellate di bagagli al
prezzo di 600000 Fr. Quanti aerei di tipo A e di tipo B conviene noleggiare per trasportare tutte le merci e
tutte le persone la costo minimo?
Esercizio 7. Un’azienda artigiana che lavora per un’importante ditta di materiale di cartoleria produce due
tipi di agende da regalo: il tipo traveller e il tipo executive di foggia più elegante.
La lavorazione del tipo traveller richiede la metà del tempo di quella di tipo executive. La capacità produttiva sarebb di 800 agende al giorno, se ci si limitasse a produrre le traveller. L’azienda ha a disposizione cuoio
per produrre non più di 600 agende in totale (la quantità di cuoio richiesta è la stessa per produrre i due tipi,
variano solo la lavorazione e le finiture). La ditta che ha commissionato il lavoro fornisce la materia prima e
paga all’azienda artigiana 5 Fr per ogni executive e 3 Fr per ogni traveller prodotta. Quali devono essere le
quantità di agende che l’azienda produce per massimizzare il guadagno?
9