Esame di Ricerca Operativa del 08/09/ (Cognome) (Nome) (Numero di Matricola) Esercizio. Una dieta giornaliera consiste di tre cibi C, C e C, che vengono assunti nella quantità complessiva di 00 grammi. I tre cibi contengono proteine, carboidrati e grassi nelle quantità percentuali indicate nella seguente tabella: proteine carboidrati grassi C 0% 0% 0% C 0% 0% 0 C 0% 0 0% Si vuole che nella dieta vengano assunti giornalmente almeno 00 grammi di proteine, almeno 0 grammi di carboidrati ed almeno 00 grammi di grassi. Si vuole, inoltre, che la quantità di grassi non superi i 00 grammi e che la quantità complessiva dei cibi C e C sia almeno il doppio della quantità di C. Sapendo che il costo per 00 grammi di ciascuno dei cibi C, C e C, è 0.8, 0. e. euro, rispettivamente, si formuli un problema di programmazione lineare per determinare una dieta giornaliera di minimo costo. variabili decisionali: modello: Esercizio. Completare la seguente tabella considerando il problema di programmazione lineare: max x x x x x x x x + x x x x +x x Base Soluzione di base Ammissibile Degenere (si/no) (si/no) {, } x = {, } y =
Esercizio. Effettuare due iterazioni dell algoritmo del simplesso primale per il problema dell esercizio. iterazione {,} iterazione Base x y Indice Rapporti Indice uscente entrante Esercizio. Completare la seguente tabella considerando il problema di flusso di costo minimo sulla seguente rete (su ogni nodo é indicato il bilancio e su ogni arco sono indicati, nell ordine, il costo e la capacità). - (,) - (,) (,9) - (,) (,) (,) (8,) 8 (,8) (8,) (,) Archi di T Archi di U Soluzione di base Ammissibile Degenere (si/no) (si/no) (,) (,) (,) (,) (,) (,) (,) x = (,) (,) (,) (,) (,) (,) (,) π = (0, Esercizio. Effettuare due iterazioni dell algoritmo del simplesso su reti per il problema dell esercizio. (9,0) iterazione iterazione Archi di T (,) (,) (,) (,) (,) (,) Archi di U (,) x π Arco entrante ϑ +, ϑ Arco uscente Esercizio. a) Applicare l algoritmo di Dijkstra per trovare l albero dei cammini minimi di radice sulla seguente rete. 0 8 8
nodo visitato iter iter iter iter iter iter iter π p π p π p π p π p π p π p nodo nodo nodo nodo nodo nodo insieme Q b) Applicare l algoritmo FFEK per trovare il flusso massimo tra il nodo ed il nodo sulla seguente rete. 9 9 cammino aumentante δ x v Taglio di capacitá minima: N s = N t =
Esercizio. Si consideri il seguente problema di programmazione lineare intera: min x + x x +0 x 9 x + x x 0 x 0 x,x Z a) Calcolare una valutazione inferiore del valore ottimo risolvendo il rilassamento continuo. sol. ottima del rilassamento = v I (P) = b) Calcolare una valutazione superiore del valore ottimo arrotondando la soluzione ottima del rilassamento. sol. ammissibile = v S (P) = c) Calcolare un taglio di Gomory. r = taglio: Esercizio 8. Si consideri il problema di trovare il ciclo hamiltoniano di costo minimo su una rete di città, le cui distanze reciproche sono indicate in tabella: città 9 8 98 9 a) Trovare una valutazione inferiore del valore ottimo calcolando il albero di costo minimo. albero: v I (P) = b) Trovare una valutazione superiore applicando l algoritmo del nodo piú vicino a partire dal nodo. ciclo: v S (P) = c) Applicare il metodo del Branch and Bound, utilizzando il albero di costo minimo come rilassamento di ogni sottoproblema ed istanziando, nell ordine, le variabili x, x, x.
SOLUZIONI Esercizio. Variabili decisionali: x i = quantitá (in ettogrami) di cibo C i, i =,,, da assumere giornalmente nella dieta; Modello: min (0.8x +0.x +.x ) x +x +x = 0.x +0.x +0.x 0.x +0.x. 0.x +0.x 0.x +0.x x +x x 0 x i 0, i =,,, + Esercizio. Completare la seguente tabella considerando il problema di programmazione lineare: max x x x x x x x x + x x x x +x x Base Soluzione di base Ammissibile Degenere (si/no) (si/no) {, } x = (, 9) SI NO {, } y = ( 0, 0, 0, 8 ),, 0, 0 Esercizio. Effettuare due iterazioni dell algoritmo del simplesso primale per il problema dell esercizio. Base x y Indice Rapporti Indice uscente entrante iterazione {, } (, ) iterazione {, } (, ) ( 0, 0, 0, ( 0, 0, ), 0,, 0 ),, 0, 0, 0 NO NO,,, 8 Esercizio. Completare la tabella considerando il problema di flusso di costo minimo sulla seguente rete (su ogni nodo é indicato il bilancio e su ogni arco sono indicati, nell ordine, il costo e la capacitá). - (,) - (,) (,9) - (,) (,) (,) (8,) 8 (,8) (8,) (,) (9,0)
Archi di T Archi di U Soluzione di base Ammissibile Degenere (si/no) (si/no) (,) (,) (,) (,) (,) (,) (,) x = (, 0, 0, 0,,, 0,, 0, 0, 8) NO SI (,) (,) (,) (,) (,) (,) (,) π = (0,, 0, 8,,, ) NO NO Esercizio. Effettuare due iterazioni dell algoritmo del simplesso su reti per il problema dell esercizio. iterazione iterazione Archi di T (,) (,) (,) (,) (,) (,) (,) (,) (,) (,) (,) (,) Archi di U (,) (,) x (0,,,,, 0,, 0,,, 0) (, 0,,,, 0,, 0,,, 0) π (0,,,,,, 9) (0,, 0,,,, ) Arco entrante (,) (,) ϑ +, ϑ,, Arco uscente (,) (,) Esercizio. a) Applicare l algoritmo di Dijkstra per trovare l albero dei cammini minimi di radice sulla seguente rete. 0 8 8 iter iter iter iter iter iter iter π p π p π p π p π p π p π p nodo visitato nodo nodo nodo nodo + + nodo + nodo + + + 0 0 0 insieme Q,,,,,,,,, b) Applicare l algoritmo di Ford-Fulkerson(con la procedura di Edmonds-Karp per la ricerca del cammino aumentante) per trovare il flusso massimo tra il nodo ed il nodo sulla seguente rete.
9 9 cammino aumentante δ x v - - (0,, 0, 0, 0, 0,, 0, 0, 0, 0) - - - 9 (9,, 0, 9, 0, 0,, 0, 0, 9, 0) - - - (9, 8, 0, 9, 0,,, 0, 0,, 0) - - - (9, 8,, 9, 0,,, 0,,, ) Taglio di capacitá minima: N s = {,,,} N t = {,,} Esercizio. Si consideri il seguente problema di programmazione lineare intera: min x + x x +0 x 9 x + x x 0 x 0 x,x Z a) Calcolare una valutazione inferiore del valore ottimo risolvendo il rilassamento continuo. ( sol. ottima del rilassamento = 0, ) b) Calcolare una valutazione superiore del valore ottimo arrotondando la soluzione ottima del rilassamento. v I (P) = sol. ammissibile = (0,) v S (P) = c) Calcolare un taglio di Gomory. r = x +9x 0 r = x +x Esercizio 8. Si consideri il problema di trovare il ciclo hamiltoniano di costo minimo su una rete di cittá, le cui distanze reciproche sono indicate in tabella: cittá 9 8 98 9 a) Trovare una valutazione inferiore del valore ottimo calcolando il albero di costo minimo. albero: (, ) (, ) (, ) (, ) (, ) v I (P) = 98 b) Trovare una valutazione superiore applicando l algoritmo del nodo piú vicino a partire dal nodo. ciclo: v S (P) = c) Applicare il metodo del Branch and Bound, utilizzando il albero di costo minimo come rilassamento di ogni sottoproblema ed istanziando, nell ordine, le variabili x, x, x.
98, P x = 0 x =, P, 98, P, x = 0 x = x = 0 x =, 8, 98, 9, P, P, P, P, x = 0 x = x = 0 x = x = 0 x = P,, P, 98, P, 80, P, 9, P, P,8