Problemas de fluxo em grafos 1º semestre/2012 Prof. André Renato

Slides:



Advertisements
Apresentações semelhantes
Algoritmos de Caminho Mínimo em Grafos
Advertisements

Grafos eulerianos 1.
Cortes (cut-sets)‏ 1.
Grafos Orientados (digrafos)
Algoritmo de Caminho Mínimo
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Grafo k-conexo Seja k um inteiro positivo. Diz-se que um grafo G é k-conexo em vértices quando não existe corte de vértices de tamanho menor que k Analogamente,
Ford Fulkerson Teoria dos Grafos.
Algoritmos em Grafos.
Prof. M.Sc. Fábio Francisco da Costa Fontes Maio
Gustavo Sant´Anna Ferreira Rodrigo Ribeiro de Souza
Grafos - Caminhos Caminhos Máximo / Mínimo:
Teoria dos Grafos – Aula 2
Teoria dos Grafos Loana Tito Nogueira.
Fluxo em Redes Prof. Ricardo R. Santos.
Análise de Decisão Aplicada a Gerência Empresarial – UVA Grafos - V
Celso C. Ribeiro Caroline T. Rocha
Cortes (cut-sets)‏ 2010/2 Teoria dos Grafos (INF 5037/INF2781)‏ 1.
Pontes Seja (G) o número de componentes conexas de G. Uma ponte é uma aresta a tal que (G - a) > (G)
Conectividade e Separabilidade
Grafo k-conexo Seja k um inteiro positivo. Diz-se que um grafo G é k-conexo em vértices quando não existe corte de vértices de tamanho menor que k.
Problemas de fluxo numa rede
A10-1 Definição: Um ponto x*  W diz-se um mínimo relativo ou ponto
CONCEITOS BÁSICOS DE GRAFOS
Fonte, Sumidouro, Capacidade e Fluxo
COMERCIALIZAÇÃO DE PRODUTOS AGROINDUSTRIAIS
Teoria dos Grafos – Aula 6
Teoria dos Grafos – Aula 3 Árvores
Pesquisa Operacional - Profa Úrsula L. F. Ribeiro
3 - Equações Lineares de Segunda Ordem
Buscas em Grafos Prof. André Renato 1º Semestre/2012
Algoritmos em Grafos.
Formas de representação e manipulação básica
Algoritmos em Grafos Conceitos principais Prof. André Renato
Grafos Árvores Geradoras.
Teoria dos Grafos Caminhos e Noção de Grafos com pesos
Teoria dos Grafos Definições e Terminologia
Algoritmos em Grafos Árvores Geradoras Prof. André Renato
Otimização Inteira 5a. Aula Franklina.
Cálculo Numérico / Métodos Numéricos
Histórico, exemplos e problemas
Operações com grafos União Exemplo
Histórico, exemplos e problemas
O problema do emparelhamento máximo
Problemas de Fluxo Máximo
Teoria dos Grafos Conectividade
Conceitos básicos em grafos
Otimização Linear Definições e Solução Gráfica
Algoritmos de Fluxo Máximo
Conexidade 1.
Transformada de Hough Processamento global para a detecção de linhas retas numa imagem Nenhum conhecimento é necessário a respeito da posição das linhas.
Algoritmos para Obtenção de Árvore Geradora Mínima
Introdução a Algoritmos em Grafos.

Algoritmos FPT para o Problema da k-Cobertura por Vértices
Mestrado em Informática
Análise e Síntese de Algoritmos
Exercícios de Fluxo em Redes
Celso C. Ribeiro Caroline T. Rocha
Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
Grafos e Teoria da Complexidade Professor: Fabio Tirelo
Grafos Anjolina Grisi de Oliveira 2005
Macroeconomia Introd. Macro. Medidas de Atividade Econômica
FLUXOS EM REDES.
Algoritmo de Transportes Objecto de Aprendizagem Manuel Pina MarquesDEIG
PROBLEMAS DE TRANSPORTE
Aula 8: Completeza em R, Supremos e Ínfimos
Objetivo Este projeto destina-se ao estudo e à elaboração de modelos neurais artificiais, com o auxílio do programa Matlab. O objetivo principal deste.
1 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.
Transcrição da apresentação:

