RICERCA OPERATIVA (a.a. 2018/19)

Documenti analoghi
RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

Quinto appello 27/6/ = 4. B b B = 2 b N = 4

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2011/12) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2018/19) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2014/15) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2014/15) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2012/13) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2012/13) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2014/15) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2014/15) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2012/13)

Nome Cognome: RICERCA OPERATIVA (a.a. 2012/13) 5 o Appello 14/1/ Corso di Laurea: L Sp Matricola:

RICERCA OPERATIVA (a.a. 2008/09) Nome: Cognome: Matricola:

Esame di Ricerca Operativa del 19/02/2019. Esercizio 1. Risolvere il seguente problema di programmazione lineare applicando l algoritmo del simplesso:

RICERCA OPERATIVA (a.a. 2003/04) Nome Cognome:

SVOLGIMENTO La base artificiale costruita dal pre-simplesso duale usando M = 3 corrisponde ai due vincoli aggiunti. x 1 3 x 2 3 =

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2018/19) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola:

Ottimizzazione Combinatoria e Reti (a.a. 2007/08)

Esame di Ricerca Operativa del 07/06/2019

Ottimizzazione Combinatoria e Reti (a.a. 2008/09)

Esame di Ricerca Operativa del 18/06/18

Esame di Ricerca Operativa del 11/02/2015

Esame di Ricerca Operativa del 11/07/2016

min 7y 1 y 2 + 3y 3 + 5y 4 2y 1 + y 2 + y 3 + 2y 4 = 4 y 1 y 2 y 4 = α y 1, y 2, y 3, y 4 0 (D)

Esame di Ricerca Operativa del 22/01/18

Esame di Ricerca Operativa del 22/01/18

Esame di Ricerca Operativa del 11/1/19

Esame di Ricerca Operativa del 06/02/17

Esame di Ricerca Operativa del 13/06/17. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Esame di Ricerca Operativa del 12/06/18. Base x Degenere? y Indice Rapporti Indice uscente entrante

Esame di Ricerca Operativa del 20/02/18

RICERCA OPERATIVA. Stock bamboline automobiline libri peluches costo (euro)

Esame di Ricerca Operativa del 09/04/2019. (Cognome) (Nome) (Numero di Matricola)

Esame di Ricerca Operativa del 07/09/2016

3.2 Rilassamenti lineari/combinatori e bounds

Esame di Ricerca Operativa del 09/01/15. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Esame di Ricerca Operativa del 04/02/16. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Esame di Ricerca Operativa del 12/07/17

Domini di funzioni di due variabili. Determinare i domini delle seguenti funzioni di due variabili (le soluzioni sono alla fine del fascicolo):

Esame di Ricerca Operativa del 19/07/19. Esercizio 1. (a) Risolvere mediante il metodo del simplesso il seguente problema di programmazione lineare:

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014

Esame di Ricerca Operativa del 19/01/2016

Esame di Ricerca Operativa del 15/01/2015

Esame di Ricerca Operativa del 15/01/2015

Esame di Ricerca Operativa del 08/09/17

Esame di Ricerca Operativa del 05/09/18

Esame di Ricerca Operativa del 06/02/17

Esame di Ricerca Operativa del 16/06/2015

Esercizio 1. Variabili decisionali:

Esame di Ricerca Operativa del 19/01/2016

Esame di Ricerca Operativa del 04/07/17

Esame di Ricerca Operativa del 03/09/2015

Esame di Ricerca Operativa del 28/05/14. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Esame di Ricerca Operativa del 17/01/17. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Esame di Ricerca Operativa del 15/01/16. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Esame di Ricerca Operativa del 21/07/14. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Esame di Ricerca Operativa del 30/06/14. max 4 x 1 7 x 2 x 1 +7 x 2 7 x 1 4 x 2 7 x 1 +5 x 2 5 x 1 x 2 5 x 2 1 x 1 +4 x 2 6

Massimo flusso e matching

RICERCA OPERATIVA. Tema d esame del 04/12/2008 (Simulazione 1)

Esame di Ricerca Operativa del 12/02/18. P 1 P 2 P 3 P 4 P 5 P 6 Peso bagaglio km di viaggio

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

Esame di Ricerca Operativa del 10/09/13. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Esame di Ricerca Operativa del 6/2/18. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Esame di Ricerca Operativa del 24/07/18. max 7 x 1 +4 x 2 x 1 +3 x x 1 +x x 1 +x 2 12 x 1 x x 1 3 x 2 2 x 1 2 x 2 14

