La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Programmazione lineare Definizione : la programmazione lineare serve per determinare lallocazione ottimale di risorse disponibili in quantità limitata,

Presentazioni simili


Presentazione sul tema: "Programmazione lineare Definizione : la programmazione lineare serve per determinare lallocazione ottimale di risorse disponibili in quantità limitata,"— Transcript della presentazione:

1 Programmazione lineare Definizione : la programmazione lineare serve per determinare lallocazione ottimale di risorse disponibili in quantità limitata, per ottimizzare il raggiungimento di un obiettivo prestabilito, in condizioni di certezza Tipi di problemi risolubili con le tecniche della programmazione lineare (P.L.) : problemi economici, problemi di distribuzione delle risorse, problemi di trasporto e di assegnazione, ecc. Tutte le funzioni presenti nel modello sono lineari

2

3 Problemi di P.L. in due variabili – metodo grafico Problema 1 Un industria produce due prodotti A e B e utilizza due macchinari M e N. Per ogni unità di A sono necessarie 1 ora di M e 3 ore di N, per ogni unità di B sono necessarie 2 ore di M e 2 ore di N. Inoltre A non può essere prodotto in più di 18 pezzi settimanali, la macchina M non può lavorare per più di 40 ore alla settimana, mentre B per non più di 60. Determinare qual è la combinazione produttiva più conveniente, sapendo che ogni unità di A viene venduta a u.m. e ogni unità di B a u.m., nellipotesi che ogni quantità prodotta sia venduta. ABOre disponibili x = quantità di A y = quantità di B z = funzione obiettivo = ricavo M1240 N3260 Schema risolutivo

4 Modello matematico maxz = x y x + 2y 40 vincolo n°1 3x + 2y 60 vincolo n°2 0 x 18 vincoli n°3 – n° 4 y 0 vincolo n°5 ABOre disponibili x = quantità di A y = quantità di B z = funzione obiettivo = ricavo M1240 N3260 Schema risolutivo

5 In generale il problema si schematizza : Modello matematico Ottimizzare funzione obiettivoz = m x + n y soggetta ai vincoli a x + b y c : : d x + e y f : : x 0 y 0

6 Passi per determinare la soluzione Si rappresenta graficamente il sistema dei vincoli nel piano Oxy ottenendo la regione delle soluzioni ammissibili ( o dominio dei vincoli ) Se linsieme non è vuoto, tale area può essere rappresentata da un poligono, o da una regione poligonale illimitata, che possono eventualmente ridursi ad una semiretta, ad un segmento o ad un punto. P(x,y) x x Ogni coppia (x,y) appartenente al dominio dei vincoli si dice soluzione ammissibile e tra queste si cercherà la soluzione ottima.

7 Si rappresentano le linee di livello della funzione obiettivo (rette, in quanto la f.o. è un piano nello spazio). Si rappresenta la linea di livello corrispondente a z = 0 (retta guida ), che divide il piano in due parti in una delle quali z > 0 e nellaltra z < 0. Il semipiano in cui z > 0 può essere facilmente individuato in quanto è quello che contiene il punto P(m,n) (f.o. z = m x + n y). Infatti il valore assunto da z in P(m,n) è m m + n n = m 2 + n 2. Unendo lorigine O con il punto P e disegnando la freccia avente verso da O a P si individua il semipiano in cui z > 0. Questa freccia che prende il nome di vettore di origine O ed estremo P, risulta sempre perpendicolare al piano z = mx + ny. Il vettore OP indica il verso di crescita della funzione obiettivo z = mx + ny. z =x + 3y P(1,3) z>0 z<0 z=3 z=1 z=0 z=-1

8 Dallandamento delle linee di livello nel dominio si deduce se la funzione ammette massimo o minimo. z = z 1 min z = z 2 max z=3 z=1 z=0 z=-1

9 Esempi di regioni ammissibili Minimo in A e massimo in DMinimo in D e massimo in A

10 Minimo in A e nessun massimo A B x O Nessun minimo e massimo in A Infiniti minimi nel segmento AB e un massimo in D Un massimo in D e infiniti massimi nel segmento AB

