Esame di Ricerca Operativa del /0/ (Cognome) (Nome) (Corso di laurea) Esercizio. Completare la seguente tabella considerando il problema di programmazione lineare: max 9 x +x x +x 8 x x x + x 9 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. Una ditta produce tre tipi di piastrelle (P, P, P) utilizzando tre diversi materiali (M, M, M). La seguente tabella riporta le quantità (in Kg) di ciascuna materia prima richiesta per produrre una piastrella e la quantità massima (in Kg) di ciascuna materia prima che si può acquistare mensilmente: M M M P 0. 0.8 0. P 0. 0. 0. P 0. 0. 0. quantità massima 000 00 000 Nella tabella sono riportate le ore necessarie per la produzione, i prezzi di vendita e le quantità minime da produrre: P P P ore lavorative 0.8 0. prezzo di vendita 0 quantità minime 000 000 00 Determinare la produzione mensile in modo da massimizzare il ricavo, tenendo conto che il numero di ore impiegate per la lavorazione della piastrella P non deve superare il 0% del totale delle ore necessarie per la lavorazione di tutte le piastrelle fabbricate. modello:
c= COMANDI DI MATLAB A= b= Aeq= beq= lb= 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à). - (,9) - (,8) (,0) (,) (,) (,) (,) - (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 9 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 0 cammino aumentante δ x v Taglio di capacità minima: N s = N t =
Esercizio. Si consideri il seguente problema di programmazione lineare intera: min 0 x + x x + 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à 8 8 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. Completare la seguente tabella considerando il problema di programmazione lineare: max 9 x +x x +x 8 x x x + x 9 x +x x x x + x Base Soluzione di base Ammissibile Degenere (si/no) (si/no) {, } x = (, 0) SI NO {, } y = ( 0, 0, 0, 0, ), Esercizio. Effettuare due iterazioni dell algoritmo del simplesso primale per il problema dell esercizio. iterazione {, } (, ) iterazione {, } (0, ) Base x y Indice Rapporti Indice uscente entrante ( 0, 0, 0, ),, 0 ( 0, ), 0, 0,, 0 NO NO, Esercizio. variabili decisionali: x i = numero di piastrelle di tipo i prodotte, con i =,,. max x +0 x + x 0. x +0. x +0. x 000 0.8 x +0. x +0. x 00 0. x modello: +0. x +0. x 000 x 0. (x +0.8 x +0. x ) x A 000 x B 000 x C 00 c=-[;0;] COMANDI DI MATLAB A=[0. 0. 0.;0.8 0. 0.;0. 0. 0.; 0. -0. -0.] Aeq=[] lb=[000; 000; 00] b=[000;00;000;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à). - (,9) - (,8) (,0) (,) (,) (,) (,) - (0,) (,) (,0) Archi di T Archi di U Soluzione di base Ammissibile Degenere (si/no) (si/no) (,) (,) (,) (,) (,) (,) x = (, 0,,,, 0, 0, 0, 0, 8) NO NO (,) (,) (,) (,) (,) (,) π = (0,, 8, 0,, ) 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, 8,, 0, ) (,, 0,,, 0, 8, 0, 0, ) π (0,,,,, ) (0,,,,, 0) Arco entrante (,) (,) ϑ +, ϑ 9,, Arco uscente (,) (,) Esercizio. a) Applicare l algoritmo di Dijkstra per trovare l albero dei cammini minimi di radice sulla seguente rete. 8 8 9 8 iter iter iter iter iter iter iter π p π p π p π p π p π p π p nodo visitato nodo nodo 8 8 8 8 8 8 8 nodo + + 0 0 0 0 0 nodo + 9 9 9 9 9 9 nodo + + + + 8 nodo + + + 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 0 cammino aumentante δ x v - - - (, 0, 0,, 0, 0, 0, 0,, 0, 0) - - - (,, 0,, 0,, 0, 0,, 0, 0) - - - - - (,,,, 0,,, 0,,, 0) Taglio di capacità minima: N s = {,,,,,} N t = {} Esercizio. Si consideri il seguente problema di programmazione lineare intera: min 0 x + x x + 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 =, 8 ) b) Calcolare una valutazione superiore del valore ottimo arrotondando la soluzione ottima del rilassamento. v I (P) = 8 sol. ammissibile = (,) v S (P) = 9 c) Calcolare un taglio di Gomory. r = x +x r = x +x 0 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à 8 8 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) = 0 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.
,0 P x = 0 x =,0 P,,0 P, x = 0 x =,0 P, 08,0 P, x = 0 x = x = 0 x =,0 P, 08,0 P, 08,0 P, P,8