FACOLTA DI ECONOMIA ESAME SCRITTO DI RICERCA OPERATIVA. Verona, 6 Giugno 1996

Ricerca Operativa A.A. 2007/ Esercitazione di laboratorio: Branch and Bound.

Registro dell'insegnamento

Esame di Ricerca Operativa del 25/06/12

Fac-simile dell esame di Ricerca Operativa. max 7 x 1 2 x 2 3 x 1 +x 2 2 x 1 2 x 2 3 x x 1 +x x 1 x 2 5

Algoritmo basato su cancellazione di cicli

Esame di Ricerca Operativa del 18/02/13

Ricerca Operativa A.A. 2007/ Esercitazione di laboratorio: Branch and Bound.

A.A Fondamenti di Ricerca Operativa. 2. Determinare β affinchè il poliedro descritto dal sistema di disequazioni

Esame di Ricerca Operativa del 16/02/15. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Esame di Ricerca Operativa del 23/02/17

Esame di Ricerca Operativa. x 1 +2 x 2 6 x 1 +x 2 6 x 1 4 x 1 1

Esame di Ricerca Operativa del 09/02/2016

Esame di Ricerca Operativa del 15/09/14. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Transcript:

Secondo appello //9 RICERCA OPERATIVA (a.a. 8/9) Nome: Cognome: Matricola: ) Si consideri il seguente problema di PL: min y + y y y y y = y + y y = y, y, y, y Si verifichi se la soluzione ȳ =,,, sia ottima per il problema. Inoltre, si individui l insieme di tutte le soluzioni ottime del duale del problema dato, ovvero del problema primale, e l insieme di tutti i vertici ottimi del poliedro primale. Giustificare le risposte. Considerando la coppia asimmetrica di problemi duali (P ) max{ cx : Ax b } (D) min{ yb : ya = c, y } il teorema forte della dualità e il teorema degli scarti complementari garantiscono la seguente caratterizzazione dell ottimalità primale: Proposizione. Sia ȳ una soluzione ammissibile per (D). ȳ è ottima se e solo se esiste una soluzione x ammissibile per (P ) che sia complementare a ȳ, ovvero tale che x e ȳ verifichino le condizioni degli scarti complementari ȳ(b A x) =. Per l ammissibilità delle soluzioni x e ȳ, le condizioni degli scarti complementari sono equivalenti al sistema di equazioni Per il problema in esame si ha: ȳ i (b i A i x) = i =,..., m. (P ) max x + x x + x x + x x x (D) min y + y y y y y = y + y y = y, y, y, y È immediato verificare che la soluzione ȳ =,,, è ammissibile per (D). L insieme degli indici delle variabili duali positive in ȳ è {,, }. Di conseguenza, una soluzione primale x che formi con ȳ una coppia di soluzioni complementari deve avere {,, } come indici dei vincoli attivi. Affinché x sia ammissibile per (P ), essa deve quindi soddisfare il sistema x + x = x + x = x = x Tale sistema ammette come unica soluzione x =,. ȳ =,,, è quindi soluzione ottima per (D), mentre x =, è soluzione ottima per (P ). Essa è inoltre l unica soluzione ottima di (P ) essendo l unica soluzione ammissibile primale in scarti complementari con ȳ. Si noti che x è soluzione ottima di base, ovvero un vertice del poliedro primale, in quanto la sottomatrice dei vincoli attivi è di rango. x è quindi l unico vertice ottimo del poliedro primale.

Secondo appello //9 ) Si risolva il seguente problema di PL applicando l algoritmo del Simplesso Duale, per via algebrica, a partire dalla base B = {, }. Per ogni iterazione si indichino: la base, la matrice di base e la sua inversa, la coppia di soluzioni di base, l indice entrante, il vettore η B, il passo di spostamento e l indice uscente. Si discuta infine come cambierebbe l esito di risoluzione se il termine noto del secondo vincolo valesse invece di. Giustificare tutte le risposte. it. ) B = {, }: A B = it. ) B = {, }: A B = it. ) B = {, }: A B =, A B = ȳ B = ca B = A N x = max x + x x x x x + x x x + x, x = A B b B = = =, ȳ N =, ȳ = = 8 b N = k = min{ i N : A i x > b i } = min{, } = regola anticiclo di Bland η B = A k A B = = θ = min{ ȳ i /η i : i B, η i > } = /, h = min{ i B : η i >, θ = ȳi /η i } = ȳ B = / / A N x =, A B = / / η B = / / / /, x = = = / /, ȳ N =, ȳ = / / = 8 b N =, k = = / /, θ =, h =, A B = / / / / ȳ B = / / / / A N x = / /, x = / / = =, ȳ N =, ȳ = = η B = / / / / b N =, k = = / /, ST OP. Poiché η B si ha che il problema duale è inferiormente illimitato, e di conseguenza il problema primale è vuoto. Se il termine noto del secondo vincolo valesse invece di lo svolgimento sarebbe invariato fino alla terza iterazione, in cui si avrebbe A x =,, =, e quindi A N x b N. La base B = {, } sarebbe pertanto una base ottima: x =, sarebbe una soluzione ottima primale, mentre ȳ =,,,, sarebbe una soluzione ottima duale.