11 Osservazione In un problema di programmazione lineare se linsieme delle soluzioni ammissibili è un poligono chiuso, allora è un poligono chiuso convesso. Teorema ( Weierstrass + teo fondamentale P.L. ) Se linsieme delle soluzioni ammissibili è un poligono convesso, il massimo e il minimo esistono e si trovano in un vertice del poligono Osservazione Per determinare i punti estremi basta calcolare i valori della funzione obiettivo nei vertici del dominio, se questo è un poligono chiuso. Se il dominio dei vincoli è illimitato si esamina invece landamento delle curve di livello per determinare, se esiste, un punto che ottimizza la funzione obiettivo Osservazione Se in due vertici consecutivi la f.o. assume lo stesso valore, essa assume quello stesso valore in tutti i punti del segmento che li unisce.

12 Larea ammissibile è data dal poligono OABCD, con O(0,0), A(18,0), B(18,3), C(10,15), D(0,20). Poiché il dominio dei vincoli è un poligono chiuso, calcoliamo i valori della f.o. nei vertici : z(O) = 0 z(A) = z(B) = z(C) = z(D) = La f.o. ha un massimo in B con una produzione settimanale x =18, y =3. Soluzione problema 1 Il vincolo su N è soddisfatto al massimo della sua disponibilità, mentre le ore di lavorazione per M sono solo 24 delle 40 disponibili. D C B AO 10

13 Osservazione : importanza della rappresentazione grafica La soluzione di un problema di P.L. a due variabili è semplice in quanto è possibile la rappresentazione grafica del campo di scelta che permette di individuare con rapidità i vertici tra i quali deve essere ricercato lottimo. Ma se si tralasciasse di fare tale rappresentazione la mole dei calcoli sarebbe notevolmente superiore. Nellesempio precedente i punti O,A,B,C,D sono i punti che risolvono le coppie dei vincoli espressi come eguaglianze : O : 3535 A : 4545 B : 2424 C : 1212 D : 1313 D C B AO 10 G E F H

14 Se,invece, non viene rappresentata preliminarmente la regione ammissibile, si devono risolvere anche i sistemi relativi alle altre possibili coppie di vincoli espressi come eguaglianza : E : 1414 F: 1515 G : 2323 H : 2525 I : 3434 Dovremmo quindi calcolare la funzione obiettivo anche in questi punti, che sono comunque vertici, ma non del campo di scelta. D C B AO 10 G E F H Notare che 10 =

15 Osservazione : caratterizzazione dei vertici I vertici ammissibili sono quelli che sono intersezione di due vincoli intesi come eguaglianze e soddisfano le altre disuguaglianze. Quindi se non si avesse la rappresentazione grafica occorrerebbe risolvere tutti i sistemi e fare le opportune verifiche per accertare quali sono i vertici della regione ammissibile. Su queste considerazioni si basano i metodi per risolvere problemi P.L. in n variabili.

16 Problemi di P.L. in tre o più variabili riconducibili a due : metodo grafico Un problema di P.L. è riconducibile ad un problema di P.L. in 2 variabili e quindi risolubile con metodo grafico, se nel sistema dei vincoli compaiono n –2 equazioni da cui è possibile ricavare n–2 variabili in funzione delle altre 2. Problema 2 Soluzione problema 2: dal primo vincolo si ricava x 3 e sostituendo si ottiene maxz = x 1 - x 2 x 1 - x x 1 +3 x 2 12 x 1 + x 2 10 x 1 0 x 2 0 maxz = 6 x x x 3 x 1 + x 2 + x 3 = 10 3 x 1 + x 2 +2 x 3 26 x x 3 18 x 1 0 x 2 0 x 3 0

17 Si ottiene un max in (8,2,0) con z = 54

18 Problemi di P.L. in tre variabili : metodo grafico Problema 3 Un agricoltore vuole coltivare nel suo terreno tre prodotti P,Q,R. La superficie massima utilizzabile è di 40 ettari. Per ogni ettaro coltivato a P occorrono 20 giornate di lavoro, per ognuno coltivato a Q: 10, per ognuno coltivato a R : 15. In un anno dispone di 600 giornate di lavoro di operai. La coltivazione di R non può superare i 20 ettari. Per P si ha un utile di u.m. per ettaro, per Q si ha un utile di u.m. per ettaro, per R si ha un utile di u.m. per ettaro. Determinare come utilizzare il terreno per conseguire il massimo utile maxz = 300 x x x 3 x 1 + x 2 + x x x x x 3 20 x 1 0 x 2 0 x 3 0

