RICERCA OPERATIVA Tema d esame del 04/03/2008 (Simulazione) COGNOME: NOME: MATRICOLA:. Una nota azienda automobilistica produce due modelli di auto (un utilitaria e una berlina), che rivende con un guadagno unitario al netto dei costi di produzione pari a 5000 e 2000 Euro, rispettivamente. Produrre un utilitaria richiede 40 ore di manodopera, mentre produrre una berlina ne richiede 60. Si vuole pianificare la produzione di utilitarie e berline nei prossimi 3 mesi, in ognuno dei quali si hanno a disposizione 35000 ore di manodopera. La domanda mensile minima è data dalla seguente tabella. domanda primo mese secondo mese terzo mese utilitarie 450 500 600 berline 200 50 80 Si suppone che le auto prodotte in eccesso siano comunque vendute. A partire dal quarto mese, gli impianti saranno destinati a nuove produzioni e, di conseguenza, si vuole costituire, alla fine dei 3 mesi, una scorta di almeno 00 utilitarie e di 50 berline, per fronteggiare la domanda futura. Si deve considerare che, nel caso in cui nello stesso mese si producano sia utilitarie sia berline, 5000 delle ore di manodopera devono essere utilizzate per operazioni di setup degli impianti, e non sono disponibili per la produzione di automobili. Formulare un modello di programmazione lineare per pianificare il numero di utilitarie e di berline prodotte e immagazzinate in ciascuno dei tre mesi, in modo tale da massimizzare il guadagno dell azienda. 2. Dato il seguente problema di P.L. min 4x + x 2 + 3x 3 + 2x 4 s.t. 2x + x 2 + 2x 3 + x 4 = 6 x + 2x 2 + 2x 3 + x 4 5 x i 0 trovare la soluzione ottima a partire dalla base [x, x 3. Che tipo di variazione converebbe fare ai termini noti per migliorare il valore ottimo della funzione obiettivo senza cambiare base? 3. Risolvere con il Branch and Bound il seguente problema di knapsack 0 max z = 8x + 0x 2 + x 3 + 3x 4 + 9x 5 soggetto a 6x + 5x 2 + 4x 3 + 8x 4 + 7x 5 6 x i {0, } Utilizzare una strategia best first (numerare i nodi nell ordine di valutazione). 4. Si consideri il seguente problema di PL, la cui soluzione ottima è: x = 8, x 2 = 3, con z = 38.
min z = 4x 2x 2 s.t. 2x 6 x + 3x 2 7 x 2 5 x i 0 Scrivere il problema duale e stabilire se la soluzione duale y = 5/3, y 2 = 2/3, y 3 = 0 è ottima. 5. Dimostrare le condizioni di complementarietà primale-duale. 6. Enunciare la regola di Bland per la selezione delle variabili per il cambio di base nel metodo del simplesso primale: a cosa serve tale regola? 2
SOLUZIONI. Introduco le variabili: - p ti : numero di automobili di tipo t {u, b} prodotte nel mese i {, 2, 3}; - m ti : numero di automobili di tipo t {u, b} in magazzino alla fine del mese i {, 2, 3}; - y ti : variabile logica che vale se nel mese i {, 2, 3}; vengono prodotte automobili di tipo t {u, b}, 0 altrimenti; - c i : variabile logica che vale se nel mese i {, 2, 3}; vengono prodotte sia utilitarie sia berline, 0 altrimenti; e la costante M = + ( 650). Modello: max s.t. z = 5 i p ui + 2 i p bi #(mese ) p u 450 + m u #(domanda minima e scorta utilitarie) p b 200 + m b #(domanda minima e scorta berline) 40p u + 60p b 35000 5000c #(capacità dell impianto al netto dell eventuale setup) p u My u p b My b c y u + y b (impostazione variabile c ) #(mese 2) m u + p u2 500 + m u2 m b + p b2 50 + m b2 40p u2 + 60p b2 35000 5000c 2 p u2 My u2 p b2 My b2 c 2 y u2 + y b2 #(mese 3) m u2 + p u3 600 + 00 m b2 + p b3 80 + 50 40p u3 + 60p b3 35000 5000c 3 p u3 My u3 p b3 My b3 c 3 y u3 + y b3 p ti, m ti Z +, t {u, b}, i {, 2, 3} y ti {0, } t {u, b}, i {, 2, 3} c i {0, } {, 2, 3} max z = 5[(p u m u )+(p u2 +m u m u2 )+(p u3 +m u2 00)+2[(p b m b )+(p b2 +m b m b2 )+(p b3 +m b2 50) = 5[p u + p u2 + p u3 00 + 2[p b + p b2 + p u3 00 max z = 5 i p ui + 2 i p bi 3
2. Avendo una base iniziale, possiamo applicare il simplesso revisionato. Scriviamo il problema in forma standard: min 4x + x 2 + 3x 3 + 2x 4 s.t. 2x + x 2 + 2x 3 + x 4 = 6 x + 2x 2 + 2x 3 + x 4 x 5 = 5 x i 0 Inizializzazione [ 2 2 B = 2 Invertiamo B: [ [ [ [ 2 2 0 /2 0 0 B = B 2 0 0 /2 0 /2 = /2 [ [ [ [ x x B = = B x 6 b = = z 3 /2 5 2 B = c T B x B = [ 4 3 [ = 0 2 u T = c T B B = [ 4 3 [ = [ 5/2 /2 La matrice CARRY iniziale è: z 0 5/2 x x 2 2 /2 Iterazione u T = [ 5/2 c 2 = c 2 u T A 2 = [ 5/2 [ 2 c 4 = /2 0 = /2 0; c 5 = < 0: x 5 entra in base. [ Calcolo la colonna aggiornata Ā5 per l operazione di orlatura: Ā 5 = B A 5 = CARRY orlato: z 0 5/2 x x 3 2 /2 esce dalla base la variabile x corrispondente al minimo dei rapporti b i /Āi5, Ā i5 > 0. z 9 3/2 0 0 R0 R 0 + R x 5 R R x 3 3 /2 0 0 R2 R 2 + R Iterazione 2 u T = [ 3/2 0 c = c u T A = 4 [ 3/2 0 [ 2 c 2 = /2 < 0: x 2 entra in base. = 0; Calcolo la colonna aggiornata Ā2 per l operazione di orlatura: Ā 2 = B A 2 = [ /2 4
CARRY orlato: z 9 3/2 0 /2 x 5 x 3 3 /2 0 /2 esce dalla base la variabile x 3 corrispondente al minimo dei rapporti b i /Āi2, Ā i2 > 0. z 6 2 0 R0 R 0 + R 2 x 5 7 2 0 R R + R x 2 6 0 R2 2R 2 Iterazione 3 u T = [ 2 c = c u T A = 4 [ 2 [ 2 c 3 = 0; c 4 = 0; = 0; STOP: una soluzione ottima è: x = [0, 6, 0, 0, 7, z = 6 Considerando che si tratta di un problema di minimo e che le variabili duali associate ai due vincoli valgono, rispettivamente u = 2 e u 2 = (e ricordando il significato delle variabili duali come prezzi marginali) converrebbe diminuire b (u > 0) o aumentare b 2 (u 2 < 0) 3. Il problema, con le variabili ordinate per valori decrescenti di pi w i max z = x 3 + 0x 2 + 3x 4 + 8x + 9x 5 soggetto a 4x 3 + 5x 2 + 8x 4 + 6x + 7x 5 6 x i {0, } L albero di B&B è rappresentato in Figura. è il seguente: P 0 : x 3 = W = 2 x 2 = W = 7 x 4 = 7/8 (variabile critica) UB 0 = + 0 + 3 7 8 = 32 SA 0 = LB = + 0 + 8 = 29 (x 3 = x 2 = x =, x 4 = x 5 = 0) P : x 4 = 0 (no variabili dominate da x 4 ) x 3 = W = 2 x 2 = W = 7 x = W = x 5 = /7 (variabile critica) UB = + 0 + 8 + 9 7 = 30 SA = LB = + 0 + 8 = 29 (x 3 = x 2 = x =, x 4 = x 5 = 0) P 2 : x 4 = (no variabili dominanti x 4 ) (x 4 = W = 8) x 3 = W = 4 x 2 = 4/5 (variabile critica) UB 2 = 3 + + 0 4 5 = 32 SA 2 = LB = 3 + = 24 (x 4 = x 3 =, x = x 2 = x 5 = 0) P 3 : [x 4 = (no variabili dominanti x 4 ) x 2 = 0 x = x 5 = 0 (dominate) Il problema risultante max z = x 3 + 3 s.t. 4x 3 8 (x 3 {0, }) ha ottimo (x 4 =)x 3 = : UB 3 = SA 3 = 24 P 4 : [x 4 = (no variabili dominanti x 4 ) x 2 = x 3 = (dominante) Il problema risultante max z = + 0 + 3 + 8x + 9x 5 s.t. 4 + 5 + 8 + 6x + 7x 5 6 (x i {0, }) non è ammissibile: N.A. P 5 : [x 4 = 0 (no variabili dominate da x 4 ) x 5 = 0 (no variabili dominate da x 5 ) x 3 = W = 2 x 2 = W = 7 x = W = UB 5 = LB 5 = + 0 + 8 = 29: S.A. (x = x 2 = x 3 =, x 4 = x 5 = 0) 5
P 6 : [x 4 = 0 (no variabili dominanti x 4 ) x 5 = x 3 = x 2 = (dominanti) Il problema risultante max z = + 0 + 0 + 8x + 9 s.t. 4 + 5 + 0 + 6x + 7 6 (x {0, }) ha ottimo x 5 = x 3 = x 2 = : UB 6 = SA 6 = 30 Tutti i nodi risultano chiusi: la soluzione ottima è x 5 = x 3 = x 2 =, x = x 4 = 0, z = 30 x 4 =0 P 0 [32,29 x 4 [30,29 [32,24 P x 5 =0 x 5 x 3 =x 2 x 2 =0 x =x 5 =0 P 2 x 2 x 3 P 5 P 6 P 3 P 4 [29,S.A. [30,S.A. [24,S.A. [N.A. Figure : Esercizio 3 4. Introducendo le variabili y, y 2 e y 3 associate ai tre vincoli primali, il problema duale è il seguente: min ω = 6y + 7y 2 + 5y 3 s.t. 2y + y 2 4 3y 2 + y 3 y i 0 2 Per stabilire se la soluzione data è ottima, sfrutto il teorema della dualità forte. La soluzione duale data: (a) soddisfa i vincoli di non positività delle variabili: y 0, y 2 0 e y 3 0, (b) soddisfa il primo vincolo duale: 2( 5 3 ) + ( 2 3 ) = 4 4; (c) soddisfa il secondo vincolo duale: 3( 2 3 ) + 0 = 2 2; (d) il valore della funzione obiettivo è: 6( 5 3 ) + 7( 2 3 ) + 0 = 38. Abbiamo quindi una soluzione ammissibile duale con valore della funzione obiettivo pari a quello di una soluzione ammissibile (e ottima) primale. Pertanto, per la dualità forte, la soluzione duale data è ottima. 6
5. Le condizioni di complementarietà primale-duale (o di ortogonalità) si enunciano come segue: Data la coppia di problemi primale-duale min s.t. c T x Ax b x 0 max s.t. u T b u T A c T u 0 e due soluzioni x (primale) e u duale, allora x e ū sono ottime se e solo se Ax b x 0 u T A c T u 0 } u T (Ax b) = 0 (c T u T A)x = 0 Dimostrazione sufficienza (ammissibilità e ortogonalità ottimalità): } u T (Ax b) = 0 u T Ax = u T b (c T u T A)x c T x = u T c Ax T x = u T b (ammissibilità primale) (ammissibilità duale) (ortogonalità) x e u sono quindi due soluzioni ammissibili (per ipotesi) in corrispondenza delle quali i valori delle funzioni obiettivo sono uguali e, per il teorema della dualità forte, x e u sono ottime. Dimostrazione necessità (ottimalità ammissibilità e ortogonalità): Se le soluzioni sono ottime, sono anche, per definizione, ammissibili. Ne consegue c T x }{{} u T Ax }{{} u T b amm. duale, x 0 amm. primale, u 0 Inoltre, essendo x e u ottime, c T x = u T b, per il teorema della dualità forte. Le due disugualianze sono quindi, in effetti, delle uguaglianze: u T Ax = u T b u T (Ax b) = 0 e c T x = u T Ax (c T u T A)x = 0 (c.v.d.) 6. La regola di Bland per il simplesso primale impone di selezionare, tra tutte le variabili candidate ad entrare o ad uscire dalla base, quelle con indice minimo, cioé: indicando con c j, j =..n i costi ridotti delle variabili, entra in base x h con h = arg min j { c j < 0} indicando con b i, i =..m i valori delle variabili nella base corrente, x β[i tali variabili, ā ih i valori della colonna h aggiornata per la base corrente, e ϑ = min i { b i /ā ih }, esce dalla base la variabile x β[k, β[r = min i {β[i : b i /ā ih = ϑ}. La regola di Bland serve a evitare che il simplesso cicli, visitando le stesse soluzioni di base, e quindi a garantire delle condizioni di terminazione dell algoritmo del simplesso. 7