A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Prof. M.Sc. Fábio Francisco da Costa Fontes Maio

Apresentações semelhantes


Apresentação em tema: "Prof. M.Sc. Fábio Francisco da Costa Fontes Maio"— Transcrição da apresentação:

1 Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009
FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio

2 Introdução Grafos 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

3 Introdução Cada aresta é um canal para o material
Cada canal tem uma capacidade estabelecida, dada como uma taxa máxima (ex.: 200 litros/h) Vértices são junções de canais 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 nós da rede)

4 Introdução Definição: uma rede (s-t) é um dígrafo conectado que tem um vértice chamado origem (s), com grau de saída não nulo, e um vértice chamado sorvedor (t), com grau de entrada não nulo Definição: uma rede limitada é um dígrafo conectado tal que a cada arco e é associado um peso não negativo cap(e), chamado capacidade de e

5 Introdução Seja v um vértice em um dígrafo N:
Definição: O conjunto de saída de v, denotado por Out(v), é o conjunto de todos os arcos que saem de v Definição: O conjunto de entrada de v, denotado por In(v), é o conjunto de todos os arcos que chegam em v Para qualquer subconjunto de vértices X e Y, seja X,Y o conjunto de todos os arcos direcionados de um vértice em X para um vértice em Y

6 Introdução Exemplo: se X={x,v} e Y={w,t}, então os elementos de X,Y são os arcos xw e vt 7 x w 5 4 5 3 s t 7 6 v

7 Fluxo em Rede Definição: um fluxo em rede é uma função f: E R+ que associa um número real positivo f(e) para cada arco e tal que: (Restrições de capacidade) f(e) ≤ cap(e), para cada arco e na rede N (Restrições de conservação) , para todo vértice v na rede N, com exceção da origem e do sorvedor. Ou seja, a soma dos f(e) que chegam num vértice v é igual a soma dos f(e) que saem de um vértice v.

8 Fluxo em Rede Exemplo: o fluxo total saindo de s é igual a 6, que é o mesmo fluxo que entra no sorvedor t. A conservação do fluxo é respeitada para todos os vértices 7, 2 x w 5, 3 4, 1 5, 1 s 3, 1 t 6, 5 7, 3 v

9 Fluxo em Rede Definição: o valor do fluxo f em uma rede limitada, denotado por val(f), é o fluxo líquido que deixa a origem s Definição: o fluxo máximo numa rede limitada N é um fluxo em N que tem valor máximo

10 Corte em Rede Exemplo: um corte s-t igual a Out(s) {s}, {x,v,w,t} x
Vs Vt

11 Corte em Rede Um fluxo não nulo deve usar pelo menos um arco em Out(s)
Se todos os arcos de Out(s) fossem removidos da rede, nenhum fluxo de s para t poderia existir Definição: seja Vs e Vt uma partição dos vértices de N tal que s  Vs e t Vt. O conjunto de arcos direcionados de um vértice em Vs para um vértice em Vt é chamado um corte s-t da rede N e denotado Vs, Vt Ou Um corte em N é o conjunto dos arcos de N com extremidade inicial em Vs e extremidade final em Vt.

12 Corte em Rede Exemplo: um corte s-t igual a In(t) {s,x,v,w},{t} x w
Vt Vs

13 Corte em Rede Exemplo: um corte s-t mais geral {s,x,v},{w,t} x w s t
Vt Vs

14 Fluxos e Cortes O conjunto de arcos Out(s) pode ser visto como o corte s-t {s}, VN - {s} O conjunto de arcos In(s) pode ser visto como o corte s-t VN - {s}, {s} A partir dessa observação, o valor de um fluxo pode ser reescrito como:

15 Fluxos e Cortes A definição do valor do fluxo pode ser generalizada para qualquer corte s-t: 7, 2 x w 5, 3 4, 1 5, 1 Vs Vt s 3, 1 t 7, 3 v 6, 5 val(f) = 7 – 1 = 6

