Algoritmos de Fluxo Máximo

Documentos relacionados
Fluxo em Redes: Ford-Fulkerson - Fluxo Máximo

GRAFOS Aula 10 Fluxo em Redes Max Pereira

Projeto e Análise de Algoritmos

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

Análise e Síntese de Algoritmos. Fluxos Máximos em Grafos CLRS, Cap. 26

Análise e Síntese de Algoritmos

Análise e Síntese de Algoritmos. Fluxos Máximos em Grafos CLRS, Cap. 26

Módulo 3 OTIMIZAÇÃO DE REDES DE TRANSPORTES

Fluxo Máximo em Redes Letícia Rodrigues Bueno

Teoria dos Grafos. Fluxo Máximo em Redes

Teoria dos Grafos Aula 26

2 Definição do Problema

Módulo 2 OTIMIZAÇÃO DE REDES

Problemas de Fluxo em Redes

MÓDULO 2 - OTIMIZAÇÃO DE REDES

CURSO DE ENGENHARIA DE PRODUÇÃO PESQUISA OPERACIONAL FLUXO MÁXIMO

Análise de Algoritmos

Pesquisa Operacional

Fluxo Máximo. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Fluxo Máximo 2014/ / 28

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47

BCC204 - Teoria dos Grafos

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 11: Introdução aos Grafos

Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I

Fluxos em redes: o Problema do Fluxo máximo

Problema da Árvore Geradora Mínima

Problema do Caminho Mínimo

Problema de Fluxo Máximo

Projeto e Análise de Algoritmos Projeto de Algoritmos Programação Dinâmica (continuação) Prof. Humberto Brandão

Universidade Federal de Alfenas

Árvores Árvores Geradoras de Custo Mínimo 0/16

Teoria dos Grafos Aula 27

Percursos em um grafo

GRAFOS E ALGORITMOS TEORIA DE GRAFOS

apenas os caminhos que passam só por vértices em C, exceto, talvez, o próprio v A Figura 1 a seguir ilustra o significado do conjunto C edovalordist.

Projeto de Algoritmos por Indução

Algoritmos e Estruturas de Dados II Grafos conceitos gerais. Thiago A. S. Pardo Profa. M. Cristina Material de aula da Profa. Josiane M.

Projeto e Análise de Algoritmos NP Completude Parte 2. Prof. Humberto Brandão

Percursos em um grafo

Teoria dos Grafos Aula 1 - Introdução

CAP4. ELEMENTOS DA TEORIA DE GRAFOS. Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E) , sendo:

ESTRUTURAS DISCRETAS (INF 1631) GRAFOS. 1. O que é um grafo? Defina um grafo orientado. Defina um grafo não-orientado.

Planaridade e Fluxo em Grafos. Fabrício Kolberg

Teoria dos Grafos Aula 22

Algoritmos em Grafos

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45

Análise de Algoritmos

Planaridade. Grafos: Planaridade. Planaridade. Planaridade Fórmula. Euler. Cartografia Posteriormente, coloração de mapas

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Grafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de todos os pares

Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST)

Departamento de Engenharia de Produção UFPR 57

Fábio Protti - UFF Loana T. Nogueira - UFF Sulamita Klein UFRJ

Universidade Federal de Alfenas

Algoritmos de aproximação

Grafos: algoritmos de busca

Teoria dos Grafos. Teoria dos Grafos. Profa. Sheila Morais de Almeida DAINF-UTFPR-PG. agosto

1 Introdução Motivação

Grafos Planares. Grafos e Algoritmos Computacionais. Prof. Flávio Humberto Cabral Nunes

Pesquisa Operacional. Teoria dos Grafos

Grafos Parte 1. Aleardo Manacero Jr.

AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado

Grafos - Motivação. Grafos - Motivação. Algoritmos e Estruturas de Dados II Introdução a Grafos

Otimização. Otimização em Redes. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia 2016/2

GRAFOS Aula 07 Algoritmos de Caminho Mínimo: Bellman-Ford / Floyd-Warshall Max Pereira

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

Elementos de Matemática Discreta

Comunicação e redes. Aula 2: Teoria dos Grafos Conceitos básicos. Professor: Guilherme Oliveira Mota.

ANÁLISE COMPUTACIONAL DE OTIMIZAÇÃO EM REDES DE FLUXO SATURADAS PELA METODOLOGIA DO ALGORITMO DE FORD E FULKERSON

Oalgoritmo de Dijkstra

Otimização em Grafos

O grau de saída d + (v) de um vértice v é o número de arcos que tem

