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.