Buscar

PAA-14-fluxoEmRedes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Profa. Thaís Alves Burity Rocha 
GRAFOS 
Agenda 
 Fluxos em rede 
 Aplicação 
 Conceitos 
 
 Problema do Fluxo Máximo 
 
 Método clássico de Ford e Fulkerson 
 
 
Introdução 
 Grafos orientados podem ser usados para 
modelar o fluxo de materiais numa rede: 
 Líquidos fluindo por tubos 
 Peças por linhas de montagem 
 Corrente por redes elétricas 
 Informações por redes de comunicação 
 
 O material percorre uma rede desde uma origem, 
onde ele é produzido, até um sorvedor, onde ele é 
consumido 
Introdução 
 No grafo, cada aresta é um canal para o material 
 Cada canal tem uma capacidade estabelecida, ou seja, 
uma taxa máxima na qual o material pode fluir pelo canal 
 200 litros/h de líquido através de um tubo 
 
 Vértices são junções de canais 
 Material também flui pelos vértices 
 
 A origem produz o material numa taxa fixa e o 
sorvedor consome o material na mesma taxa (não há 
acúmulo de material nos vértices) 
Fluxo em rede 
 Um fluxo em rede G = (V, E) é um grafo orientado 
em que cada aresta (u, v) ∈ E tem uma capacidade 
c(u,v) 
 Se (u, v) ∉ E, assume-se que c(u,v) = 0 
 Dentre os vértices, há a origem e o sorvedor 
 ∀v ∈ V, assume-se que existe um caminho entre a 
origem e sorvedor que passa por v 
 Portanto, o grafo é conectado 
 |E| ≥ |V| - 1 
Fluxo em rede: Exemplo 
 Rotas de carregamento de discos de hóquei de 
Vancouver até Winnipeg 
 Apenas c(u,v) caixotes por dia podem ir da cidade u 
para a cidade v 
 
origem 
(fábrica que 
produz os discos) 
sorvedor 
(armazém que 
mantém estoque) 
capacidade 
Fluxo 
 Seja G = (V, E) um fluxo em rede com função de 
capacidade c, s a origem da rede e t um sorvedor 
 
 Um fluxo em G é uma função f:V×V → R que satisfaz as 
seguintes propriedades: 
 Restrição de capacidade: ∀u,v ∈ V, f(u,v) ≤ c(u,v) 
 O fluxo de um vértice até outro não deve exceder a capacidade 
dada 
 Simetria: ∀u,v ∈ V, f(u,v) = -f(v,u) 
 Conveniência de notação que afirma que o fluxo de um vértice u até 
um vértice v é o valor negativo do fluxo no sentido inverso 
 Conservação do fluxo: ∀u ∈ V – {s, t}, Σv∈V f(u, v) = 0 
 O fluxo total para fora de um vértice que não seja a origem e nem o 
sorvedor é 0 
 O saldo em t é igual ao saldo em s com sinal trocado 
Fluxo 
 A quantidade f(u,v) indica o fluxo da rede a partir do 
vértice u até o vértice v 
 Valor positivo, negativo ou nulo 
 
 O fluxo total da rede é |f| = Σv∈V f(s,v) 
 Ou seja, o fluxo total que sai da origem 
 
 Quando nem (u,v) nem (v,u) está em E, então não 
pode haver nenhum fluxo entre u e v 
 f(u,v) = f(v,u) = 0 
 Rotas de carregamento de discos de hóquei 
 Se o arco (u,v) tem f(u,v) > 0: arco é identificado por 
f(u,v)/c(u,v) 
 “/” é um delimitador 
 Se o arco (u,v) tem f(u,v) < 0: arco é identificado por 
c(u,v) 
 
 
 
 
 
 
 Fluxo total: |f| = 19 
Fluxo: Exemplo 1 
Fluxo: Exemplo 2 
 
 
 
 
 
 O fluxo de v1 para v2 é 8 
 Pela propriedade de simetria, o fluxo de v2 para 
v1 é -8 
 No entanto, apenas o fluxo positivo é mostrado 
Fluxo: Exemplo 3 
 
 
 
 
 
 
 O fluxo de v1 para v2 é 8-3 = 5 
 O fluxo de v2 para v1 é 3-8 = -5 
Equivalente 
Redes com várias origens e vários 
sorvedores 
 No exemplo de rotas de carregamento de discos 
de hóquei 
m fábricas {s1, s2, …, sm} 
 n armazéns {t1, t2, …, tn} 
Redes com várias origens e vários 
sorvedores 
 É possível representar 
como uma rede comum, 
com apenas uma origem 
e um sorvedor 
 Adicionar uma super-
origem s’ 
 Fornece tanto fluxo 
quanto desejado para 
as várias origens 
 Adicionar um super-
sorverdor t’ 
 Consome tanto fluxo 
quanto necessário para 
os vários sorvedores 
Problema do Fluxo Máximo 
 Temos um fluxo em rede G com origem s e sorvedor 
t e desejamos encontrar um fluxo de valor máximo 
 Exemplo: Qual o número máximo de carregamentos 
por dia que podem ser enviados de Vancouver para 
Winnipeg? 
Método de Ford-Fulkerson 
 Resolve o problema do fluxo máximo 
 
 É considerado método e não simplesmente um algoritmo 
 
 A idéia básica é aumentar o fluxo iterativamente em uma 
rede até que ele não possa mais ser aumentado 
 
 Para entender, é necessário conhecer os seguintes conceitos 
 Rede residual 
 Caminho aumentante 
 Corte de fluxo em redes 
 Dado um fluxo em rede G = (V, E), a função 