16 Fluxos e Cortes O corolário abaixo confirma que o fluxo líquido que sai da origem s é igual ao fluxo líquido que entra no sorvedor t Corolário: seja f um fluxo em rede, então:

17 Fluxo em Rede O modelo matemático que representa o fluxo em uma rede será:

18 Fluxos e Cortes Definição: a capacidade de um corte Vs, Vt, denotado capVs, Vt, é a soma das capacidades dos arcos do corte Definição: um corte mínimo de uma rede N é um corte com a capacidade mínima

19 Fluxo Máximo e Corte Mínimo
O problema de achar o fluxo máximo está intimamente relacionado com o problema de achar o corte mínimo numa rede N Corolário: Seja Vs, Vt um corte s-t em uma rede N, e suponha que f é um fluxo tal que: Então f é um fluxo máximo e Vs, Vt é um corte mínimo.

20 Exemplo Considere a rede capacitada abaixo, com vértice inicial 0 e vértice final 5.  A coluna f dá um fluxo que respeita as capacidades. arco cap f s = 0 t = 5

21 Exemplo A tabela a seguir lista todos os cortes. Em cada linha temos um corte (com S na primeira coluna e T na segunda), os arcos diretos do corte (terceira coluna), os arcos inversos do corte (quarta coluna) e a capacidade do corte (quinta coluna). Verifique que o fluxo através de cada um dos quinze cortes tem intensidade 4.

22 Exercício Mostre, no estilo do exemplo anterior, todos os cortes na rede capacitada abaixo. Para cada corte, liste os arcos diretos e os inversos, bem como a capacidade do corte.  arco cap s = 0 t = 5

23 Problema do Fluxo Máximo
A idéia básica do algoritmo de Ford e Fulkerson (ou algoritmo dos caminhos de aumento) é aumentar o fluxo iterativamente em uma rede até que ele não possa mais ser aumentado 7, 2 x w 5, 3 4, 1 5, 1 f = 6 s 3, 1 t 6, 5 7, 3 v

24 Problema do Fluxo Máximo
Suponha que f é um fluxo em uma rede N, e suponha que existe um caminho P de s para t, P = <s,e1,v1,e2,...,ek,t>, tal que, f(ei) < cap(ei) para i = 1..k 7, 2 x w 5, 3 4, 1 P 5, 1 3, 1 s t 6, 5 7, 3 v

25 Problema do Fluxo Máximo
Considerando apenas as capacidades dos arcos, o fluxo em cada arco ei pode ser aumentado em cap(ei)-f(ei) 7, 2 +2 x w 5, 3 4, 1 P 5, 1 3, 1 s t +2 6, 5 7, 3 v +1

26 Problema do Fluxo Máximo
Mas para manter a propriedade de conservação do fluxo em cada um dos vértices, o aumento em cada um dos arcos do caminho deve ser o mesmo 7, 2 +1 x w 5, 3 4, 1 P 5, 1 3, 1 s t +1 6, 5 7, 3 v +1

27 Problema do Fluxo Máximo
Então se P denota esse aumento no fluxo, o maior aumento possível para P é min{cap(ei) - f(ei)} 7, 2 x w 5, 4 4, 1 P 5, 1 3, 2 f = 7 s t 6, 6 7, 3 v

28 Problema do Fluxo Máximo
Usando o caminho P = <s, x, w, t> o fluxo pode ser aumentado para 8 (com P = 2) +2 P 7, 2 +2 +2 x w 5, 3 4, 1 5, 1 s 3, 1 t f = 8 6, 5 7, 3 v

29 Problema do Fluxo Máximo
Usando o caminho P = <s, v, t> o fluxo pode ser aumentado para 9 7, 4 x w 5, 5 4, 3 5, 1 s 3, 1 t f = 9 6, 5 7, 3 v P +1 +1

30 Problema do Fluxo Máximo
Neste ponto o fluxo não pode ser mais aumentado por caminhos s-t, porque qualquer caminho usa os arcos sx ou vt e ambos estão na capacidade máxima 7, 4 x w 5, 5 4, 3 5, 1 f = 9 s 3, 1 t 6, 6 7, 4 v

