algoritmos y estructura de datos iii - dc.uba.ar · pdf fileproblema 11.2111.21 (a)11.21...

23
Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos III Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires 26 de Junio de 2013 Práctica 11 - Ejercicios 11.21 / 11.22

Upload: leminh

Post on 06-Feb-2018

220 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Práctica 11 - Ejercicios 11.21 / 11.22Algoritmos y Estructura de Datos III

Facultad de Ciencias Exactas y Naturales,Universidad de Buenos Aires

26 de Junio de 2013

Práctica 11 - Ejercicios 11.21 / 11.22

Page 2: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Enunciado

Problema 11.21Sea G un grafo conexo no orientado.(a) Mostrar que existen k caminos que no tienen aristas en

común entre s y t si y sólo si cualquier corte que separe sde t tiene al menos k arcos.

(b) Mostrar que existen k caminos sin vértices en común si ysólo si cualquier conjunto de vértices que desconecta s det tiene al menos k vértices.

Práctica 11 - Ejercicios 11.21 / 11.22

Page 3: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Repaso

1 Sea S ⊂ V un conjunto de vértices tal que: s ∈ S, t ∈ T , ysea T = V \ S:Los arcos del corte (S,T ) son las aristas que tienen unvértice en S y otro T

2 El problema de flujo se define sobre una red N = (V ,E)con s fuente, t sumidero y c : E → R+ capacidad de lasaristas

3 El flujo es una función f : E → R+ que nunca sobrepasa lacapacidad y cumple ley de conservación (todo lo queentra, sale, excepto para s,t)

4 El teorema MaximoFlujo-MinimoCorte nos asegura que elmáximo flujo de una red es el corte de capacidad mínima

Práctica 11 - Ejercicios 11.21 / 11.22

Page 4: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Solución

11.21 (a)Sea G un grafo conexo no orientado. Mostrar que existen kcaminos que no tienen aristas en común entre s y t si y sólo sicualquier corte que separe s de t tiene al menos k arcos.

Primero mostramos que el caso G no orientado puede serreducido a un caso con G′ orientadoResolvemos en G′ mostrando que esa solución nos sirvepara G

Práctica 11 - Ejercicios 11.21 / 11.22

Page 5: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Solución

Hacemos una transformación directa:V (G′) = V (G)

Si (u, v) ∈ E(G)⇒ (u, v), (v ,u) ∈ E(G′)

s

1

2

63

t5

4

s

1

2

63

t5

4

Práctica 11 - Ejercicios 11.21 / 11.22

Page 6: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Solución

Los caminos (disjuntos en aristas) en G pueden ser mapeadosa G′

s

1

2

63

t5

4

s

1

2

63

t5

4

Práctica 11 - Ejercicios 11.21 / 11.22

Page 7: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Solución

1 Queremos mapear conjuntos de caminos (disjuntos enaristas) de G′ a G:

2 Qué ocurre con dos caminos (disjuntos en aristas) queusan (u, v) y (v ,u) en G′?

Práctica 11 - Ejercicios 11.21 / 11.22

Page 8: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Solución

Observamos que cada par de caminos que usen ambas aristasse pueden reacomodar de manera sencilla

s

1

2

63

t5

4(1)

s

1

2

63

t5

4

ELIMINAR

(2)

s

1

2

63

t5

4

ELIMINAR

(3)

Práctica 11 - Ejercicios 11.21 / 11.22

Page 9: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Solución

11.21 (a)Mostrar que existen k caminos que no tienen aristas en comúnentre s y t si y sólo si cualquier corte que separe s de t tiene almenos k arcos.

1 Equivalencia entre cortes2 Cualquier corte en G nos separa el grafo en dos conjuntos

S y T3 Si cortamos las aristas mapeadas de G a G′ tales que

orientan de S a T , tendremos un corte del mismo tamaño

s

1

2

63

t5

4S

s

1

2

63

t5

4S

Práctica 11 - Ejercicios 11.21 / 11.22

Page 10: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Solución

LemaEl flujo máximo en un grafo dirigido H con capacidad 1 entodas sus aristas es igual a la máxima cantidad de caminosdisjuntos en aristas

Sea f un flujo máximo en H, |f | su valor y k la cantidad decaminos disjuntos en aristas:k ≤ |f |:

1 Sean k caminos (disjuntos en aristas): P1, . . . ,Pk2 Asignar f (e) = 1 si e ∈ Pi , f (e) = 0 sino3 Es facil verificar que esto es un flujo válido de valor k

Práctica 11 - Ejercicios 11.21 / 11.22

Page 11: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Solución

Sea f un flujo en H, |f | su valor, y k la máxima cantidad decaminos disjuntos en aristas:k ≥ |f |: Inducción en cantidad de aristas tal que f (e) = 1:

1 Si |f | ≤ 1 trivial, sino atravesar H desde s usando aristastal que f (e) = 1 (Por conservación podemos hacerlo).

2 Si encontramos camino C =< s, . . . , t >: Ponemosf (e) = 0∀e ∈ C. Ahora el flujo vale |f | − 1 y tenemos menosaristas con flujo 1, aplicamos HI: k ≥ |f | − 1 caminosdisjuntos en aristas. Agregando el nuevo camino con flujo 1en cada arista, tenemos |f | caminos disjuntos en aristas

Práctica 11 - Ejercicios 11.21 / 11.22

Page 12: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Solución

Práctica 11 - Ejercicios 11.21 / 11.22