Problemas de fluxo em grafos 1º semestre/2012 Prof. André Renato Algoritmos em Grafos Problemas de fluxo em grafos 1º semestre/2012 Prof. André Renato

Problemas de Fluxo em Grafos O estudo de problemas de fluxo em grafos é de fundamental importância, pois uma série de aplicações computacionais podem ser modeladas através de fluxos; A sub-área de fluxos demanda um conhecimento prévio de alguns conceitos e definições para que os problemas possam ser melhor compreendidos;

Problemas de Fluxo em Grafos Uma rede é um digrafo D(V, E), em que cada aresta e  E, está associada a um número real c(e), não-negativo, chamado capacidade da aresta e; D possui dois vértices especiais e distintos s,t  V chamados de origem e destino (fonte e sumidouro);

Problemas de Fluxo em Grafos Um fluxo f, de s a t em D, é uma função que associa a cada aresta e um valor real não-negativo f(e) atendendo às seguintes condições: 0 ≤ f(e) ≤ c(e) para cada aresta e  E; para todo v ≠ s,t

Problemas de Fluxo em Grafos O somatório dos fluxos das arestas convergentes a v é igual ao somatório dos fluxos das arestas divergentes de v; Este somatório é denominado valor do fluxo em v; O valor do fluxo na origem é denominado valor do fluxo na rede D e é denotado por f(D);

Problemas de Fluxo em Grafos

Problemas de Fluxo em Grafos

Problemas de Fluxo em Grafos Analogia: Escoamento de água em uma rede de tubos; A água é emanada de um ponto (origem) e deve passar pela tubulação até ser recolhida em outro ponto (destino); As junções dos tubos (demais vértices) não produzem nem consomem água; O volume de água em cada cano deve ser tal que a capacidade do cano não seja violada;

Problemas de Fluxo em Grafos Naturalmente, o valor do fluxo em uma rede pode variar de um valor igual a zero até um certo valor máximo; O problema do fluxo máximo em redes consiste em descobrir qual é este valor e como o fluxo pode se comportar pela rede;

Problemas de Fluxo em Grafos Seja f um fluxo em uma rede D(V, E). Uma aresta e  E é dita saturada quando f(e) = c(e). Um vértice v  V é dito saturado se todas as arestas convergentes a v ou divergentes de v forem saturadas.

Problemas de Fluxo em Grafos 3(2) d a 3(3) 2(2) 5(4) 3(1) t s c 2(2) 5(2) 4(3) 5(3) b e

Problemas de Fluxo em Grafos A noção de corte em uma rede de fluxos é de grande importância para o problema de fluxo máximo e demais problemas de fluxo em grafos; Seja S  V, um subconjunto de vértices de V tal que s  S e t  S. Um corte (S,S), onde S = V – S, em D é o subconjunto das arestas de D que possuem uma extremidade em S e outra em S.

Problemas de Fluxo em Grafos c d e t d d a a s c t s c t b b e e

Problemas de Fluxo em Grafos É importante entender que nem sempre os grafos são bem organizados como os exemplos vistos; Desta forma, podemos ter grafos com ciclos e arcos de mesmas extremidades, mas sentidos diferentes;

Problemas de Fluxo em Grafos c b b b t e b s b b b

Problemas de Fluxo em Grafos É preciso diferenciar as arestas que partem do subconjunto S daquelas que partem do subconjunto S; (S,S)+ = {(u,v) | u  S e v  S}; (S,S)- = {(u,v) | u  S e v  S};

Problemas de Fluxo em Grafos A capacidade c(S,S) de um corte (S,S) é o somatório das capacidades das arestas (S,S)+; Um corte mínimo é aquele que possui capacidade mínima;

Problemas de Fluxo em Grafos Seja f um fluxo e (S,S) um corte em D. Então f(S,S) é o fluxo do corte (S,S), definido como:

