Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21...
Transcript of Algoritmos y Estructura de Datos III - dc.uba.ar · PDF fileProblema 11.2111.21 (a)11.21...
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
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
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
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
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
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
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
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
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
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
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
Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN
Solución
Práctica 11 - Ejercicios 11.21 / 11.22
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
Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN
Práctica 11 - Ejercicios 11.21 / 11.22
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
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
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
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
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
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
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
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
Problema 11.21 11.21 (a) 11.21 (b) Problema 11.22 FIN
Fin
DUDAS
Práctica 11 - Ejercicios 11.21 / 11.22