![Page 1: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/1.jpg)
Ciência da Computação
GRAFOS
Aula 10 Fluxo em Redes
Max Pereira
![Page 2: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/2.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
É a transferência de algum tipo de recurso quantificável e sujeito a restriçõesde equilíbrio, de um local (origem) para outro (destino) através de uma rede.
Exemplos:
Líquido fluindo por uma rede de tubos, como a rede de abastecimento de água ou a rede de esgoto;
Peças se deslocando por linhas de montagem; Voz, imagem ou dados em redes de comunicação; Sistemas elétricos de transmissão.
![Page 3: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/3.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
AplicaçõesConsidere a seguinte situação modelada por um grafo: Cada aresta representa uma rua; O valor de cada aresta indica o maior fluxo possível ao longo da rua
(veículos/hora).
Qual o maior número possível de veículos que pode viajar do local u até o local vem uma hora?
![Page 4: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/4.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Imagine que temos uma transportadora, e queremos enviar algumasencomendas de uma cidade para outra. Você pode enviá-las usando vários vôoscom diferentes rotas. No entanto, cada vôo tem um limite de espaço quepodemos utilizar.
Uma questão importante é, qual o volume de encomendas que podemosenviar para o destino, usando os diferentes vôos disponíveis?
Para responder a essa questão vamos explorar um tópico chamado de fluxo emredes, através de modelos de grafos.
![Page 5: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/5.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Um grafo de fluxo em redes G = (V, E) é um grafo orientado (direcionado) com dois vértices especiais: o vértice origem, e o vértice destino (sorvedouro). Cadavértice representa uma cidade onde podemos enviar ou receber encomendas. Uma aresta (u, v) no grafo significa que há um vôo direto entre u e v.
Cada aresta tem uma capacidade associada, sempre finita, representando a quantidade de espaço disponível naquele vôo.
![Page 6: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/6.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Com esse grafo, nós queremos saber quantas encomendas podemos enviar de “s” para “t”. Como as encomendas “fluem” através do grafo, de s para t, chamamos esse problema de “o problema do fluxo máximo”. Uma solução intuitiva é encontrar caminhos entre s e t onde podemos enviar o máximo de fluxo possível, e depois atualizar o grafo para verificar o espaçoutilizado.
O primeiro número na aresta é o fluxo e o segundo a capacidade
![Page 7: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/7.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Nós escolhemos o caminho s u v t. As capacidades ao longo dessecaminho são 3, 3, 4 respectivamente. O que significa que temos um “gargalo” de capacidade igual a 3, ou seja, podemos enviar no máximo 3 unidades aolongo do fluxo.
![Page 8: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/8.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Agora precisamos atualizar o grafo. Uma escolha óbvia seria subtrair, da capacidade de cada aresta utilizada, o valor 3 – como usamos 3 espaçosdisponíveis em cada aresta, então a capacidade de cada aresta deve serdimuída por 3. Atualizando desse forma, há um único outro caminho partindode s para t (s v t). A aresta (s,v) tem capacidade 2 e a aresta (v,t) agora tem capacidade 1 (devido ao fluxo de 3 no caminho anterior).
![Page 9: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/9.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Nosso algoritmo agora termina, pois não temos outros caminhos de s para t.
Porém, podemos fazer melhor?
Se enviarmos apenas 2 unidades através de u,v e direcionar a terceira unidade para u,t então abriremos um novo espaço em ambas as arestas (u,v) e (v,t). Podemos enviar agora mais uma unidade para o caminho s v t, aumentado o nosso fluxo total para 5, o que de fato é o máximo possível.
![Page 10: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/10.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Então, o que tinha de errado com nosso algoritmo? Um problema foi a ordemde escolha dos caminhos. Se tivéssemos escolhido primeiro o caminho s ut e depois o caminho s u v t, então encontraríamos a solução ótima. Mas a escolha da ordem dos caminhos pode se tornar difícil.
Testando novamente...
Qual o fluxo máximo?
![Page 11: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/11.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
![Page 12: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/12.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Método de Ford-Fulkerson
Depende de três ideias importantes:
Redes residuais: consite em arestas que podem admitir mais fluxo. Caminhos de aumento: consiste de um caminho simples desde a origem até
o destino, no grafo da rede residual. Cortes: Separam o grafo em duas partes, uma com o vértice de origem e
outra com o vértice de destino.
![Page 13: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/13.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Método de Ford-Fulkerson
Redes residuais:Considerando-se uma grafo G e um fluxo f, a rede residual consiste em arestasque podem admitir mais fluxo.
A capacidade residual Cf é a quantidade de fluxo adicional que pode passar por(u, v) sem exceder a capacidade c(u, v):
Cf(u, v) = c(u, v) – f(u, v)
O grafo residual de uma rede de fluxo é essencialmente o grafo da redeexceto que para toda aresta (u, v) que possui x unidades de fluxo, há uma aresta (v, u) com capacidade x no grafo residual.
![Page 14: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/14.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Método de Ford-Fulkerson
O grafo residual de uma rede de fluxo é essencialmente o grafo da redeexceto que para toda aresta (u, v) que possui x unidades de fluxo, há uma aresta (v, u) com capacidade x no grafo residual.
As arestas tracejadas são as arestas acrescentadas no grafo residual. A capacidade das arestas tracejadas é igual as unidades de fluxo contidas nas arestas sólidas na direção oposta.
![Page 15: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/15.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
𝐶𝑓 𝑢 → 𝑣 = 𝑐 𝑢 → 𝑣 − 𝑓 𝑢 → 𝑣 , 𝑠𝑒 𝑢 → 𝑣 ∈ 𝐸
𝑓 𝑢 → 𝑣 𝑠𝑒 𝑣 → 𝑢 ∈ 𝐸0, 𝑐𝑎𝑠𝑜 𝑐𝑜𝑛𝑡𝑟á𝑟𝑖𝑜
Grafo residual
Um caminho no grafo residual é chamado de caminho de aumento.
![Page 16: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/16.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Caminhos de aumentoSão caminhos simples da origem (s) ao destino (t) através do grafo residual Gf.A capacidade residual de um caminho de aumento p, corresponde à menordentre as capacidades residuais das arestas que fazem parte de p.
Cf = min{Cf(u, v) | (u, v) p}
![Page 17: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/17.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
CortesUm corte é uma partição de vértices distribuída um dois conjuntos distintos S e T. Em uma rede de fluxo, a origem está localizada em S, e o destino em T.
O conjunto do corte (cut-set) é um conjunto de arestas que começam em S e terminam em T.
A capacidade de um corte é a soma dos valores das arestas que começam em Se terminam em T.
![Page 18: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/18.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Cortes
![Page 19: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/19.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Cortes
![Page 20: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/20.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Método de Ford-Fulkerson (chamado “método” porque encontrarcaminhos de aumento não é especificado).
Os passos:• 1º Escolhe-se um caminho qualquer desde a origem até o
destino cujas arestas possuam capacidade positiva (>0).• 2º Procurar nesse caminho a aresta com menor capacidade (c).• 3º Diminuir c da capacidade de fluxo em cada aresta do
caminho no sentido direto e aumentar c na capacidade das arestas no sentido inverso.
• Voltar ao 1º passo. Se já não existir nenhum caminho em quetodas as arestas tenham capacidade positiva, então o fluxomáximo já está determinado.
![Page 21: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/21.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Método de Ford-Fulkerson
![Page 22: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/22.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Método de Ford-Fulkerson
![Page 23: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/23.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Método de Ford-Fulkerson
![Page 24: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/24.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Método de Ford-Fulkerson
![Page 25: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/25.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Método de Ford-Fulkerson
![Page 26: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/26.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Método de Ford-Fulkerson
![Page 27: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/27.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Método de Ford-Fulkerson (algoritmo)
![Page 28: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/28.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Teorema do Fluxo Máximo
“Para toda a rede com uma só origem e um só destino o fluxomáximo é igual ao valor mínimo de corte entre todos os cortes
possíveis da rede.”
![Page 29: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/29.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Método de Ford-Fulkerson
![Page 30: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/30.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
![Page 31: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/31.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Fluxo máximo = 23
![Page 32: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/32.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Corte mínimo
C = 29 C = 26 C = 24
![Page 33: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/33.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Corte mínimo
C = 34C = 35
![Page 34: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/34.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Corte mínimo
C = 23C = 34
Corte mínimo
![Page 35: Ciência da Computação GRAFOS - paginas.unisul.brpaginas.unisul.br/max.pereira/Grafos Aula 10.pdf · FluxoemRedes Ciência da Computação - GRAFOS Um grafo de fluxo em redes G](https://reader034.vdocuments.net/reader034/viewer/2022052407/5c45cbeb93f3c34c643f9ba4/html5/thumbnails/35.jpg)
Fluxo em Redes
Ciência da Computação - GRAFOS
Encontrar o fluxo máximo (método de Ford-Fulkerson)