Problemas de Fluxo em Grafos Seja f um fluxo em uma rede D. O objetivo do problema de fluxo máximo é aumentar f, se possível. Cada aresta e pode receber um fluxo adicional ≤ c(e) – f(e); Talvez este fluxo adicional aumente o valor do fluxo em D;

Problemas de Fluxo em Grafos Uma aresta e tal que c(e) – f(e) > 0 chama-se aresta direta; Uma aresta e só pode receber decremento positivo de fluxo se e somente f(e) > 0; estas são chamadas de arestas contrárias; Uma aresta pode ser somente direta, somente contrária ou direta e contrária;

Problemas de Fluxo em Grafos 3(2) d a 3(3) 2(2) 5(4) 3(0) t s c 2(0) 5(2) 4(3) 5(3) b e

Problemas de Fluxo em Grafos Dados um fluxo f e uma rede D(V,E), a rede residual D´(f) é aquela cujo conjunto de vértices coincide com os de V e cujas arestas são obtidas assim: Se uma aresta (u,v) é direta em D, então (u,v) é também aresta direta de D´ e sua capacidade é c(u,v) – f(u,v); Se uma aresta (u,v) é contrária em D, então (v,u) é também aresta contrária de D´ e sua capacidade c(v,u) = f(u,v);

Problemas de Fluxo em Grafos

Problemas de Fluxo em Grafos 4(2) 3(2) 2(1) 1(1) 2(2) s b t 3(0) 4(3) 3(1) 5(2) d c 3(1)

Problemas de Fluxo em Grafos Em outras palavras, as capacidades das arestas na rede residual representam as possíveis variações de fluxo que as arestas de D podem sofrer, com a direção indicando a variação positiva ou negativa; Um caminho de s a t na rede residual D´(f) é chamado de aumentante para o fluxo f.

Problemas de Fluxo em Grafos

Problemas de Fluxo em Grafos Se todo caminho entre s e t em uma rede D passar por uma aresta e, o fluxo máximo desta rede não pode ser maior do que c(e) – gargalo; De forma mais geral, o valor de um fluxo f em D não pode ultrapassar o valor de qualquer corte (S,S);

Problemas de Fluxo em Grafos f(D) = f(S,S) = = ≤ ≤ = c(S,S) Logo, f(D) ≤ c(S,S).

Problemas de Fluxo em Grafos Teorema do fluxo máximo – corte mínimo: O valor do fluxo máximo de uma rede D é igual à capacidade do corte mínimo de D.

Problemas de Fluxo em Grafos Algoritmos para Fluxo máximo: Dados de entrada: D(V, E) Cada aresta e tem capacidade c(e), inteira e positiva Origem s e destino v de V Saída: F: valor do fluxo na rede f(e): valor do fluxo em cada aresta e

Problemas de Fluxo em Grafos Algoritmo 1: F = 0; Para cada aresta e, f(e) = 0; Construir a rede residual D’(f) Enquanto existir caminho de s a t em D’: F’ = min{ c’(vj,vj+1) | 1≤ j < k } Para j de 1 até k-1 Se (vj,vj+1) é aresta direta entao f(vj,vj+1) = f(vj,vj+1) + F’ Senão f(vj+1,vj) = f(vj+1,vj) – F’ F = F + F’ Construir rede residual D’(f)

Problemas de Fluxo em Grafos 4 3 2 1 2 s b t 3 4 3 5 d c 3

Problemas de Fluxo em Grafos Qual o problema que pode existir neste algoritmo?

Problemas de Fluxo em Grafos Algoritmo 2: F = 0; Para cada aresta e, f(e) = 0; Construir a rede residual D’(f) Enquanto existir caminho de s a t em D’: Escolher o menor caminho (via busca em largura) F’ = min{ c’(vj,vj+1) | 1≤ j < k } Para j de 1 até k-1 Se (vj,vj+1) é aresta direta entao f(vj,vj+1) = f(vj,vj+1) + F’ Senão f(vj+1,vj) = f(vj+1,vj) – F’ F = F + F’ Construir rede residual D’(f)

Problemas de Fluxo em Grafos 4 3 2 1 2 s b t 3 4 3 5 d c 3