Secondo appello //9 ) Si individui un albero dei cammini minimi di radice 7 sul grafo in figura, utilizzando l algoritmo più appropriato dal punto di vista della complessità computazionale e giustificando la scelta effettuata. Per ogni iterazione si forniscano il nodo selezionato, i vettori dei predecessori e delle etichette e l insieme dei nodi candidati Q (se utilizzato). Durante l algoritmo si esplorino gli archi della stella uscente del nodo selezionato in ordine crescente del nodo testa. Al termine si disegni l albero dei cammini minimi individuato. Si consideri poi il caso in cui il costo dell arco (, ) sia un parametro reale α, e si discuta per quali valori del parametro la soluzione determinata resta un albero dei cammini minimi, giustificando la risposta. 9-7 7 Rinumerando i nodi come segue originale 7 rinumerato 7 si dimostra che il grafo è aciclico: infatti per ogni arco (i, j) del grafo rinumerato risulta i < j. L algoritmo più conveniente dal punto di vista computazionale risulta quindi essere SPT.Acyclic, che ha complessità in tempo O(m) (anche in presenza di archi di costo negativo, come in questo caso. Nello svolgimento si utilizzano i nomi dei nodi dopo la rinumerazione, e si riporta solamente il numero dell iterazione, in quanto all iterazione i-esima viene selezionato il nodo i; inoltre, non viene usata alcuna struttura dati Q. M = (n ) max{c ij : (i, j) A} + = 9 + =. it. p p p p p p p7 d d d d d d d7 nil nil nil 8 nil 8 7 nil 8 nil 8 nil 8 Albero dei cammini minimi individuato (sul grafo rinumerato): 7 Dopo la rinumerazione, l arco (, ) diviene l arco (, ), che non fa parte dell albero dei cammini minimi individuato. Se il suo costo fosse un parametro reale α, l albero rimarrebbe ottimo fintanto che l arco continua a soddisfare le condizioni di Bellman, ossia d + c = + α 8 = d = α. Per α =, l arco (, ) potrebbe sostituire (, ) ottenendo un diverso albero dei cammini minimi, mentre per α < l albero originario non sarebbe più un albero dei cammini minimi.

Secondo appello //9 ) Si risolva il problema di flusso di costo minimo per l istanza in figura utilizzando l algoritmo di cancellazione dei cicli a partire dal flusso indicato, di costo cx = 7. Per ogni iterazione si mostri il ciclo individuato con il suo verso, costo e capacità, e la soluzione ottenuta dopo l applicazione dell operazione di composizione, con il suo costo. Al termine si dimostri che la soluzione ottenuta è ottima. -,,,7, -7,,,,,, b i i,, c ij, u ij, x ij,, -,,,,,, b j j,,9 9 L algoritmo esegue tre iterazioni, illustrate dalle prime tre figure (da sinistra a destra, dall alto in basso): in ogni figura è mostrato il ciclo C utilizzato (archi tratteggiati) con il suo verso (freccia tratteggiata) e la sua capacità θ, nonché il flusso x al termine dell iterazione, ossia dopo l applicazione dell operazione di composizione con C, con il relativo costo cx. La quarta figura, in basso a destra, mostra il grafo residuo relativo all ultima soluzione e il corrispondente albero dei cammini minimi (archi tratteggiati) di radice fittizia r (non mostrata in figura). Tale albero è ottimo, come dimostrano le etichette associate ai nodi, che soddisfano le condizioni di Bellman. L esistenza di un albero dei cammini minimi dimostra che non esistono cicli orientati di costo negativo nel grafo residuo, ovvero non esistono cicli aumentanti di costo negativo rispetto all ultimo flusso determinato x, che è quindi un flusso di costo minimo. 9 θ=, c(c) = -, cx = 7 θ =, c(c) = -, cx = θ=, c(c)= -, cx = 9 - -9 - - - - - - - - -