PCC173 - Otimização em Redes

Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo

Conceitos Básicos da Teoria de Grafos

INSTITUTO SUPERIOR TÉCNICO

Fluxo em Redes. > Fluxo em Redes Modelando com Fluxo Máximo 1/20

Otimização em Grafos

Problema do Caixeiro Viajante

AULA 13 PROJETO E ANÁLISE DE ALGORITMOS. Problema do caminho mais curto de uma única origem em grafos Karina Valdivia Delgado

Caminho Mínimo de Fonte Única em Grafos sem Pesos Negativos

Projeto e Análise de Algoritmos

Application of the Maximum Flow Problem to Sensor Placement on Urban Road Networks for Homeland Security

Grafos COM11087-Tópicos Especiais em Programação II

Algoritmos polinomiais para o problema de Fluxo Máximo

Grafos. Exemplo de árvore geradora mínima. Notas. Notas. Notas. Notas. Árvores espalhadas mínimas. Como construir uma árvore geradora miníma

Árvore de Suporte de Comprimento Mínimo Minimal Spanning Tree

GRAFOS: UMA INTRODUÇÃO

Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32

APLICAÇÕES DE BUSCA EM GRAFOS

INSTITUTO FEDERAL DO ESPÍRITO SANTO CURSO BACHARELADO EM SISTEMAS DE INFORMAÇÃO

Resolução do problema do caixeiro viajante assimétrico (e uma variante) através da relaxação Lagrangeana

Investigação Operacional

Teoria dos grafos. FATEC Carapicuíba Augusto de Toledo Cruz Junior

Grafos: componentes fortemente conexos, árvores geradoras mínimas

Exemplo: Maximização de lucros em uma chocolateria que produz os seguintes produtos: (1) Chocolate Pyramide (2) Chocolate Pyramide Nuit

Teoria e Algoritmos em Grafos

Investigação Operacional

ESTRUTURA DE DADOS. Arvore Binária Jose. Arvore Ternaria Direção

Transcrição:

UNIVERSIDADE CATÓLICA DE PELOTAS Escola de Informática Programa de Pós-Graduação em Informática Mestrado em Ciência da Computação Algoritmos de Fluxo Máximo Rodrigo Santos de Souza 1

Fluxo em Redes É a transferência de algum tipo de recurso quantificável e sujeito a restrições de equilíbrio, de um local(nó origem) para outro(nó sorvedor) através da rede. 2

Fluxo em Redes Um fluxo em rede G=(V,E) é um grafo orientado em que cada aresta (u,v) E e tem uma capacidade não negativa c(u,v) 0. E=conjunto de arestas V=conjunto de vértices u=origem e v=soredoro(destino) Cada vértice reside em algum caminho de u a v 3

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 4

Exemplos Sistema Elétrico do Rio Grande do Sul 5

