FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.
Transcript of FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.
![Page 1: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/1.jpg)
FLUXO EM REDESFLUXO EM REDES
Prof. M.Sc. Fábio Francisco da Costa Fontes
Maio - 2009
![Page 2: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/2.jpg)
Introdução
Grafos podem ser usados para modelar o fluxo de materiais numa rede:Líquidos fluindo por tubosPeças por linhas de montagemCorrente 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
![Page 3: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/3.jpg)
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)
![Page 4: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/4.jpg)
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
![Page 5: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/5.jpg)
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
![Page 6: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/6.jpg)
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
s
x
v
w
t
7
4
6
53
5
7
![Page 7: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/7.jpg)
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.
)()(
)()(vOutevIne
efef
![Page 8: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/8.jpg)
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
s
x
v
w
t
7, 2
4, 1
6, 5
5, 13, 1
5, 3
7, 3
![Page 9: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/9.jpg)
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
)()(
)()()(sInesOute
efeffval
![Page 10: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/10.jpg)
Corte em Rede
Exemplo: um corte s-t igual a Out(s)
s
x
v
w
t
Vs
Vt
{s}, {x,v,w,t}
![Page 11: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/11.jpg)
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, VtOuUm corte em N é o conjunto dos arcos de N com extremidade inicial em Vs e extremidade final em Vt.
![Page 12: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/12.jpg)
Corte em Rede
Exemplo: um corte s-t igual a In(t)
s
x
v
w
t
Vs
Vt
{s,x,v,w},{t}
![Page 13: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/13.jpg)
Corte em Rede
Exemplo: um corte s-t mais geral
s
x
v
w
t
Vs
Vt
{s,x,v},{w,t}
![Page 14: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/14.jpg)
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:
}{},{}{},{
)()()(ssVesVse NN
efeffval
![Page 15: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/15.jpg)
Fluxos e Cortes
A definição do valor do fluxo pode ser generalizada para qualquer corte s-t:
stts VVeVVe
efeffval,,
)()()(
Vs Vts
x
v
w
t
7, 2
4, 1
6, 5
5, 13, 1
5, 3
7, 3
val(f) = 7 – 1 = 6
![Page 16: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/16.jpg)
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:
)()(
)()()(tOutetIne
efeffval
![Page 17: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/17.jpg)
Fluxo em Rede
O modelo matemático que representa o fluxo em uma rede será:
)()()(
0)()(
)()()(
)()(
)()(
)()(
fvalefef
efef
fvalefef
SorvedorOuteSorvedorIne
vOutevIne
OrigemIneOrigemOute
![Page 18: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/18.jpg)
Fluxos e Cortes
Definição: a capacidade de um corte Vs, Vt, denotado capVs, 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
ts VVe
ts ecapVVcap,
)(,
![Page 19: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/19.jpg)
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.
st
ts
VVe
VVeecapef
, se 0
, se)()(
![Page 20: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/20.jpg)
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 0-1 2 2 t = 5
0-2 3 2 1-3 3 1
1-4 1 1 2-3 1 1 2-4 1 1 3-5 2 2 4-5 3 2
![Page 21: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/21.jpg)
ExemploA 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).0 1 2 3 4 5 0-1 0-2 5 0 1 2 3 4 5 0-2 1-3 1-4 7 0 2 1 3 4 5 0-1 2-3 2-4 4 0 3 1 2 4 5 0-1 0-2 3-5 1-3 2-3 7 0 4 1 2 3 5 0-1 0-2 4-5 1-4 2-4 8 0 1 2 3 4 5 1-3 1-4 2-3 2-4 6 0 1 3 2 4 5 0-2 1-4 3-5 2-3 6 0 1 4 2 3 5 0-2 1-3 4-5 2-4 9 0 2 3 1 4 5 0-1 2-4 3-5 1-3 5
0 2 4 1 3 5 0-1 2-3 4-5 1-4 6 0 3 4 1 2 5 0-1 0-2 1-3 1-4 2-3 2-4 5
0 1 2 3 4 5 1-4 2-4 3-5 4 0 1 2 4 3 5 1-3 4-5 6 0 2 3 4 1 5 0-1 3-5 4-5 1-3 1-4 7 0 1 2 3 4 5 3-5 4-5 5
Verifique que o fluxo através de cada um dos quinze cortes tem intensidade 4.
![Page 22: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/22.jpg)
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 0-1 2 t = 5 0-2 3 0-3 2 1-2 1 1-3 1 1-4 1 2-4 1 2-5 2 3-4 2 3-5 3 4-5 2
![Page 23: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/23.jpg)
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
s
x
v
w
t
7, 2
4, 1
6, 5
5, 13, 1
5, 3
7, 3
f = 6
![Page 24: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/24.jpg)
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
s
x
v
w
t
7, 2
4, 1
6, 5
5, 13, 1
5, 3
7, 3
P
![Page 25: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/25.jpg)
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)
s
x
v
w
t
7, 2
4, 1
6, 5
5, 13, 1
5, 3
7, 3
P
+2
+2
+1
![Page 26: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/26.jpg)
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
s
x
v
w
t
7, 2
4, 1
6, 5
5, 13, 1
5, 3
7, 3
P
+1
+1
+1
![Page 27: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/27.jpg)
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)}
s
x
v
w
t
7, 2
4, 1
6, 6
5, 13, 2
5, 4
7, 3
Pf = 7
![Page 28: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/28.jpg)
Problema do Fluxo Máximo
Usando o caminho P = <s, x, w, t> o fluxo pode ser aumentado para 8 (com P = 2)
s
x
v
w
t
7, 2
4, 1
6, 5
5, 13, 1
5, 3
7, 3
P+2
+2
+2
f = 8
![Page 29: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/29.jpg)
Problema do Fluxo Máximo
Usando o caminho P = <s, v, t> o fluxo pode ser aumentado para 9
s
x
v
w
t
7, 4
4, 3
6, 5
5, 13, 1
5, 5
7, 3P +1+1
f = 9
![Page 30: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/30.jpg)
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
s
x
v
w
t
7, 4
4, 3
6, 6
5, 13, 1
5, 5
7, 4
f = 9
![Page 31: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/31.jpg)
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)
s
x
v
w
t
7, 4
4, 3
6, 6
5, 13, 1
5, 5
7, 4
+1
+1
-1
f = 10
![Page 32: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/32.jpg)
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
s
x
v
w
t
7, 4
4, 4
6, 6
5, 03, 1
5, 5
7, 5
f = 10
![Page 33: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/33.jpg)
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>
![Page 34: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/34.jpg)
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
s
x
v
w
t
c
a
Q = <s, a, v, b, w, c, t >
b
![Page 35: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/35.jpg)
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:
retrocesso de arco um é se 0)(
avanço de arco um é se)()(
eef
eecapef
![Page 36: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/36.jpg)
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
retrocesso de arco um é se )(
avanço de arco um é se)()(
eef
eefecape
![Page 37: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/37.jpg)
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:
eQe
Q
min
![Page 38: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/38.jpg)
Caminhos Aumentantes
Exemplo: o quase-caminho Q é um caminho f-aumentante, com Q = 1
Q = <s, v, w, t>
s
x
v
w
t
7, 4
4, 3
6, 6
5, 13, 1
5, 5
7, 4e = 3
e = 1
e = 1
f = 9
![Page 39: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/39.jpg)
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
![Page 40: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/40.jpg)
Exemplo Considere a rede capacitada abaixo. O fluxo
indicado na coluna f respeita as capacidades e tem intensidade 2. arco c f s = 0 0-1 2 2 t = 3 0-2 2 01-2 2 2 1-3 2 0 2-3 2 2 A seqüência 0-2-1-3 é 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':
![Page 41: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/41.jpg)
Exemplo
arco c f' 0-1 2 2 0-2 2 2 1-2 2 0 1-3 2 2 2-3 2 2
O novo fluxo f' respeita as capacidades e tem intensidade 4.
![Page 42: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/42.jpg)
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
![Page 43: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/43.jpg)
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
![Page 44: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/44.jpg)
ExemploConsidere a rede capacitada abaixo:arco cap s = 0 0-1 2 t = 5 0-2 3 1-3 3 1-4 1 2-3 1 2-4 1 3-5 2 4-5 3
Comece com fluxo nulo. Agora aplique a seqüência de caminhos de aumento
0-1-3-50-2-4-50-2-3-1-4-5
![Page 45: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/45.jpg)
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.
![Page 46: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/46.jpg)
ExemploA 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"' 0-1 0 2 2 2 0-2 0 0 1 2 1-3 0 2 3 2 1-4 0 0 0 1 2-3 0 0 0 1 2-4 0 0 1 1 3-5 0 2 2 2 4-5 0 0 1 2
![Page 47: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/47.jpg)
Exemplo 2: encontrar o caminho aumentante Exemplo:
s
w
v
a b5, 0 3, 0
4, 03, 0
2, 0
2, 0
3, 0
c
t
7, 0
6, 0
x y z5, 0 4, 0
3, 0
![Page 48: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/48.jpg)
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.
![Page 49: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/49.jpg)
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.
![Page 50: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/50.jpg)
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.
![Page 51: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/51.jpg)
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.
![Page 52: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/52.jpg)
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).
![Page 53: FLUXO EM REDES Prof. M.Sc. Fábio Francisco da Costa Fontes Maio - 2009.](https://reader033.fdocuments.net/reader033/viewer/2022042623/552fc0f8497959413d8b5c89/html5/thumbnails/53.jpg)
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.