19 Si rappresentano i piani x 1 + x 2 + x 3 = 40 4 x 1 +2 x 2 +3 x 3 = 120 x 3 = 20 Risolvendo il sistema formato dalle equazioni dei piani si ottengono i punti : O(0,0,0),A(30,0,0), B(20,20,0),C(0,40,0),D(0,0,20),E(15,0,20),F(10,10,20),G(0,20,20) Lutile massimo è in F con z = maxz = 300 x x x 3 x 1 + x 2 + x x x x x 3 20 x 1 0 x 2 0 x 3 0 Il metodo grafico è un po laborioso e non applicabile a più di tre variabili : si può applicare il metodo algebrico Soluzione problema 3

20 Problemi di P.L. in n variabili : metodo algebrico Ottimizzarez = c 1 x 1 + c 2 x 2 + …+ c n x n a 11 x 1 + a 12 x 2 +… a 1n x n b 1 a 21 x 1 + a 22 x 2 +… a 2n x n b 2 ……………………………….. a m1 x 1 + a m2 x 2 +… a mn x n b m x i 0 (i =1…n) Per determinare i vertici, essendo m+n i vincoli e n le variabili occorre risolvere un numero di sistemi lineari di n equazioni (ottenute dai vincoli espressi con leguaglianza) in n incognite. Tutti i possibili sistemi sono. Non è detto che le soluzioni trovate siano tutte ammissibili, ma è un estremo superiore e ci assicura che la soluzione ottima, se esiste, può essere trovata, per enumerazione, in un numero finito di passi. Per ciascuno dei sistemi risolti occorre poi sostituire gli n valori trovati delle variabili nelle rimanenti m diseguaglianze per vedere se sono soddisfatte, scartando le n-uple che non caratterizzano un vertice.

21 Ad esempio con n =10 variabili e 6 vincoli tecnici ( in totale 6+10 vincoli ) dovremmo risolvere = 8008 sistemi 10 10, e per ognuna delle 8008 decuple ottenute, scartare quelle che non soddisfano le restanti 6 diseguaglianze. Nel problema n° 3 si dovrebbero risolvere = 10 sistemi e testarne poi le soluzioni.

22 La tecnica algebrica di ricerca dellottimo è semplice, ma inefficiente per problemi in cui linsieme ammissibile ha molti vertici : lalgoritmo del simplesso è una procedura efficiente che risolve il problema. Lalgoritmo del simplesso, in effetti, risolve problemi in cui tutti i vincoli tecnici sono rappresentati da equazioni : i vincoli sono quindi m equazioni ed n disequazioni di positività delle variabili. E possibile comunque applicarlo ad un problema generale trasformando le disequazioni in equazioni : si aggiungono delle variabili fittizie, dette variabili slack con coefficiente zero nella funzione obiettivo. Problemi di P.L. in n variabili : metodo del simplesso Problema 3 maxz = 300 x x x 3 x 1 + x 2 + x x 1 +2 x 2 +3 x x 3 20 x 1 0 x 2 0 x 3 0 Problema 3 trasformato con variabili slack maxz = 300 x x x x x x 6 x 1 + x 2 + x 3 + x 4 = 40 4 x 1 +2 x 2 +3 x 3 + x 5 = 120 x 3 + x 6 = 20 x i 0 (i =1…6)

23 Algoritmo grafico del simplesso 1. Si considera un vertice iniziale ammissibile. 2. Si confronta il vertice prescelto con quelli ad esso adiacenti. 3. Se tra questi ultimi vertici se ne trova uno migliore si prende in considerazione questultimo e si ripete il confronto tornando al punto In caso contrario lultimo vertice considerato è quello ottimo. Il numero di vertici che occorre percorrere è presumibilmente inferiore al n° totale, poiché ad ogni iterazione ci si avvicina alla soluzione ottimale e quindi molti vertici vengono esclusi dalla necessità di esame. Il metodo del simplesso, invece di calcolare il valore della funzione obiettivo in tutti i vertici ammissibili, permette di calcolare il valore della funzione in un dato vertice e di scegliere il successivo in modo che la funzione obiettivo migliori e così via fino a giungere allottimo più velocemente.

