140 likes | 202 Views
11, 8. 2. 3. 20, 5. 13, 6. 4, 3. 5, 2. 1. 6. 3, 3. 10, 4. 7, 4. 4. 5. Fonte, Sumidouro, Capacidade e Fluxo. Fluxo ( f ). Capacidade ( c ). Fonte ( s ). Sumidouro ( t ). exemplos:. c 52 = 4. f 52 = 3. c 36 = 13. f 36 = 6. f ki (entra). f ij (sai). i. c ij , f ij.
E N D
11, 8 2 3 20, 5 13, 6 4, 3 5, 2 1 6 3, 3 10, 4 7, 4 4 5 Fonte, Sumidouro, Capacidade e Fluxo Fluxo ( f ) Capacidade ( c ) Fonte ( s ) Sumidouro ( t ) exemplos: c52 = 4 f52 = 3 c36 = 13 f36 = 6
fki (entra) fij (sai) i cij, fij j i (conservação) Condições nos arcos: nos vértices: soma dos que saem soma dos que entram 0 < cij (capacidade não negativa) 0 fij cij (fluxo não supera capacidade)
(A, B) A = {2, 3} B = {1, 4, 5, 6} 11, 8 2 3 este sim 20, 5 13, 6 x este não 4, 3 5, 2 1 6 3, 3 10, 4 7, 4 4 5 (C, D) C = {4} D = {1, 2, 3, 5, 6} Cortes não contém a fonte e nem o sumidouro corte (A, B) capacidade do corte (A, B) não contém a fonte e nem o sumidouro c(A, B) = 5 + 13 = 18 f(A, B) = - 5 - 3 + 2 + 6 = 0 fluxo do corte (A, B) + + x - x c(C, D) = 7 f(C, D) = - 4 + 4 = 0 x x -
11, 8 2 3 20, 5 13, 6 (G, H) G = {5, 6} H = {1, 2, 3, 4} 4, 3 5, 2 1 6 3, 3 10, 4 7, 4 (E, F) E = {1, 4} F = {2, 3, 5, 6} 4 5 Cortes (continuação) contém a fonte contém o sumidouro c(E, F) = 20 + 7 = 27 f(E, F) = 5 + 4 = 9 c(G, H) = 4 f(G, H) = 3 - 2 - 6 - 4 = -9
11, 8 2 3 20, 5 13, 6 este sim 4, 3 5, 2 1 6 x este não 3, 3 10, 4 7, 4 (I, J) I = {1, 6} J = {2, 3, 4, 5} 4 5 Cortes (continuação) contém a fonte e o sumidouro x x x x c(I, J) = 20 + 10 = 30 f(I, J) = 5 + 4 - 6 - 3 = 0
11, 8 2 3 20, 5 13, 6 S1 4, 3 5, 2 1 6 S3 S2 3, 3 10, 4 7, 4 S4 4 5 contém o sumidouro Cortes do Tipo (S, T) contém a fonte c(S2, T2) = 11 + 10 = 21 f (S2, T2) = 8 – 3 + 4 = 9 c(S1, T1) = 20 + 10 = 30 f (S1, T1) = 5 + 4 = 9 c(S4, T4) = 11 + 7 = 18 f (S4, T4) = 8 - 3 + 4 = 9 c(S3, T3) = 13 + 3 = 16 f (S3, T3) = 6 + 3 = 9
11, 8 2 3 20, 5 13, 6 sumidouro 4, 3 fonte 5, 2 1 6 3, 3 10, 4 7, 4 4 5 Cortes (S, T) e não (S, T)
11, 8 2 3 20, 5 13, 6 4, 3 5, 2 1 6 3, 3 10, 4 7, 4 4 5 fluxo máximo = 8 + 6 = 14? Caminhos de Aumento de Fluxo 23 = 11 – 8 = 3 11, 11 12 = 20 – 5 = 15 36 = 13 – 6 = 7 20, 8 13, 11 13, 9 36 = 13 – 9 = 4 5, 0 35 = 2 10, 6 7, 6 No contra-fluxo considere apenas o fluxo 14 = 10 – 4 = 6 45 = 7 – 4 = 3
Alguns Resultados para o Algoritmo de Ford-Fulkerson #1: qualquer fluxo em uma rede é sempre um fluxo de um corte (S, T); #2: um fluxo em uma rede não excede a capacidade de qualquer corte (S, T); #3: um fluxo da fonte ao sumidouro em uma rede é máximo se, e somente se, não existe um caminho de aumento de fluxo; #4: o fluxo máximo em uma rede é igual à capacidade mínima dentre os cortes (S, T).
2 3 1 6 fluxo máximo = 14 4 5 Algoritmo de Ford-Fulkerson Δ=15 A=1 S=+ Δ=– A=0 S=+ Δ=10 A=1 S=+ Δ=– A=0 S=+ Δ=– A=0 S=+ Δ=12 A=1 S=+ Δ=– A=0 S=+ Δ=3 A=2 S=+ Δ=– A=0 S=+ Δ=0 A=2 S=+ Δ=2 A=5 S=– Δ=–A=0 S=+ Δ=0A=2 S=+ 11 11, 8 11, 11 capacidade atingiu o sumidouro atingiu o sumidouro atingiu o sumidouro 20, 10 20, 5 20, 8 20 13, 6 13, 9 13, 11 13 fluxo inicial Δ= A=0 S=+ 4, 1 4 4, 3 5, 0 5 5, 2 10, 4 10 Δ=0A=5 S=+ Δ=– A=0 S=+ Δ=2A=3 S=+ Δ=–A=0 S=+ Δ=3 A=3 S=+ Δ=–A=0 S=+ Δ=0A=5 S=+ 3 3, 3 o fluxo não pode ser mais aumentado 7 7, 4 Δ=6 A=1 S=+ Δ=– A=0 S=+ Δ=6 A=1 S=+ Δ=– A=0 S=+ Δ=6 A=1 S=+ Δ=– A=0 S=+ Δ=– A=0 S=+ Δ=– A=0 S=+ Δ=– A=0 S=+ Δ=1 A=2 S=– Δ=3 A=4 S=+ Δ=3 A=2 S=– Δ=3 A=2 S=–
5 2 4 4 2 7 2 1 3 6 3 5 Exercícios #1: Encontre o fluxo máximo para a rede seguinte. fluxo máximo = 7
10 4 2 4 6 3 5 2 5 10 1 9 4 2 3 3 5 7 Exercícios #2: Encontre o fluxo máximo para a rede seguinte. fluxo máximo = compare com outras respostas da classe
1 Expanda o vértice com maior ‘Δ’. início Estabeleça os fluxos iniciais (zeros, por exemplo). Atingiu o sumidouro? não 2 Marque a fonte Δ= A=0 S=+, . sim O ‘Δ’ do sumidouro é nulo? não Retire as (menos da fonte), volte uti- lizando os ‘As’ e re- calcule os fluxos. 2 Marque os outros vértices Δ=- A=0 S=+. sim Um corte que contenha a fonte fornecerá o fluxo máximo. fim 1 Ford-Fulkerson