Problemas de Fluxo em Grafos Um segundo problema muito comum de fluxo em redes consiste em descobrir o fluxo de menor custo (custo mínimo); Neste caso, não estamos mais preocupados em encontrar o fluxo máximo;

Problemas de Fluxo em Grafos O vértice de destino t vai possuir agora uma demanda positiva de um fluxo; Essa demanda será denotada por B; O vértice s terá uma oferta de fluxo, também com valor B; Os demais vértices não terão oferta nem demanda;

Problemas de Fluxo em Grafos O objetivo está em fazer um fluxo de B unidades atravessar o grafo de s a t, passando pelas arestas (com capacidade positiva); Cada aresta vai possuir também um custo de utilização caso passe fluxo por ela. Estamos interessados em escolher as arestas que ofereçam os menores custos;

Problemas de Fluxo em Grafos Demanda = 7 (custo, capacidade) Soluções????? a (3,4) (2,3) (4,2) (1,1) (5,2) s b t (1,3) (5,4) (3,3) (2,5) d c (2,3)

Problemas de Fluxo em Grafos Aplicações Uma empresa possui p fábricas com produção conhecida e q depósitos com demandas conhecidas. Deseja-se estabelecer um fluxo que atenda às demandas, de forma que o custo de transporte dos produtos das fábricas para os depósitos seja o menor possível.

Problemas de Fluxo em Grafos Aplicações Uma generalização deste problema envolve a fabricação de produtos distintos, com produções e demandas também distintos. Neste caso, pode-se utilizar uma estratégia muito interessante de se criar camadas de nós intermediários para tratar os modelos diferentes de forma distinta;

Problemas de Fluxo em Grafos

Problemas de Fluxo em Grafos Algoritmo de ciclos negativos (cancelamento de ciclos): A ideia é encontrar um fluxo inicial factível; Depois, monta-se a rede residual; Enquanto houver ciclos de custo negativo, aumenta-se o fluxo através do ciclo; O algoritmo termina quando não houver mais ciclos;

Problemas de Fluxo em Grafos Algoritmo: Estabelecer um fluxo F através do algoritmo de fluxo máximo; Montar a rede residual W; Enquanto a rede W tem ciclo negativo: Determinar x = min{rij, (i,j)  W}; Aumentar o fluxo F em x unidades; Fim enquanto;

Problemas de Fluxo em Grafos Como montar a rede residual em um grafo com capacidade, custo e fluxo para cada aresta? (2,1) (2,2) (2,3) (-2,1) 1 (2,4) (-2,1) (1,4) 1 (1,4) (-2,1) (2,4) 1 (2,5) (-1,3) (1,3) (-3,3) (3,3) 3 3 (custo, residual) (custo, capacidade) fluxo

Problemas de Fluxo em Grafos (2,5) a f (2,4) (3,7) (4,5) (1,7) (3,1) s (1,5) b e (2,5) t (2,5) (2,6) (1,2) (2,4) (3,3) (3,5) c d

Problemas de Fluxo em Grafos Problema de múltiplos fluxos: É uma generalização do problema de luxo de custo mínimo; Ao invés de um único tipo de fluxo (produtos, mercadorias etc) temos vários fluxos distintos sendo produzidos e consumidos; Ex: por determinadas redes, passam tráfegos de tipos diferentes Dados Voz Audio ou video on-line

Problemas de Fluxo em Grafos Se os fluxos não apresentam qualquer tipo de interação entre si, o problema pode ser tratado separadamente como diversos problemas de fluxo; Entretanto, se os fluxos compartilham determinadas características, será preciso tratar o problema como um todo;

Problemas de Fluxo em Grafos j i Fluxo 1 Fluxo 2 Fluxo 3 1 xij uij 2 xij 3 xij

Problemas de Fluxo em Grafos Algumas variações: Homogeneidade: cada unidade de fluxo que passa por uma aresta consume uma unidade de capacidade da aresta; Custos crescentes: em alguns modelos o custo é definido como uma função não-linear (função degrau); Integralidade: na maioria dos modelos, o fluxo pode ser transferido em unidades inteiras (não-fracionárias);