Ricerca Operativa: Prima parte – Prova del 2 Dicembre 2011

Transcript

Ricerca Operativa: Prima parte – Prova del 2 Dicembre 2011
Ricerca Operativa: Prima parte – Prova del 2 Dicembre 2011
Cognome, Nome, email:
+/- ≡ penalità per risposte errate. NGR ≡ Non è richiesto di giustificare le risposte.
Esercizio 1 Individua un flusso s − t di valore massimo per la rete in Figura 1, partendo dal flusso iniziale dato, e
certificane l’ottimalità. (Per rispondere è sufficiente riportare: 1) i diversi cammini aumentanti utilizzati, con le
variazioni del valore del flusso su ciascun arco; 2) il certificato di ottimalità.)
Esercizio 1b Il valore del massimo flusso cambia se la capacità dell’arco (d, f ) è uguale a 4? (Per rispondere al
quesito, riportare un nuovo cammino aumentante o un certificato di ottimalità.)
Soluzione Il flusso iniziale è pari a 9. Troviamo i seguenti cammini aumentanti:
1. s − c − h − t (sc + 1, ch + 1, ht + 1);
2. s − a − f − t (sa + 2, a f + 2, f t − 2);
3. s − b − d − f − t (sb + 1, bd + 1, d f + 1, f t − 1);
4. s − c − e − h − g − t (sc + 4, ce − 4, eh − 4, hg − 4, gt + 4).
Il flusso massimo è uguale a 17 e il certificato di ottimalità è dato dal taglio S = {s, a, b, c, d}, S̄ = V \ S.
Se la capacità dell’arco (d, f ) è uguale a 4, il flusso massimo non cambia. Il certificato di ottimalità è dato dal
nuovo taglio S0 = {a, b, c, d, f }, S̄0 = V \ S0 .
Esercizio 2 Applicando l’algoritmo più opportuno, individua un albero di cammini minimi con radice in R per la
rete in Figura 2. (Illustra lo svolgimento attraverso la solita tabella, con tutti i suoi aggiornamenti.)
Soluzione Il problema dei cammini minimi èstato risolto con l’algoritmo di Dijkstra (motivazione: i costi degli
archi sono non negativi e sono presenti cicli).
A
B
C
D
E
F
G
1o
10,R
2o
8,C
2,R
/
4,C
6,R
3o
/
11,D
5,D
11,D
4o
6,F
5o
/
8,A
6o
7o
8o
/
9,B
/
10,F
/
/
Esercizio 3. Considerate un alfabeto con 2 sole lettere: B e N. Quante sono le diverse stringhe di 10 caratteri in
questo strano alfabeto? (NGR)
Esercizio 3b E quante sono le diverse stringhe di 10 caratteri se ogni stringa deve contenere almeno 3 B? (NGR)
Soluzione 3) 210
3b) 210 − ( 10
0 +
10
10
1 + 2 ) = 968
Esercizio 4. Sia K10 il grafo completo con 10 nodi e v1 , v2 , . . . v10 i suoi vertici. Sapendo che il numero di alberi
ricoprenti di K10 è pari a 108 , e sapendo che due alberi sono diversi se esiste almeno uno spigolo che appartiene ad
un albero e non all’altro, si determinino
a) il numero di alberi ricoprenti del grafo G0 ottenuto da K10 aggiungendo un nodo v11 e rendendolo adiacente
al solo nodo v1 . (ngr; +/-)
b) il numero di alberi ricoprenti di K10 che prendono l’arco v1 v2 . (Giustificare la risposta in massimo 3 righe).
(Questo punto è leggermente più complicato degli altri, svolgerlo alla fine se c’è tempo)
Soluzione a) Esiste una semplice biiezione tra il numero di alberi ricoprenti di G0 che prendono l’arco v1 v11 e gli
alberi ricoprenti di K10 . Perciò il valore cercato è 108 .
b) Per ragioni di simmetria, ogni arco di K10 appare nello stesso numero di
alberi ricoprenti di K10 . Poichè ogni
albero ricoprente di K10 ha 9 archi ed il numero totale di archi di K10 è 10
2 = 45, il numero di alberi ricoprenti di
K10 che prendono l’arco v1 v2 è
108 ·9
45
= 2 · 107 .
1
Esercizio 5. Considera il problema dell’albero ricoprente di peso minimo per il grafo in Figura 3. Per quali valori
del parametro t l’albero evidenziato è di peso minimo? (Per rispondere è sufficiente riportare l’intervallo dei valori
di t e il sistema di disequazioni che lo determina.)
Soluzione
3t − 1 ≥ t + 3
3t − 1 ≥ t − 5
t +3 ≥ t −5
t +3 ≥ t +3
t + 3 ≥ −t + 1
t + 3 ≥ 2t − 3
8 ≥ t −5
8 ≥ t +3
8 ≥ −t + 1
8 ≥ 2 − 2t
13 − t ≥ t + 3
13 − t ≥ −t + 1
(1)
13 − t ≥ 2 − 2t
13 − t ≥ 7 − t
(2)
8 ≥ −2t
(3)
(4)
2≤t ≤5
Esercizio 6 +/- Sia G(V, E) un grafo bipartito. Per ognuna delle seguenti affermazioni dire se essa è vera o falsa.
(NGR)
• |E| è sempre pari.
VERO FALSO
• Se G ammette un circuito euleriano, allora |E| è sempre pari.
VERO FALSO
• Se G ammette un circuito euleriano, allora |E| è a volte pari, a volte dispari.
VERO FALSO
Soluzione FALSO: un qualunque albero è bipartito, e naturalmente ci sono alberi con numero dispari di vertici.
VERO: se un grafo è bipartito, l’insieme degli spigoli può’ essere partizionato in cicli che, essendo il grafo bipartito,
hanno necessariamente lunghezza pari; segue che il numero di spigoli è pari. FALSO: vedi punto precedente.
Esercizio 7 +/- Sia G(V, E) un grafo tale da non avere tre vertici mutuamente adiacenti (cioè in G non ci sono
triangoli). Per ognuna delle seguenti affermazioni dire se essa è vera o falsa. (NGR)
• È sempre vero che |E| = O(|V |3 ).
VERO FALSO
|E| = O(|V |2 ).
VERO FALSO
• È sempre vero che
• È sempre vero che |E| = O(|V |).
VERO FALSO
Soluzione VERO: per un qalunque grafo G(V, E) vale |E| = O(|V |2 ), quindi in particolare |E| = O(|V |3 ). VERO:
vedi punto precedente. FALSO: per esempio un grafo bipartito completo G(V1 ∪V2 , E) con |V1 | = |V2 | ha |V1 | · |V2 |
spigoli, quindi |E| 6= O(|V |).
Esercizio 8 +/- Sia D(N, A) un grafo orientato e capacitato. Supponete che il valore del massimo flusso da un nodo
s a un nodo t (s,t ∈ N), sia pari a M. Supponete ora di raddoppiare la capacità di ogni spigolo di D. Per ognuna
delle seguenti affermazioni dire se essa è vera o falsa. (NGR)
• Il valore del massimo flusso è sempre almeno 2M.
VERO FALSO
• Il valore del massimo flusso è sempre uguale a 2M.
VERO FALSO
Soluzione VERO: vedi punto successivo. VERO: la capacità di ogni taglio raddoppia. Quindi il valore del massimo
flusso è esattamente 2M.
Esercizio 9 +/- Sia D(N, A) un grafo orientato e capacitato. Supponete che il valore del massimo flusso da un nodo
s a un nodo t (s,t ∈ N), sia pari a M (M > 0). Sia inoltre C ⊆ A l’insieme di spigoli di un taglio di capacità minima.
Supponete ora di aumentare la capacità di ogni spigolo di D. Per ognuna delle seguenti affermazioni dire se essa è
vera o falsa. (NGR)
• Il valore del massimo flusso è sempre almeno M+1.
VERO FALSO
• Il valore del massimo flusso è sempre uguale a M+1.
VERO FALSO
• Il valore del massimo flusso è sempre uguale a M+|C|.
VERO FALSO
Soluzione VERO: ogni taglio ha almeno un arco diretto (altrimenti avremmo M = 0), quindi la capacità di ogni
taglio aumenta di almeno 1. Segue che anche il valore del massimo flusso aumenta almeno di 1. FALSO: Se ogni
taglio minimo ha almeno due archi, il valore del massimo flusso aumenta di almeno 2. FALSO: Se esiste un altro
taglo minimo che ha un numero di archi minore di |C|, allora l’affermazione è falsa.
2