6 Propriedades de Fluxo Restrição de capacidade Anti-simetria oblíqua Conservação de Fluxo ), ( ), ( ;, v u c v u f V v u ), ( ), ( ;, u v f v u f V v u = }, { t s V u = V v v u f 0 ), (

Exemplo capacidade c(v1,v2) sorvedouro origem fluxo/capacidade 7

Fluxo em Redes Redes de fluxo com múltiplas fontes e/ou destinos Definir super-fonte que liga a todas as fontes; Definir super-destino ao qual todos os destinos se ligam; Capacidades infinitas entre super-fonte e fontes, e entre destinos e super-destino. 8

Exemplo Super-origem Super-depósito 9

Fluxo Máximo Número máximo de unidades de fluxo que é possível enviar através da rede desde o nó origem até o nó destino sem violar quaisquer restrições de capacidade. Considera-se que há conservação de fluxo, ou seja, que o fluxo que parte da origem chega totalmente ao destino não havendo, portanto perdas no caminho. 10

Aplicações Considere a seguinte situação modelada por um grafo: Cada arco representa uma rua. O peso 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 v em uma hora? 11

Aplicações Outra situação: Imagine que uma empresa deseja transportar a maior quantidade possível de produtos de uma cidade para outra, através da rede rodoviária. A restrição do transporte pode ser o número disponível de caminhões da empresa para fazer cada trajeto entre cada cidade intermediária. Então como determinar o fluxo máximo possível entre as duas cidades? 12

Problema do Fluxo Máximo Para resolver o problema do fluxo máximo foram propostos alguns algoritmos: Método de Ford-Fulkerson, que foi o primeiro algoritmo proposto; Algoritmo de Edmonds-Karp, que é o próprio Ford- Fulkerson com busca em largura para definir o caminho aumentante; Método de push-relabel, que é mais rápido que os anteriores; Goldberg e Tarjan propuseram um novo método conhecido como método do pré-fluxo. 13

Método de Ford-Fulkerson Depende de três idéias importantes: Redes residuais: Consiste em arestas que podem admitir mais fluxo. Caminhos em ampliação: Consiste de um caminho simples desde a origem até a rede residual. Cortes: Separam o grafo em duas partes, uma com o nodo de origem e outra com o sorvedouro. 14

Redes residuais - conceito Considerando-se uma rede G e um fluxo f, a rede residual G f consiste em arestas que podem admitir mais fluxo. A capacidade residual c f é a quantidade de fluxo adicional que pode passar por (u, v) sem exceder a capacidade c(u, v): c f (u, v) = c(u, v) - f(u, v) Obs: u e v são dois vértices quaisquer da rede G 15

Exemplo Redes residuais 16

Caminhos aumentantes São caminhos simples da origem(s) ao sorvedor(t) através da rede residual Gf. A capacidade residual de um caminho aumentante p, corresponde à menor dentre as capacidades residuais das arestas que fazem parte de p. c f = min{c f (u,v) (u,v) está em p} 17

Algoritmo de Ford-Fulkerson Os passos de cada iteração do algoritmo podem ser resumidos do seguinte modo: 1º - Escolhe-se um caminho qualquer desde a origem até ao sorvedor cujas arestas capacidade positiva (>0) 2º - Procurar nesse caminho o arco orientado com menor capacidade c 3º - Diminuir de c a capacidade de fluxo em cada aresta do caminho no sentido direto e aumentar de c a capacidade das arestas no sentido inverso Regressar ao 1º passo. Se já não existir nenhum caminho em que todas as arestas tenham capacidade positiva, então o fluxo máximo já está determinado. 18

Algoritmo de Ford-Fulkerson FORD-FULKERSON(G,s,t) 1 para cada aresta (u,v) E[G] 2 faça f[u,v] 0 3 f[v,u] 0 4 enquanto existir um caminho p de s até t na rede residual G f 5 faça c f min{c f (u,v):(u,v) está em p} 6 para cada aresta em (u,v) em p 7 faça f[u,v] f[u,v]+ c f (p) 8 f[v,u] -f[u,v] 19

Algoritmo de Ford-Fulkerson Menor capacidade=4 20

Algoritmo de Ford-Fulkerson Menor capacidade=7 21

Algoritmo de Ford-Fulkerson Menor capacidade=8 22

Algoritmo de Ford-Fulkerson Menor capacidade=4 23

Algoritmo de Ford-Fulkerson Não existem mais nenhum caminho possível que vá da origem até o sorvedoro O Fluxo máximo é 23 (melhor visto no slide anterior) 24

Cortes de fluxo - conceito Um corte(s,t) de um fluxo em rede G = (V,E) é uma separação do conjunto de vértices V em dois conjuntos S e T = V - S, de forma que a origem s S e o sorvedoro t T. Se f é um fluxo, então o fluxo líquido pelo corte (S,T) é definido como f(s,t). A capacidade do corte (S,T) é c(s,t). Um corte mínimo de uma em rede é um corte cuja capacidade é mínima dentre todos os cortes da rede. 25

Teorema do Fluxo Máximo Para toda a rede com uma só origem e um só destino o fluxo máximo é igual ao valor mínimo de corte entre todos os cortes possíveis da rede. 26

Cortes de fluxo - exemplo c=29 F=19 c=26 f=19 c=24 f=19 27

Cortes de fluxo - exemplo c=35 F=19 c=34 f=19 28

Cortes de fluxo - exemplo Fluxo Máximo= 23 c=34 F=19 c=23 f=19 Menor capacidade de corte 29

Vamos exercitar... Acessar o link e rodar o applet java: http://www-b2.is.tokushimau.ac.jp/~ikeda/suuri/maxflow/maxflowapp.shtml?demo1 Download do código c: http://paginas.ucpel.tche.br/~rsouza/arquivos/fx_max_ff.c Comparar resultados obtidos 30

Referências Livro base: CORMEN, T. H. et al. Algoritmos: teoria e prática. Rio de Janeiro: Campus, 2002 http://descartes.ucpel.tche.br/wfc/2002/apa_grupo6-fluxomaximo.pdf http://www-b2.is.tokushima-u.ac.jp/~ikeda/suuri/maxflow/maxflowapp.shtml?demo1 http://students.odl.qmul.ac.uk/aduni/05_algorithms/handouts/reciation_09.html 31