Page 13: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Solución

Sea f la función de flujo, |f | el máximo flujo de H, y k lacantidad de caminos disjuntos en aristas:k ≥ |f |: Inducción en cantidad de aristas tal que f (e) = 1:

1 Si |f | ≤ 1 trivial, sino atravesar H desde s usando aristastal que f (e) = 1 (Por conservación podemos hacerlo).

2 Si encontramos camino C =< s, . . . , t >: Ponemosf (e) = 0∀e ∈ C. Ahora el flujo vale |f | − 1 y tenemos menosaristas con flujo 1, aplicamos HI: tenemos |f | − 1 caminosdisjuntos en aristas. Agregando el nuevo camino con flujo 1en cada arista, tenemos |f | caminos disjuntos en aristas

3 Si encontramos un ciclo C′ en el recorrido: Ponemosf (e) = 0∀e ∈ C′. El valor del flujo |f | no cambia.

4 Hay menos aristas con flujo 1, podemos aplicar HI:Tenemos |f | caminos disjuntos en aristas

Práctica 11 - Ejercicios 11.21 / 11.22

Page 14: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Práctica 11 - Ejercicios 11.21 / 11.22

Page 15: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

11.21 (a)Mostrar que existen k caminos que no tienen aristas en comúnentre s y t si y sólo si cualquier corte que separe s de t tiene almenos k arcos.

1 ⇒) Si existen k caminos sin aristas en común entoncestenemos un flujo de capacidad k

2 Si tenemos un flujo de capacidad k, entonces cualquiercorte tiene al menos capacidad k.

1 ⇐)Si cualquier corte que separa s de t tiene al menos karcos, en particular el corte mínimo tiene al menos k arcos

2 Si el corte mínimo tiene k arcos, luego el flujo máximotiene valor k (grafo de capacidad unitaria)

3 Si tenemos un flujo de valor k, luego tenemos k caminosdisjuntos en aristas

Práctica 11 - Ejercicios 11.21 / 11.22

Page 16: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Solución

11.21 (b)Mostrar que existen k caminos sin vértices en común si y sólosi cualquier conjunto de vértices que desconecta s de t tiene almenos k vértices.

Usamos la misma idea que antes: Transformar a G′

dirigido y resolver ahi:V (G′) = V (G)Si (u, v) ∈ E(G)⇒ (u, v), (v ,u) ∈ E(G′)

Caminos disjuntos en vértices en G y G′ son trivialmenteiguales

Práctica 11 - Ejercicios 11.21 / 11.22

Page 17: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Solución

Vamos a reusar el resultado anteriorConstruimos un nuevo grafo H a partir de G′, cada vértice(excepto s, t) se convierte en una arista:

1 ∀v ∈ V (G′) : vin, vout ∈ V (H) ∧ (vin, vout) ∈ E(H)2 ∀(u, v) ∈ E(G′) : (uout , vin) ∈ E(H)

Práctica 11 - Ejercicios 11.21 / 11.22

Page 18: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Solución

s

1

2

43

t

s

43

t

1in 1out

2in 2out

Práctica 11 - Ejercicios 11.21 / 11.22

Page 19: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Solución

Remover (vin, vout) ∈ H tiene el mismo efecto que removerv ∈ G′

El camino < u, v ,w >∈ G′ esta representado por< uout , vin, vout ,win >∈ H.Asignamos en H capacidad 1 a todas las aristasVimos anteriormente que si tenemos flujo |f|=k tenemos kcaminos disjuntos en aristas en H, y hay un conjunto de karistas que separan s y t (corte).Un camino en H debe tener la forma:< s, v0in, v0out , v1in, v1out , . . . , vlin, vlout , t >, quecorresponde al siguiente camino en G′:< s, v0, v1, . . . , vl , t >Como cada camino es disjunto en aristas, cada arista esutilizada una vez en H ⇒ en el camino correspondiente aG′ cada vértice corresponde a un sólo camino. Enconsecuencia hay k caminos disjuntos (en vértices) en G′

Práctica 11 - Ejercicios 11.21 / 11.22

Page 20: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Enunciado

Problema 11.22(a) Cómo se puede calcular el número de caminos disjuntos

en las aristas que se pueden trazar entre s y t, para s y tvértices dados?

(b) idem a. para caminos sin vértices en común

Práctica 11 - Ejercicios 11.21 / 11.22

Page 21: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Enunciado

Problema 11.22 (a)Ya vimos que el máximo flujo es igual a la máximacantidad de caminos disjuntos en aristas en el grafomodificado (dirigido con capacidad 1)Puedo aplicar Ford-FulkersonLa complejidad es O(|E | · f ), donde f es el máximo flujo. Elmáximo flujo puede acotarse por n.

Práctica 11 - Ejercicios 11.21 / 11.22

Page 22: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Enunciado

Problema 11.22 (b)Ya vimos que podemos transformar el problema decaminos disjuntos en vértices a caminos disjuntos enaristasPodemos hacer la transformación del grafo, y aplicar flujo.Las transformaciones se pueden hacer en O(|V |+ |E |) porlo que la complejidad depende del algoritmo de flujo.

Práctica 11 - Ejercicios 11.21 / 11.22

Page 23: Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21 (b)Problema 11.22FIN Práctica 11 - Ejercicios 11.21 / 11.22 Algoritmos y Estructura de Datos

Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN

Fin

DUDAS

Práctica 11 - Ejercicios 11.21 / 11.22