31 Problema do Fluxo Máximo
Porém o fluxo ainda pode ser maior: aumentando sv (+1), diminuindo wv (-1) e aumentando o fluxo em wt (+1) 7, 4 +1 x w 5, 5 4, 3 -1 5, 1 f = 10 s 3, 1 t 6, 6 7, 4 v +1

32 Problema do Fluxo Máximo
Os arcos cujo fluxo foi alterado formam um caminho s-t se as direções forem ignoradas É preciso generalizar um caminho direcionado para obter o fluxo máximo 7, 4 x w 5, 5 4, 4 5, 0 f = 10 s 3, 1 t 6, 6 7, 5 v

33 Q = <s = v0, e1, v1, ..., vk-1, ek, vk = t>
Caminhos Aumentantes Definição: um quase-caminho s-t em uma rede N é uma seqüência alternada de vértices e arcos que formam um caminho s-t, desconsiderando as direções dos arcos Q = <s = v0, e1, v1, ..., vk-1, ek, vk = t>

34 Caminhos Aumentantes Terminologia: para um quase-caminho s-t, o arco ei é chamado de arco de avanço se ele é direcionado de vi-1 para vi e é chamado arco de retrocesso se ele é direcionado de vi para vi-1 Q = <s, a, v, b, w, c, t > x w c b s t a v

35 Caminhos Aumentantes Definição: Um caminho f-aumentante Q em uma rede N é um quase-caminho s-t em N tal que o fluxo em cada arco de avanço pode ser aumentado, e o fluxo em cada arco de retrocesso pode ser diminuído Para cada arco num caminho f-aumentante Q:

36 Caminhos Aumentantes Para cada arco e em um caminho f-aumentante, seja e a quantidade dada por A quantidade e é a flexibilidade do arco. Seu valor é o maior aumento de fluxo possível para um arco de avanço, e a maior diminuição de fluxo possível para um arco de retrocesso

37 Caminhos Aumentantes A conservação do fluxo exige que a mudança no fluxo de cada arco seja de mesma magnitude A maior mudança de fluxo permitida em um quase-caminho Q é Q, onde:

38 Caminhos Aumentantes Exemplo: o quase-caminho Q é um caminho f-aumentante, com Q = 1 Q = <s, v, w, t> 7, 4 e = 1 x w 5, 5 e = 1 4, 3 5, 1 f = 9 s 3, 1 t 6, 6 7, 4 v e = 3

39 Fluxo Máximo e Corte Mínimo
Teorema (fluxo máximo): seja f um fluxo numa rede N, f é um fluxo máximo se e somente se não existe um caminho f-aumentante em N Teorema (fluxo máximo corte-mínimo): Para uma rede N, o valor do fluxo máximo é igual a capacidade de um corte mínimo

40 Exemplo Considere a rede capacitada abaixo.  O fluxo indicado na coluna f respeita as capacidades e tem intensidade 2. arco c f s = 0 t = 3 A seqüência      é um caminho f- aumentante.  Esse caminho tem capacidade residual 2.  Se enviarmos 2 unidades de fluxo ao longo do caminho, teremos um novo fluxo f':

41 Exemplo arco c f' O novo fluxo f' respeita as capacidades e tem intensidade 4.

42 Algoritmo de Fluxo Máximo
Entrada: uma rede s-t N Saída: um fluxo máximo f na rede N Algoritmo: Fluxo Máximo [Inicialização] para cada arco e na rede N f(e) = 0 [Aumento do Fluxo] enquanto existir um caminho f-aumentante na rede N ache um caminho f-aumentante Q seja Q = min{e} para todo e  Q para cada arco e do caminho f-aumentante Q se e é um arco de avanço f(e) = f(e) + Q senão f(e) = f(e) - Q retorne fluxo f

