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