24 Soluzione problema 3 con metodo del simplesso Passo1 (Scelta di una prima soluzione ammissibile) Posti x 1 = x 2 = x 3 = 0, dal sistema dei vincoli si ricava x 4 =40, x 5 =120, x 6 = 20 e si ha la prima soluzione ammissibile di base : (0,0,0,40,120,20) che corrisponde al valore z = 0. Passo2 Si vuole ora passare ad unaltra soluzione ammissibile che aumenti il valore di z in modo che una variabile fra quelle prima nulle prenda valore positivo ed unaltra tra quelle prima positive diventi nulla. Il sistema dei vincoli risolto rispetto a x 4, x 5,x 6 è x 4 = 40 - x 1 -x 2 - x 3 x 5 = x 1 -2 x 2 -3 x 3 x 6 = 20 - x 3 Dallesame di z = 300 x x x x x x 6, si vede che il massimo incremento di z si ha incrementando x 3 e dallesame dei vincoli si vede che il massimo valore attribuibile a x 3 è 20, da cui x 6 = 0 ( si deve rispettare la condizione x i 0 (i =1…6) ). Si ricava quindi la seconda soluzione ammissibile (0,0,20,20,60,0) con z = 300 x x (20–x 6 ) +0 x x x 6 =7000. Si dice che x 3 è entrata nella base e x 6 è uscita dalla base. Le variabili della base sono quelle non nulle è cioè x 3, x 4, x 5. Cerchiamo ora di passare da questa soluzione ad una ad essa adiacente che aumenti il valore di z. Una soluzione di base è adiacente ad un'altra se ha le stesse variabili di base della precedente tranne una; dobbiamo fare in modo che una fra x 3, x 4, x 5 diventi nulla (esce dalla base), inserendo nella nuova base x 1, x 2 o x 6.

25 Passo3 Esaminando z = 300 x x (20–x 6 ) +0 x x x 6 = x x 2 –350 x 6, si sceglie, tra le variabili, quella che migliora la funzione obiettivo e quindi x 1. Ci chiediamo ora qual è il massimo valore attribuibile a x 1 affinché una fra x 3, x 4, x 5 si annulli, lasciando però 0 tutte le altre. Si riscrive il sistema dei vincoli ricavando x 3, x 4, x 5 rispetto alle variabili fuori dalla base, ottenendo x 3 = 20 – x 6 x 4 = 40 + x 6 –x 1 – x 2 x 5 = x 1 -2 x 2 +3 x 3 individuando la terza soluzione ammissibile (15,0,20,5,0,0) con z = x x 5 –125 x 6. Passo4 Entra nella base x 2. Scriviamo il sistema dei vincoli esprimendo x 1, x 3, x 4 rispetto alle variabili fuori dalla base e si determina il valore migliore x 2 =10. Si ottiene la quarta soluzione ammissibile (10,10,20, 0, 0,0) con z = x x 5 –100 x 6. Il valore di z non si può migliorare ulteriormente poiché tutti i coefficienti sono negativi e le variabili entrando nella base ridurrebbero il valore di z. Quindi (10,10,20,0,0,0) è la soluzione ottima.

26 Nella figura è evidenziato il cammino seguito dallalgoritmo per ottimizzare la funzione obiettivo. Sequenza dei vertici O(0,0,0,40,120,20) D(0,0,20,20,60,0) E(15,0,20,5,0,0) F(10,10,20,0,0,0)

27 Schema algebrico del simplesso 1. individuazione di una prima soluzione di base ammissibile Se tale soluzione non è ottima: 2. scrittura del sistema dei vincoli in funzione di tale base. 3. ricerca di una nuova soluzione di base ammissibile mediante individuazione della variabile entrante nella base e di quella uscente dalla base. 4. determinazione della nuova soluzione di base ammissibile. 5. valutazione della funzione per stabilire se si è trovata la soluzione ottima. Si ripetono i passi da 2 a 5 fino a che si trova la soluzione ottimale


Scaricare ppt "Programmazione lineare Definizione : la programmazione lineare serve per determinare lallocazione ottimale di risorse disponibili in quantità limitata,"

Presentazioni simili


Annunci Google