Secondo appello //9 ) Si formuli il problema del Commesso Viaggiatore (TSP), relativamente all istanza in figura, in termini di Programmazione Lineare Intera. Giustificare la correttezza della formulazione proposta. 8 7 Introduciamo una variabile binaria per ogni arco presente nel grafo: x, x, x, x, x, x, x e x. Nel modello di Programmazione Lineare Intera, ognuna di tali variabili assume il valore se l arco corrispondente viene selezionato, e altrimenti. Utilizzando tali variabili decisionali, il problema del Commesso Viaggiatore (TSP) per l istanza in questione, che consiste nel determinare un ciclo Hamiltoniano di costo minimo sul grafo dato, può allora essere formulato nel modo seguente: (TSP) min 8x + x + x + x + x + 7x + x + x x + x + x = x + x + x = x + x + x + x = x + x + x = x + x + x = i S,j / S x ij, S {,,,, } x, x, x, x, x, x, x, x {, } Il primo blocco di vincoli, uno per nodo, impone che, considerando gli archi (i, j) selezionati, ovvero tali che x ij =, in ogni nodo del grafo incidano esattamente due archi. Tali vincoli (detti di copertura per cicli) assicurano la copertura dei nodi del grafo mediante una collezione di cicli, ma non garantiscono che la copertura avvenga mediante un ciclo unico. Il successivo blocco di vincoli (vincoli di connessione) impone che il sottoinsieme di archi selezionati formi una struttura connessa, e di conseguenza garantisce che la copertura dei nodi del grafo avvenga mediante un unico ciclo, ovvero mediante un ciclo Hamiltoniano. Poiché la funzione obiettivo, da minimizzare, rappresenta il costo totale degli archi selezionati, il modello presentato correttamente formula il problema di determinare un ciclo Hamiltoniano di costo minimo (TSP) per l istanza in figura.

Secondo appello //9 ) Si applichi alla seguente istanza del problema dello zaino max x +9x +x +x +x +x x +x +x +x +x +x x, x, x, x, x, x {, } l algoritmo Branch and Bound che utilizza il rilassamento continuo per determinare la valutazione superiore, l euristica Greedy CUD per determinare la valutazione inferiore, esegue il branching sulla variabile frazionaria, visita l albero di enumerazione in modo breadth-first e, tra i figli di uno stesso nodo, visita per primo quello in cui la variabile frazionaria è fissata a. Per ogni nodo dell albero si riportino le soluzioni ottenute dal rilassamento e dall euristica (se vengono eseguiti) con le corrispondenti valutazioni superiore e inferiore; si indichi poi se viene effettuato il branching, e come, o se il nodo viene chiuso e perché. Indichiamo con x la soluzione ottenuta dal rilassamento e con x quella ottenuta dall euristica. Indichiamo inoltre con z la valutazione superiore ottenuta ad ogni nodo (ossia z = cx ), con z la valutazione inferiore ottenuta ad ogni nodo (ossia z = c x) e con z la migliore delle valutazioni inferiori determinate. L ordine delle variabili per Costo Unitario Decrescente è x, x, x, x, x, x. Inizializzazione La coda Q viene inizializzata inserendovi il solo nodo radice dell albero delle decisioni, corrispondente a non aver fissato alcuna variabile; inoltre, si pone z =. Nodo radice x =,,, /,,, z = + /, x =,,,,,, z =. Poiché z > z =, si aggiorna z =. Siccome z = + / > = z, si esegue il branching sulla variabile frazionaria x. x = x =,,,, /,, z =. x =,,,,,, z =. Poiché z = = z, z non cambia. Poiché z = > = z, si esegue il branching sulla variabile frazionaria x. x = x =,, /,,,, z =. x =,,,,,, z =. Poiché z = > = z, si esegue il branching sulla variabile frazionaria x. x = x = x =,,,,, /, z = + /. Si noti che si può porre z = in quanto tutti i costi sono interi, e quindi anche il valore ottimo è intero. Poiché z = = z, il nodo viene chiuso dalla valutazione superiore. x =, x = x =,, /,,,, z = + /. Analogamente a prima, si può porre z =. Poiché z = = z, il nodo viene chiuso dalla valutazione superiore. x =, x = x =,,,,,, z = z =. Il nodo viene chiuso per ottimalità. Poiché z = = z, potrebbe essere chiuso anche dalla valutazione superiore. x =, x = x = /,,,,,, z =. Poiché z = = z, il nodo viene chiuso dalla valutazione superiore. Poiché Q è vuota, l algoritmo Branch and Bound termina, restituendo la soluzione ottima,,,,,, di costo.