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+ y 6 2x + y 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 + y 6 2x+ y 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 6 7 8 9 10 11 12 2 2
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, 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 9 2x+ y 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 8 7 6 5 4 3 2 1 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 + by 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 pari a 1 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) paral- 4
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: Calorie per Kg Vitamina per Kg Costo al Kg A1 A2 minimo consentito 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: f ob (x; y)=z =. Esercizio 3. Determina il massimo e il minimo della funzione obiettivo z = 5x + 15y, soggetta ai seguenti vincoli: x+3y 60 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 40 3x+ y 150 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