43 Algoritmo de Fluxo Máximo
Entrada: uma rede s-t N Saída: um caminho f-aumentante Q ou um corte mínimo Algoritmo: Achando um Caminho Aumentante Inicialize o conjunto de vértices Vs = {s} Escreva o rótulo 0 no vértice s Inicialize o contador de rótulos i = 1 enquanto o conjunto Vs não contém o sorvedor t se existir um arco de fronteira usável seja e um arco usável cujo vértice rotulado v tem o menor rótulo possível seja w o vértice não rotulado do arco e faça backpoint(w) = v escreva rótulo i no vértice w Vs = Vs U {w} i = i + 1 senão retorne o corte s-t Vs, VN-Vs retorne o caminho f-aumentante reconstruído pelos ponteiros backpoint Um arco de fronteira é usável se f(e) < cap(e) para arcos de avanço e f(e) > 0 para arcos de retrocesso 43

44 Exemplo Considere a rede capacitada abaixo: arco cap s = 0 0-1 2 t = 5
Comece com fluxo nulo. Agora aplique a seqüência de caminhos de aumento

45 Exemplo (os arcos inversos estão indicados em negrito).  O primeiro caminho de aumento tem capacidade residual 2. Depois que enviarmos 2 unidades de fluxo ao longo desse caminho, teremos um fluxo f'.  O segundo caminho de aumento é calculado em relação a f' e produz um terceiro fluxo, digamos f". O terceiro caminho de aumento é calculado em relação a f" e tem capacidade residual 1.

46 Exemplo A seqüência de fluxos produzida pelos caminhos de aumento está indicada abaixo. Todos respeitam as capacidades dos arcos. O último fluxo tem intensidade 4. arco f f' f" f"'

47 Exemplo 2: encontrar o caminho aumentante
5, 0 3, 0 7, 0 w a b c 2, 0 6, 0 3, 0 4, 0 2, 0 s v t 3, 0 3, 0 x y z 5, 0 4, 0

48 Problema de Fluxo de Custo Mínimo
The Minimum Cost Flow Problem Este problema possui papel principal entre os modelos de otimização em redes, uma vez que este engloba uma enorme quantidade de aplicações e pode ser resolvido de maneira extremamente eficiente.

49 Problema de Fluxo de Custo Mínimo
O Problema de Transporte, de Designação, de Caminho Mais Curto e de Fluxo Máximo são casos especiais do Problema de Fluxo de Custo Mínimo. A única exceção é o Problema de Árvore Geradora Mínima.

50 Problema de Fluxo de Custo Mínimo
A exemplo dos problemas acima (com exceção do Problema de Árvore Geradora Mínima), o Problema de Fluxo de Custo Mínimo é um Problema de Programação Linear, logo o Simplex pode ser utilizado para sua resolução.

51 Problema de Fluxo de Custo Mínimo
A rede é representada por um Dígrafo; No mínimo um dos nós é a origem; No mínimo um dos nós é um destino; Todos os nós restantes são entreposto intermediário; A rede possui arcos com capacidade suficiente para habilitar todos os fluxos gerados nos nós de fornecimento para alcançar os nós de demanda; O custo do fluxo através de cada arco é proporcional a quantidade daquele fluxo, onde o custo por unidade de fluxo é conhecido.

52 Problema de Fluxo de Custo Mínimo
O objetivo é minimizar o custo total da passagem de uma dada quantidade de fluxo através do grafo. (um objetivo alternativo é maximizar o lucro total para realizar a mesma atividade).

53 Problema de Fluxo de Custo Mínimo
Pode-se imaginar uma situação na qual se queira trabalhar com o menor fluxo possível (por exemplo, para manter em operação uma rede deficitária sujeita a restrições contratuais). No entanto, a absoluta maioria das situações práticas acarreta o interesse em que se use ao máximo a capacidade disponível, o que nos faz pensar em minimizar o custo dentre os fluxos máximo existentes.


Carregar ppt "Prof. M.Sc. Fábio Francisco da Costa Fontes Maio"

Apresentações semelhantes


Anúncios Google