Nome Cognome:
Transcript
Nome Cognome:
2o Appello – 27/6/2007 1 RICERCA OPERATIVA (a.a. 2006/07) Nome Cognome: Corso di Laurea: I SI Matricola: Corso: A B 1) Si consideri una rete logistica descritta da un grafo orientato G = (N, A). La ditta GoOn vuole organizzare una spedizione lungo tale rete. Specificatamente, deve inviare b pacchi dal nodo s ∈ N al nodo t ∈ N . Per motivi gestionali, GoOn richiede che il numero dei nodi della rete interessati dal transito dei pacchi, a parte s e t, non sia superiore a K. Noto il numero massimo di pacchi uij inviabili lungo il collegamento (i, j) ∈ A, e noto il costo unitario di invio cij lungo (i, j), si formuli in termini di P.L.I. il problema di effettuare l’invio da s a t a costo minimo, rispettando la capacità dei collegamenti ed il vincolo relativo al numero di nodi interessati dal transito. SVOLGIMENTO Per descrivere il problema introduciamo le variabili di flusso xij , che indicano il numero di pacchi inviati lungo il collegamento (i, j) ∈ A. Introduciamo inoltre le variabili binarie 1, se i è interessato dal transito i ∈ N \ {s, t}. yi = 0, altrimenti, Il problema può essere formulato come segue: X min cij xij (i,j)∈A X xji − X xji ≤ byi X (i,j)∈F S(i) (j,i)∈BS(i) xij = 0, i ∈ N, i 6= s, t −b, i = s b, i = t i ∈ N \ {s, t} (j,i)∈BS(i) X yi ≤ K i∈N \{s,t} 0 ≤ xij ≤ uij (i, j) ∈ A xij ∈ Z+ (i, j) ∈ A yi ∈ {0, 1} i ∈ N \ {s, t} Il primo blocco di vincoli garantisce l’invio di b pacchi da s a t. Il secondo blocco di vincoli garantisce che, se un nodo i ∈ N \ {s, t} è interessato dal transito dei pacchi (quindi nel nodo i entra un flusso positivo), allora la variabile yi sia forzata ad assumere il valore 1. Il terzo vincolo assicura che il numero di nodi interessati dal transito, salvo s e t, sia al più K. L’ultimo blocco di vincoli garantisce il rispetto delle capacità dei collegamenti. Infine, la funzione obiettivo, da minimizzare, rappresenta il costo complessivo di invio. 2o Appello – 27/6/2007 2 2) (i) Si consideri la sequenza {ȳ 1 , ȳ 2 , ..., ȳ ` } di soluzioni duali di base generate da una generica esecuzione dell’algoritmo del Simplesso Primale. Dimostrare che ȳ i 6= ȳ i+1 per ogni i = 1, ..., ` − 1. (ii) Si consideri la sequenza {x̄1 , x̄2 , ..., x̄` } di soluzioni primali di base generate da una generica esecuzione dell’algoritmo del Simplesso Duale. Dimostrare che x̄i 6= x̄i+1 per ogni i = 1, ..., ` − 1. (suggerimento: si considerino le definizioni di indice uscente e di indice entrante) SVOLGIMENTO (i) Consideriamo l’i-esima iterazione dell’algoritmo del Simplesso Primale: sia Bi la base corrente, h l’indice uscente, Bi+1 la nuova base individuata, ȳ i e ȳ i+1 le corrispondenti soluzioni duali di base. Per la definizione di indice uscente risulta ȳhi < 0; inoltre, h ∈ / Bi+1 e conseguentemente ȳhi+1 = 0. Poiché la componente h-esima è diversa, ȳ i e ȳ i+1 non possono essere uguali. (ii) Consideriamo l’i-esima iterazione dell’algoritmo del Simplesso Duale: sia Bi la base corrente, k l’indice entrante, Bi+1 la nuova base individuata, x̄i e x̄i+1 le corrispondenti soluzioni primali di base. Per la definizione di indice entrante risulta Ak x̄i > bk ; inoltre, k ∈ Bi+1 e conseguentemente Ak x̄i+1 = bk . Poiché Ak x̄i+1 6= Ak x̄i , x̄i e x̄i+1 non possono essere uguali. 2o Appello – 27/6/2007 3 3) Si applichi l’algoritmo di Kruskal per determinare un albero di copertura di costo minimo sul grafo in figura. Per ogni iterazione si indichino: l’arco in esame e quale fra le operazioni di inserzione e cancellazione viene applicata; nel primo caso mostrare un taglio, nel secondo fornire il ciclo individuato dall’algoritmo. Al termine fornire l’albero di copertura di costo minimo T = (N, AT ). 1 1 5 4 2 3 2 3 6 4 7 6 4 7 7 1 5 6 4 8 2 SVOLGIMENTO Si consideri il seguente ordinamento degli archi per costo non decrescente: (1, 2), (5, 6), (3, 4), (7, 8), (2, 4), (1, 4), (5, 7), (6, 8), (1, 3), (4, 5), (5, 8), (2, 6), (3, 7). arco operazione taglio it.1) (1, 2) inserzione ({1}, {2, 3, 4, 5, 6, 7, 8}) it.2) (5, 6) inserzione ({5}, {1, 2, 3, 4, 6, 7, 8}) it.3) (3, 4) inserzione ({3}, {1, 2, 4, 5, 6, 7, 8}) it.4) (7, 8) inserzione ({7}, {1, 2, 3, 4, 5, 6, 8}) it.5) (2, 4) inserzione ({1, 2}, {3, 4, 5, 6, 7, 8}) it.6) (1, 4) cancellazione it.7) (5, 7) it.8) (6, 8) cancellazione (6, 8, 7, 5) it.9) (1, 3) cancellazione (1, 3, 4, 2) it.10) (4, 5) inserzione inserzione ciclo (1, 4, 2) ({7, 8}, {1, 2, 3, 4, 5, 6}) ({1, 2, 3, 4}, {5, 6, 7, 8}) L’algoritmo termina all’iterazione 10 con l’albero T in figura, in quanto |AT | = n − 1 = 7. 1 3 2 4 7 5 6 8 2o Appello – 27/6/2007 4 3 ,5 0, 5 3,4 3 1 4 2, 6 7 2,2 0,5 5, 5 3,5 0 ,3 4) Si individui un flusso massimo dal nodo 1 al nodo 7 sulla rete in figura, utilizzando l’algoritmo di Edmonds e Karp a partire dal flusso riportato in figura di valore v = 5. Ad ogni iterazione si fornisca l’albero della visita, il cammino aumentante individuato con la relativa capacità, ed il flusso ottenuto con il relativo valore. Al termine, si indichi il taglio di capacità minima restituito dall’algoritmo, specificando l’insieme dei nodi Ns , l’insieme dei nodi Nt e la capacità del taglio. x ij , u ij 2 3, i j 4 0, 6 2 4 SVOLGIMENTO Per ogni iterazione viene riportato l’albero della visita, in cui viene evidenziato il cammino aumentante P individuato; viene inoltre indicato il flusso ottenuto in seguito all’invio di flusso lungo P , trascurando per semplicità gli archi a flusso nullo. Iterazione 1: 2 2 1 5 1 3 7 5 3 1 6 4 3 4 7 2 6 3 5 6 4 2 2 4 θ(P, x) = 1, v = 6 Iterazione 2: 2 1 5 1 3 7 6 2 1 5 4 5 3 3 1 4 2 2 6 7 6 2 θ(P, x) = 2, v = 8 Iterazione 3: 2 5 1 3 7 6 4 Non esistendo cammini aumentanti, il flusso corrente è massimo ed il taglio Ns = {1, 2, 3, 4, 5}, Nt = {6, 7} è di capacità minima: u(Ns , Nt ) = 2 + 6 = 8 = v. 2o Appello – 27/6/2007 5 5) Si consideri il seguente problema di PL: min 2y1 y1 y1 y1 y1 , + 5y2 + 3y3 + y4 + 2y2 + y3 + y4 − y2 + y4 + y2 − y3 y2 , y3 , y4 = 2 = 1 = −1 ≥ 0 Utilizzando il Teorema degli scarti complementari, si verifichi se la soluzione y = (0, 0, 1, 1) è ottima per il problema. Giustificare la risposta. SVOLGIMENTO Considerando la coppia asimmetrica di problemi duali (P ) min yb (D) yA = c y≥0 max cx Ax ≤ b possiamo enunciare il Teorema degli scarti complementari come segue: Teorema. Date due soluzioni x̄ e ȳ ammissibili rispettivamente per (P ) e (D), esse sono ottime se e solo se verificano la condizione degli scarti complementari ȳ(b − Ax̄) = 0. Per l’ammissibilità delle soluzioni x̄ e ȳ, la condizione degli scarti complementari è equivalente al sistema di equazioni ȳi (bi − Ai x̄) = 0, i = 1, ..., m. Per il problema in esame si ha: (P ) max 2x1 x1 2x1 x1 x1 + x2 + x2 − x2 + x2 − + + − x3 x3 x3 x3 ≤ ≤ ≤ ≤ 2 5 3 1 (D) min 2y1 y1 y1 y1 y1 , + 5y2 + 3y3 + y4 + 2y2 + y3 + y4 − y2 + y4 + y2 − y3 y2 , y3 , y4 = 2 = 1 = −1 ≥ 0 È immediato verificare che la soluzione ȳ = (0, 0, 1, 1) è ammissibile per (D). L’insieme degli indici delle variabili duali positive in ȳ è J(ȳ) = {j ∈ {1, . . . , m} : ȳj > 0} = {3, 4}. Di conseguenza, una soluzione primale x̄ che formi con ȳ una coppia di soluzioni complementari deve soddisfare la condizione bi − Ai x̄ = 0 per i = 3, 4, ovvero il terzo ed il quarto vincolo devono essere attivi. Pertanto, x̄ deve risolvere il sistema x1 − x3 = 3 x1 + x 2 = 1 Posto x1 = α, tale sistema ammette infinite soluzioni della forma x(α) = (α, 1 − α, α − 3). Tali soluzioni sono ammissibili per (P ) quando α ≤ 9/4. Infatti, il primo vincolo è rispettato per α ≤ 4, mentre il secondo vincolo è soddisfatto per α ≤ 9/4. Poichè per ciascuna x(α) soddisfa la condizione degli scarti complementari con ȳ ed è ammissibile per α ≤ 9/4, ȳ è una soluzione ottima per (D). Si osservi che, essendo X = {(α, 1−α, α−3) : α ≤ 9/4} l’insieme di tutte le soluzioni primali ammissibili complementari a ȳ, soluzione ottima di (D), X costituisce l’insieme delle soluzioni ottime di (P ). 2o Appello – 27/6/2007 6 6) Si consideri il seguente problema di P.L.: max x1 − −x1 x1 x1 x2 x2 + 2x2 + 2x2 + x2 ≤ ≤ ≤ ≤ ≤ 0 2 1 7 5 Si applichi l’algoritmo del Simplesso Primale, per via algebrica, a partire dalla base B = {2, 3}. Per ogni iterazione si indichino: la base, la matrice di base e la sua inversa, la coppia di soluzioni di base, l’indice uscente, la direzione di crescita, il passo di spostamento e l’indice entrante, giustificando le risposte. SVOLGIMENTO yB = cA−1 B ξ = −A−1 B uB(h) 0 1 2 −1 2 −1 2 3 −1 , A−1 = , x = A b = = , B B B −1 2 1 0 1 0 1 2 2 −1 = 2 −1 , yN = 0, y = 0 2 −1 0 0 , = 1 0 1 0 it.1) B = {2, 3}, AB = h = min{i ∈ B : yi < 0} = min{3} = 3, B(h) = 2, 0 −1 0 1 1 2 = , AN ξ = 1 = 1 , J = {i ∈ N : Ai ξ > 0} = {4, 5}, 0 0 1 1 1 λi = (bi − Ai x)/Ai ξ, λ4 = 0, λ5 = 0, λ̄ = min{λi : i ∈ J} = min{0, 0} = 0, k = min{i ∈ J : λi = λ̄} = min{4, 5} = 4 [regola anticiclo di Bland] [cambio di base degenere] it.2) B = {2, 4}, AB = yB = 1 0 −2 1 1 0 0 1 1 2 −2 1 A−1 B , = −2 1 1 0 , x= −2 1 1 0 2 7 = 3 2 , , yN = 0, y = 0 −2 0 1 0 , h = 2, B(h) = 1, 1 0 −1 2 2 2 = −4 , ξ= , AN ξ = −1 −1 −1 1 1 1 = J = {1, 5}, λ1 = 2, λ5 = 0, λ̄ = min{2, 0} = 0, k = 5 [cambio di base degenere] it.3) B = {4, 5}, AB = yB = 1 0 ξ= 1 −1 −1 2 1 −1 1 2 1 1 = , A−1 B = −1 2 −1 2 1 −1 , yN = 0, y = , x= −1 2 1 −1 0 0 0 −1 2 7 5 = 3 2 , , h = 4, B(h) = 1, 1 0 −1 1 1 = −1 , J = {1}, λ̄ = λ1 = 2 k = 1 , AN ξ = 0 −1 −3 −1 2 0 −1 1 1 1 1 0 5 , A−1 = , x = = , B 1 1 −1 0 −1 0 5 0 1 1 yB = 1 0 = 1 1 , yN = 0, y = 1 0 0 0 1 , STOP. −1 0 it.4) B = {1, 5}, AB = x = (5, 0) è una soluzione ottima per il primale, mentre y = (1, 0, 0, 0, 1) è una soluzione ottima per il duale.