Esame di Ricerca Operativa del /0/ (Cognome) (Nome) (Numero di Matricola) Esercizio. Completare la seguente tabella considerando il problema di programmazione lineare: min y y + y + y + y y + y y +y +y y y y = y y y y +y y = y 0 Base Soluzione di base Ammissibile Degenere (si/no) (si/no) {, } x = {, } y = Esercizio. Effettuare due iterazioni dell algoritmo del simplesso duale per il problema dell esercizio. iterazione {,} iterazione Base x y Indice Rapporti Indice entrante uscente Esercizio. Un industria chimica produce una soluzione per la quale sono utilizzati diversi composti chimici: C, C e C. La composizione di ciascun composto e il costo unitario (Euro/Kg) sono indicati nella seguente tabella: % silicio % calcio % ferro Costo C 8 00 C 0 C 0 Il prodotto finale deve contenere una percentuale di silicio tra il e l 8 %, una percentuale di calcio tra il e il % ed una percentuale di ferro non inferiore al %. Determinare la composizione della soluzione che minimizza i costi. variabili decisionali: modello: COMANDI DI MATLAB c= intlinprog= A= b= Aeq= lb= beq= ub=
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à). - (8,9) (8,8) (0,8) - (9,0) (8,) (9,0) (,) (0,) (,) - (,) 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. (,) 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. 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. 0 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 x +9 x 8 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à 98 9 8 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. Esercizio 9. Trovare massimi e minimi della funzione f(x,x ) = x sull insieme {x R : x +x 8x 0, x +x x x = 0}. Soluzioni del sistema LKT Massimo Minimo Sella x λ µ globale locale globale locale (0,0) (.,.) (,+ ) Esercizio 0. Si consideri il seguente problema: { min x x x + x + x +9 x x P e i vertici di P sono (,), (, ), (, ) e (,). Fare un passo del metodo del gradiente proiettato. Punto Matrice M Matrice H Direzione Max spostamento Passo Nuovo punto possibile ( ),
SOLUZIONI Esercizio. Completare la seguente tabella considerando il problema di programmazione lineare: min y y + y + y + y y + y y +y +y y y y = y y y y +y y = y 0 Base Soluzione di base Ammissibile Degenere (si/no) (si/no) {, } x = (, ) SI NO {, } y = ( 0, ), 0, 8, 0, 0, 0 Esercizio. Effettuare due iterazioni dell algoritmo del simplesso duale per il problema dell esercizio. Base x y Indice Rapporti Indice entrante uscente iterazione {, } (, ) (, 0, 0, 0, 0, 0, ), iterazione {, } (, ) (0, 0,, 0, 0, 0, ) Esercizio. Indichiamo con x, x ed x rispettivamente, le quantità percentuali di composto di tipo e da usare nella soluzione. Il modello di programmazione lineare è il seguente: min 00 x +0 x +0 x x +x +x = 0.0 0.0 x +0.0 x +0.0 x 0.08 0.0 0.0 x +0.0 x +0.0 x 0.0 0.08 x +0.0 x +0.0 x 0.0 x 0 NO NO c=[00;0;0] COMANDI DI MATLAB A=[-,-,-;,,;-,-,-;,,;-8,-,-] b=[-; 8; -; ; -] Aeq=[;;] lb=[0;0;0] beq=[] ub=[] 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à). - (8,9) (8,8) (0,8) - (9,0) (8,) (9,0) (,) (0,) (,) - (,) (,)
Archi di T Archi di U Soluzione di base Ammissibile Degenere (si/no) (si/no) (,) (,) (,) (,) (,) (,) (,) x = (,, 9, 9, 0, 0,, 0,, 0, ) NO NO (,) (,) (,) (,) (,) (,) (,) π = (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, ) π (0,,, 0, 0,, ) (0, 0,, 8, 8,, ) Arco entrante (,) (,) ϑ +, ϑ 8,, Arco uscente (,) (,) Esercizio. a) Applicare l algoritmo di Dijkstra per trovare l albero dei cammini minimi di radice sulla seguente rete. 8 8 iter iter iter iter iter iter iter π p π p π p π p π p π p π p nodo visitato nodo nodo nodo nodo + + nodo + 0 0 0 0 0 0 nodo + + 9 9 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. 0
cammino aumentante δ x v - - - (0,, 0, 0,, 0, 0, 0,, 0, 0) - - - (0,,, 0,, 0,, 0,, 0, ) - - - - (,,,,, 0,, 0,, 0, ) 8 Taglio di capacità minima: N s = {,,,} N t = {,,} Esercizio. Si consideri il seguente problema di programmazione lineare intera: min x + x x +0 x x +9 x 8 x 0 x 0 x,x Z a) Calcolare una valutazione inferiore del valore ottimo risolvendo il rilassamento continuo. ( ) 8 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 r = x +9x 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à 98 9 8 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. Dire se l algoritmo è terminato.
, P x = 0 x =, P,, P, x = 0 x = x = 0 x = 8,,,, P, P, P, P, x = 0 x = x = 0 x =, P,, P, 0, P, P,8 Esercizio 9. Trovare massimi e minimi della funzione f(x,x ) = x sull insieme {x R : x +x 8x 0, x +x x x = 0}. Soluzioni del sistema LKT Massimo Minimo Sella x λ µ globale locale globale locale (0,0) /8 0 NO NO SI SI NO (.,.) /0 -/ NO NO NO SI NO (,+ ) 0 / SI SI NO NO NO Esercizio 0. Si consideri il seguente problema: { min x x x + x + x +9 x x P dove P è il poliedro di vertici (,), (, ), (, ) e (,). Fare una iterazione del metodo del gradiente proiettato. Punto Matrice M Matrice H Direzione Max spostamento Passo Nuovo punto ( ) ( ) possibile ( 0,) (0,) 0 0,0 (,)