capacidade c, um fluxo f em G, uma fonte s e um 
sorvedor t 
 
 De maneira informal, a rede residual consiste em 
arcos do fluxo em rede que podem admitir mais 
fluxo 
Rede residual: Definição informal 
Rede residual: Definição formal 
 Capacidade residual de (u,v): Quantidade de fluxo 
adicional que podemos empurrar desde u até v antes 
de exceder a capacidade c(u,v) 
 cf(u,v) = c(u,v) – f(u,v) 
 Exemplo: Se c(u,v) = 16 e f(u,v) = 11, podemos aumentar 
f(u,v) em cf (u,v) = 5 unidades antes de excedermos a 
restrição de capacidade sobre o arco (u,v) 
 
 A rede residual induzida por f é Gf = (V, Ef), em que 
Ef = {(u,v) ∈ V×V : cf(u,v) >0} 
Rede residual: Exemplo 
s 
v1 
v2 v4 
t 
v3 
12/12 
11/14 
1
0
 
1
/4
 
7
/7
 
Fluxo de rede G 
Rede residual Gf s 
v1 
v2 v4 
t 
v3 
12 
3 
1
1
 
3
 
7
 
11 
Caminho aumentante 
 Seja G = (V, E) um fluxo em rede e f um fluxo, um 
caminho aumentante p é um caminho de s para t na 
rede residual Gf 
 
 A capacidade residual de um caminho aumentante 
é a quantidade máxima pela qual podemos 
aumentar o fluxo em cada aresta do caminho 
 cf(p) = min{cf(u,v) : (u,v) está em p} 
Caminho aumentante: Exemplo 
Caminho aumentante 
em Gf 
Rede residual Gf 
cf(p) = cf (v2,v3) = 4 
s 
v1 
v2 v4 
t 
v3 
12 
3 
1
1
 
3
 
7
 
11 
s 
v1 
v2 v4 
t 
v3 
12 
3 
1
1
 
3
 
7
 
11 
Podemos transportar até 4 
unidades de fluxo adicional sem 
violar restrição de capacidade 
alguma 
Algoritmo básico de Ford-Fulkerson 
 FORD-FULKERSON(G, s, t) 
1 for cada aresta (u,v) ← E[G] 
2 do f[u, v] ← 0 
3 f[v, u] ← 0 
4 while existir um caminho p de s até t na rede residual Gf 
5 do cf(p) ← min{cf(u,v): (u,v) está em p} 
6 for cada aresta (u,v) em p 
7 do f[u, v] ← f[u, v] + cf(p) 
8 f[v, u] ← - f[u, v] 
Inicializa o fluxo f como 0 
Encontra repetidamente um caminho aumentante p em Gf e amplia o 
fluxo f ao longo de p pela capacidade residual cf(p). Quando não existe 
nenhum caminho aumentante, o fluxo f é um fluxo máximo. 
Algoritmo básico de Ford-Fulkerson: 
Exemplo 
Rede residual Gf s 
v1 
v2 v4 
t 
v3 
12 
14 
1
0
 
4
 
7
 
s 
v1 
v2 v4 
t 
v3 
12/12 
11/14 
1
0
 
1
/4
 
7
/7
 
Fluxo de rede G 
(Linhas 1-3: fluxos valem 0; 
logo, cada arco é representado 
apenas por sua capacidade) 
Algoritmo básico de Ford-Fulkerson: 
Exemplo 
(a) 
Rede residual Gf inicial com 
um caminho aumentante 
sombreado p 
 
cf(p) = min {16, 12, 9, 14, 4} = 4 
Fluxo resultante da 
adição de cf(p) ao fluxo 
de cada arco em p 
Algoritmo básico de Ford-Fulkerson: 
Exemplo 
(b) 
Rede residual Gf resultante de 
(a-2) com um caminho 
aumentante sombreado p 
 
cf(p) = min {12, 10, 10, 7, 20} = 7 
 
Fluxo resultante da 
adição de cf(p) ao fluxo 
de cada arco em p 
(vide figura a-2)Algoritmo básico de Ford-Fulkerson: 
Exemplo 
(c) 
Rede residual Gf resultante de 
(b-2) com um caminho 
aumentante sombreado p 
 
cf(p) = min {13, 11, 8, 13} = 8 
 
Fluxo resultante da 
adição de cf(p) ao fluxo 
de cada arco em p 
(vide figura b-2) 
Algoritmo básico de Ford-Fulkerson: 
Exemplo 
 Atenção! 
 
 
 
 
 
 f(v2, v1) = 1- 8 = -7 
 Para aumentar esse f(v1, v2) em 8 unidades 
 f(v2,v1)= 1 – 0 = 1 
 De fato, fdepois – fantes = 1 – (-7) = 1 + 7 = 8 
v1 
v2 
7
/1
0
 
4
 
v1 
v2 
8
/1
0
 
1
/4
 
v1 
v2 
1
0
 
1
/4
 
Algoritmo básico de Ford-Fulkerson: 
Exemplo 
(d) 
Rede residual Gf resultante de 
(c-2) com um caminho 
aumentante sombreado p 
 
cf(p) = min {5, 4, 5} = 4 
 
Fluxo resultante da 
adição de cf(p) ao fluxo 
de cada arco em p 
(vide figura c-2) 
Algoritmo básico de Ford-Fulkerson: 
Exemplo 
 Resultado final é a rede residual referente ao fluxo 
obtido em (d) 
(e)

Outros materiais