fluxo&em&redes& - lucianaassis.pro.br · algoritmos&em&grafos& 12...
Post on 21-Jan-2019
231 Views
Preview:
TRANSCRIPT
Fluxo em Redes
Luciana Assis
Sumário
• Árvore Geradora Mínima • Caminho Mínimo • Fluxo Máximo
ÁRVORE GERADORA MÍNIMA
Árvore Geradora Mínima
• Árvore: grafo conexo sem ciclo. • Árvore Geradora de G(V,A): é uma árvore contendo todos os vérAces do grafo G
• Árvore Geradora Mínima de G(V,A): árvore geradora de G, cuja soma dos pesos de suas arestas é mínima.
• Aplicação: problemas de comunicação e conexão
Árvore Geradora Mínima
• Teoremas: – T1: Todo grafo conexo tem pelo menos uma árvore geradora. Um grafo desconexo é composto por uma floresta de árvores geradoras.
– T2: Dado o grafo G(V,A), sendo n = |V|. Seja a árvore geradora AG(V,A’), então |A’|=n-‐1.
– T3: Dado o grafo G(V,A), A(V’,A’) é uma árvore de G se a remoção de qualquer aresta torna o grafo desconexo
– T4: Dado o grafo G(V,A), A(V’,A’) é uma árvore de G se a inserção de qualquer aresta de A em A’ acrescenta um único ciclo em A.
Árvore Geradora Mínima
• Exemplo: Fundação Zoo-‐Botânica – Problema: Criação de postos de informações em todos os setores a fundação. Onde passar as linhas telefônicas de forma que todos os postos fiquem conectados?
Árvore Geradora Mínima
Fig.2 – Fundação Zoo-‐Botânica Disponível em:www.pbh.gov.br/zoobotanica
6
5
5
6
3
7
6 4
4
3
3 5
4
3
Árvore Geradora Mínima
9 Algoritmos em Grafos
Árvore Geradora de Peso Mínimo
Exemplo:
9 D
A
E
B
C
F 3
4
8 4
7
2
2
5 9
árvore geradora peso = 15
D
A B
C
E F
árvore geradora peso = 24
D
A
E
B
C
F
3
4
8 4 5
3
4
4
2
2
Árvore Geradora Mínima
• Sabemos que uma árvore geradora mínima resolve o problema da fundação zoo-‐botânica, mas como encontrar uma árvore geradora mínima?
• Algoritmos: – Algoritmo de Kruskal – Algoritmo de Prim
11 Algoritmos em Grafos
Árvore Geradora de Peso Mínimo
Dados: G = (V,E) grafo não-‐orientado, com |V|=n e |E|=m
peso c(e), ∀e ∈ E
Problema Obter F ⊆ E tal que:
o grafo G’=(V,F) é acíclico e conexo (G’ é gerador de G) c(F) = Σe∈Ec(e) é mínimo
12 Algoritmos em Grafos
Árvore Geradora de Peso Mínimo
Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso mínimo.
Algoritmo de Kruskal
Prova: Suponha que a aresta de peso mínimo não pertença à solução
ótima. Inserindo-se a aresta de peso mínimo nesta solução ótima,
obtém-se um ciclo. Pode-se obter uma nova árvore geradora removendo-se a
aresta de maior peso. Esta nova árvore geradora teria peso menor do que a anterior,
portanto aquela solução não poderia ser ótima.
13 Algoritmos em Grafos
Árvore Geradora de Peso Mínimo
Criar uma lista L com as arestas ordenadas em ordem crescente de pesos. Criar |V| subárvores contendo cada uma um nó isolado. F ← ∅ contador ← 0 Enquanto contador < |V|-1 e L ≠ ∅ faça Seja (u,v) o próximo arco de L. L ← L – {(u,v)} Se u e v não estão na mesma subárvore então F ← F ∪ {(u,v)} Unir as subárvores que contêm u e v. contador ← contador + 1 fim-se fim-enquanto
Algoritmo de Kruskal
14 Algoritmos em Grafos
Exemplo:
Árvore Geradora de Peso Mínimo
8 3
9 D
A
E
B
C
F
4
4
7
2 2
5 9 e c(e)
(C,F) 2
(E,F) 2
(A,D) 3
(C,E) 3
(A,B) 4
(A,E) 4
(B,F) 5
(D,F) 7
(B,C) 8
(B,E) 9
(C,D) 9
Lista L
Subárvores
{ A } { B } { C } { D } { E } { F } { A } { B } { C, F } { D } { E }
c(F) = 2
{ A } { B } { C, E, F } { D }
c(F) = 4
{ A, D } { B } { C, E, F }
c(F) = 7
{ A, B, D } { C, E, F }
c(F) = 11
{ A, B, C, D, E, F }
c(F) = 15
3
X
15 Algoritmos em Grafos
Exemplo:
Árvore Geradora de Peso Mínimo
H
A
B
J
C
e c(e) (D,E) 1
(D,L) 2
(F,J) 2
(G,J) 2
(C,D) 3
(E,F) 3
(H,I) 3
(A,B) 4
(B,C) 4
… …
Lista L
Subárvores c(F) = 1
E
M L
G
D
I
F
4
7
4
3
7
5
6
2 2
3
1
4
2
3
8
6
4
{ A } { B } { C } { D } { E } { F }
{ G } { H } { I } { J } { L } { M }
{ A } { B } { C } { D, E } { F }
{ G } { H } { I } { J } { L } { M }
c(F) = 3
{ A } { B } { C } { D, E, L } { F }
{ G } { H } { I } { J } { M }
{ A } { B } { C } { D, E, L }
{ F, J } { G } { H } { I } { M }
c(F) = 5
{ A } { B } { C } { D, E, L }
{ F, G, J } { H } { I } { M }
c(F) = 7
{ A } { B } { C, D, E, L }
{ F, G, J } { H } { I } { M }
c(F) = 10
{ A } { B } { C, D, E, L, F, G, J }
{ H } { I } { M }
c(F) = 13
{ A } { B } { C, D, E, L, F, G, J }
{ H, I } { M }
c(F) = 16
{ A, B } { C, D, E, L, F, G, J }
{ H, I } { M }
c(F) = 20
{ A, B, C, D, E, F, G, J, L }
{ H, I } { M }
c(F) = 24
16 Algoritmos em Grafos
Exemplo:
Árvore Geradora de Peso Mínimo
H
A
B
J
C Lista L
Subárvores
E
M L
G
D
I
F
4
7
4
3
7
5
6
2 2
3
1
4
2
3
8
6
4
{ A, B, C, D, E, F, G, J, L }
{ H, I } { M }
c(F) = 24
e c(e) ... ...
(A,I) 4
(J,L) 4
(G,M) 5
(C,M) 6
(I,J) 6
(A,M) 7
(G,H) 7
(B,L) 8 { A, B, C, D, E, F, G, H, I, J, L }
{ M }
c(F) = 28
X
{ A, B, C, D, E, F, G, H, I, J, L, M }
c(F) = 33
17 Algoritmos em Grafos
Árvore Geradora de Peso Mínimo
Começar com uma árvore formada apenas por um nó qualquer do grafo, ou pela aresta de peso mínimo.
Algoritmo de Prim
A cada iteração, adicionar a aresta de menor peso que conecta um nó já conectado a um nó não-conectado.
18 Algoritmos em Grafos
Árvore Geradora de Peso Mínimo
Seja (u,v) a aresta de menor peso. F ← {(u,v)} Para i = 1,...,n faça Se c(i,u) < c(i,v) então prox(i) ← u Senão prox(i) ← v fim-para prox(u), prox(v) ← 0, contador ← 0 Enquanto contador < n-2 faça Seja j tal que prox(j)≠0 e c(j,prox(j)) é mínimo. F ← F ∪ {(j,prox(j))} prox(j) ← 0 Para i = 1,...,n faça Se prox(i) ≠ 0 e c(i,prox(i)) > c(i,j) então prox(i) ← j fim-para contador ← contador + 1 fim-enquanto
Algoritmo de Prim
19 Algoritmos em Grafos
Árvore Geradora de Peso Mínimo
Exemplo:
9 D
A
E
B
C
F 3
4
8 4
7
2 2
5 9
c(F) = 2 c(F) = 4 c(F) = 7 c(F) = 11 c(F) = 15
3
20 Algoritmos em Grafos
Árvore Geradora de Peso Mínimo
Exemplo:
c(F) = 1
H
A
B
J
C
E
M L
G
D
I
F
4
7
4
3
7
5
6
2 2
3
1
4
2
3
8
6
4
c(F) = 3 c(F) = 6 c(F) = 9 c(F) = 11 c(F) = 13 c(F) = 17 c(F) = 21 c(F) = 25 c(F) = 28 c(F) = 33
CAMINHO MÍNIMO
Caminho Mínimo
• Caminho: seqüência de arcos (a1,a2,a3,...,an) tais que, cada arco ai, com exceção do primeiro e do úlAmo, é ligado ao arco ai-‐1 por um extremidade e ai+1 por outra.
• “Caminho mínimo entre u e v é uma seqüência de arestas que, passando por vérAces disAntos, liga u e v de forma a acumular o menor comprimento .” (Goldberg,2000)
Caminho Mínimo
• Exemplo: Fundação Zoo-‐Botânica – Problema: Como idenAficar o caminho mais curto entre as portarias da fundação zoo-‐botânica?
Árvore Geradora Mínima
Fig.3 – Fundação Zoo-‐Botânica Disponível em:www.pbh.gov.br/zoobotanica
Caminho Mínimo
Origem
DesAno
Transbordo
T
O
D
T
D
T T
T
T
T
T
T
T
O T
T
T
T 1
1
2
3
3 3
3
4 4
4
4 4
4
4
5
4
5
5 2
5
5
4 5
6
5
6
7
7
2
1
T
Caminho Mínimo • Um motorista procura o caminho mais curto entre DiamanAna e Ouro Preto. Possui mapa com as distâncias entre cada par de interseções adjacentes.
• Modelagem: – G = (V;A): grafo direcionado ponderado, mapa rodoviário.
– V : interseções. – A: segmentos de estrada entre interseções – p(u; v): peso de cada aresta, distância entre interseções.
Caminho Mínimo • Caminhos mais curtos a parAr de uma origem:
– dado um grafo ponderado G = (V;A), desejamos obter o caminho mais curto a parAr de um dado vérAce origem s ∈ V até cada v ∈ V .
• Muitos problemas podem ser resolvidos pelo algoritmo para o problema origem única: – Caminhos mais curtos com desXno único: reduzido ao problema origem única invertendo a direção de cada aresta do grafo.
– Caminhos mais curtos entre um par de vérXces: o algoritmo para origem única é a melhor opção conhecida.
– Caminhos mais curtos entre todos os pares de vérXces: resolvido aplicando o algoritmo origem única |V | vezes, uma vez para cada vérAce origem.
Caminho Mínimo
• Como encontrar um caminho mínimo em um grafo?
• Algoritmos:
– Algoritmo Dijkstra
Algoritmo de Dijkstra
• Mantém um conjunto S de vérAces cujos caminhos mais curtos até um vérAce origem já são conhecidos.
• Produz uma árvore de caminhos mais curtos de um vérAce origem s para todos os vérAces que são alcançáveis a parAr de s.
30
Exemplo
• Encontrar o caminho mais curto entre s e t
s
3
t
2
6
7
4
5
24
18
2
9
14
15 5
30
20
44
16
11
6
19
6
31
Outro Exemplo
s
3
t
2
6
7
4
5
24
18
2
9
14
15 5
30
20
44
16
11
6
19
6
∞
∞ ∞
∞
∞
∞
∞
0
distance label
S = { } PQ = { s, 2, 3, 4, 5, 6, 7, t }
32
Outro Exemplo
s
3
t
2
6
7
4
5
24
18
2
9
14
15 5
30
20
44
16
11
6
19
6
∞
∞ ∞
∞
∞
∞
∞
0
distancia
S = { } PQ = { s, 2, 3, 4, 5, 6, 7, t }
menor
33
Outro Exemplo
s
3
t
2
6
7
4
5
24
18
2
9
14
15 5
30
20
44
16
11
6
19
6
15
9 ∞
∞
∞
14
∞
0
distance label
S = { s } PQ = { 2, 3, 4, 5, 6, 7, t }
Decrementa
∞ X
∞
∞ X
X
34
Outro Exemplo
s
3
t
2
6
7
4
5
24
18
2
9
14
15 5
30
20
44
16
11
6
19
6
15
9 ∞
∞
∞
14
∞
0
distance label
S = { s } PQ = { 2, 3, 4, 5, 6, 7, t }
∞ X
∞
∞ X
X
menor
35
Outro Exemplo
s
3
t
2
6
7
4
5
24
18
2
9
14
15 5
30
20
44
16
11
6
19
6
15
9 ∞
∞
∞
14
∞
0
S = { s, 2 } PQ = { 3, 4, 5, 6, 7, t }
∞ X
∞
∞ X
X
36
Outro Exemplo
s
3
t
2
6
7
4
5
24
18
2
9
14
15 5
30
20
44
16
11
6
19
6
15
9 ∞
∞
∞
14
∞
0
S = { s, 2 } PQ = { 3, 4, 5, 6, 7, t }
∞ X
∞
∞ X
X
Decrementa
X 33
37
Outro Exemplo
s
3
t
2
6
7
4
5
24
18
2
9
14
15 5
30
20
44
16
11
6
19
6
15
9 ∞
∞
∞
14
∞
0
S = { s, 2 } PQ = { 3, 4, 5, 6, 7, t }
∞ X
∞
∞ X
X
X 33
menor
38
Outro Exemplo
s
3
t
2
6
7
4
5
24
18
2
9
14
15 5
30
20
44
16
11
6
19
6
15
9 ∞
∞
∞
14
∞
0
S = { s, 2, 6 } PQ = { 3, 4, 5, 7, t }
∞ X
∞
∞ X
X
X 33
44 X
X
32
39
Outro Exemplo
s
3
t
2
6
7
4
5
24
18
2
9
14
15 5
30
20
44
16
11
6
19
6
15
9
∞
∞
14
∞
0
S = { s, 2, 6 } PQ = { 3, 4, 5, 7, t }
∞ X
∞
∞ X
X
44 X
menor
∞ X 33 X
32
40
Outro Exemplo
s
3
t
2
6
7
4
5
18
2
9
14
15 5
30
20
44
16
11
6
19
6
15
9
∞
∞
14
∞
0
S = { s, 2, 6, 7 } PQ = { 3, 4, 5, t }
∞ X
∞
∞ X
X
44 X
35 X
59 X
24
∞ X 33 X
32
41
Outro Exemplo
s
3
t
2
6
7
4
5
24
18
2
9
14
15 5
30
20
44
16
11
6
19
6
15
9
∞
∞
14
∞
0
S = { s, 2, 6, 7 } PQ = { 3, 4, 5, t }
∞ X
∞
∞ X
X
44 X
35 X
59 X
menor
∞ X 33 X
32
42
Outro Exemplo
s
3
t
2
6
7
4
5
24
18
2
9
14
15 5
30
20
44
16
11
6
19
6
15
9
∞
∞
14
∞
0
S = { s, 2, 3, 6, 7 } PQ = { 4, 5, t }
∞ X
∞
∞ X
X
44 X
35 X
59 X X 51
X 34
∞ X 33 X
32
43
Outro Exemplo
s
3
t
2
6
7
4
5
18
2
9
14
15 5
30
20
44
16
11
6
19
6
15
9
∞
∞
14
∞
0
S = { s, 2, 3, 6, 7 } PQ = { 4, 5, t }
∞ X
∞
∞ X
X
44 X
35 X
59 X X 51
X 34
menor
∞ X 33 X
32
24
44
Outro Exemplo
s
3
t
2
6
7
4
5
18
2
9
14
15 5
30
20
44
16
11
6
19
6
15
9
∞
∞
14
∞
0
S = { s, 2, 3, 5, 6, 7 } PQ = { 4, t }
∞ X
∞
∞ X
X
44 X
35 X
59 X X 51
X 34
24
X 50
X 45
∞ X 33 X
32
45
Outro Exemplo
s
3
t
2
6
7
4
5
18
2
9
14
15 5
30
20
44
16
11
6
19
6
15
9
∞
∞
14
∞
0
S = { s, 2, 3, 5, 6, 7 } PQ = { 4, t }
∞ X
∞
∞ X
X
44 X
35 X
59 X X 51
X 34
24
X 50
X 45
menor
∞ X 33 X
32
46
Outro Exemplo
s
3
t
2
6
7
4
5
18
2
9
14
15 5
30
20
44
16
11
6
19
6
15
9
∞
∞
14
∞
0
S = { s, 2, 3, 4, 5, 6, 7 } PQ = { t }
∞ X
∞
∞ X
X
44 X
35 X
59 X X 51
X 34
24
X 50
X 45
∞ X 33 X
32
47
Outro Exemplo
s
3
t
2
6
7
4
5
18
2
9
14
15 5
30
20
44
16
11
6
19
6
15
9
∞
∞
14
∞
0
S = { s, 2, 3, 4, 5, 6, 7 } PQ = { t }
∞ X
∞
∞ X
X
44 X
35 X
59 X X 51
X 34
X 50
X 45
menor
∞ X 33 X
32
24
48
Outro Exemplo
s
3
t
2
6
7
4
5
24
18
2
9
14
15 5
30
20
44
16
11
6
19
6
15
9
∞
∞
14
∞
0
S = { s, 2, 3, 4, 5, 6, 7, t } PQ = { }
∞ X
∞
∞ X
X
44 X
35 X
59 X X 51
X 34
X 50
X 45
∞ X 33 X
32
49
Outro Exemplo
s
3
t
2
6
7
4
5
24
18
2
9
14
15 5
30
20
44
16
11
6
19
6
15
9
∞
∞
14
∞
0
S = { s, 2, 3, 4, 5, 6, 7, t } PQ = { }
∞ X
∞
∞ X
X
44 X
35 X
59 X X 51
X 34
X 50
X 45
∞ X 33 X
32
Exemplo
Exemplo
FLUXO MÁXIMO
Introdução
• Mapa rodoviário à grafo orientado à encontrar o menor caminho de um ponto a outro.
• Grafo orientado pode representar também um “fluxo em rede” à fluxo de materiais.
• Ex: Material percorrendo um sistema desde uma origem, onde o material é produzido, até um sorvedor, onde ele é consumido. – Origem produz material em alguma taxa fixa e o sorvedor consome o material na mesma taxa.
17/04/18 Luciana Assis – Algoritmos e Estrutura de Dados III -‐ UFVJM 53
Aplicações
• O fluxo em redes pode ser usado para modelar líquidos fluindo por tubos, peças de linha de montagem, corrente por redes elétricas, informações por redes de comunicação e assim por diante.
17/04/18 Luciana Assis – Algoritmos e Estrutura de Dados III -‐ UFVJM 54
Exemplo
Exemplo
Solução ÓAma
Modelagem • Cada aresta orientada em um fluxo de rede representa um canal para o material.
• Cada canal tem uma capacidade estabelecida. • VérAces são junções de canais e, exceto origem e sorvedor, a taxa na qual o material entra no vérAce deve ser igual a taxa em que ele deixa o vérAce à Conservação de Fluxo
• ObjeAvo: Calcular a maior taxa na qual o material pode ser enviado desde a origem até o sorvedor sem violar quaisquer restrições de capacidade dos canais (arestas).
17/04/18 Luciana Assis – Algoritmos e Estrutura de Dados III -‐ UFVJM 57
Fluxo em Redes
• Grafo orientado em que cada aresta tem uma capacidade não negaAva.
• DisAnguimos dois vérAces em um fluxo em rede: – Origem (s) – Sorvedor (t)
• Consideramos que existe um caminho s àvà t.
17/04/18 Luciana Assis – Algoritmos e Estrutura de Dados III -‐ UFVJM 58
Fluxo • Fluxo em G saAsfaz às três propriedades seguintes: – Restrição de capacidade: Nenhuma aresta pode transportar mais que sua capacidade à f(u,v) ≤ c(u,v)
– AnA-‐simetria oblíqua: Se existe um fluxo de u até v, então existe um fluxo inverso de v até u à f(u,v)=-‐ f(v,u)
– Conservação de fluxo: Fluxo de entrada = Fluxo de saída à Σu∈V f(u,v) = 0.
• Isso garante que: – não existe acumulo nos nós interiores; – os nós interiores não produzem o item transportado; – Eles apenas repassam... (roteamento)
17/04/18 Luciana Assis – Algoritmos e Estrutura de Dados III -‐ UFVJM 59
Redes Residuais
• A rede residual Gf consiste em arestas que podem admiAr mais fluxo.
• Seja f um fluxo em G, e considere um par de vérAces u,v ∈ V: – A quanAdade de fluxo adicional que podemos “empurrar” de u para v antes de exceder a capacidade c(u,v) é a capacidade residual.
17/04/18 Luciana Assis – Algoritmos e Estrutura de Dados III -‐ UFVJM 60
Capacidade residual
• Capacidade Residual (cf): – cf (u, v) = c(u,v) -‐ f (u, v)
• Exemplo: – Capacidade de a para b é de 10Kbps; – Estamos uAlizando 2Kbps; – Então, a capacidade residual é 8Kbps...
17/04/18 Luciana Assis – Algoritmos e Estrutura de Dados III -‐ UFVJM 61
Aresta Residual • Aresta da rede residual, ou seja, pode admiAr ainda algum fluxo maior que 0.
• Aresta de Gf
17/04/18 Luciana Assis – Algoritmos e Estrutura de Dados III -‐ UFVJM 62
Fluxo
Capacidade
Caminhos Aumentantes • Caminho aumentante p é um caminho simples desde s até t na rede residual Gf.
• Pela definição de rede residual, cada aresta (u,v) em um caminho aumentante admite algum fluxo posiAvo adicional de u até v sem violar a restrição de capacidade sobre a aresta.
• A quanAdade máxima pela qual podemos aumentar o fluxo em cada aresta de um caminho aumentante p de capacidade residual de p, dada por: – cf(p) = min{cf(u,v) | (u,v) ∈p}
17/04/18 Luciana Assis – Algoritmos e Estrutura de Dados III -‐ UFVJM 63
Problema de Fluxo Máximo
• fonte s e depósito t. • c(u,v) = capacidade máxima do arco
• f(u,v) = fluxo entre vérAces u e v.
Rede G(V,E)
17/04/18 Luciana Assis – Algoritmos e Estrutura de Dados III -‐ UFVJM 64
Problema de Fluxo Máximo
• cf:Capacidade residual • Rf: Rede residual • Caminhos Aumentantes
2
2
3
1
1
1
0
0
cf(d,t) = 2
Rede G(V,E)
17/04/18 Luciana Assis – Algoritmos e Estrutura de Dados III -‐ UFVJM 65
Corte de Fluxo em Redes
• Corte (S,T) de um fluxo em rede G=(V,E) é uma parAção de V em S e T, tal que s ∈ S e t ∈ T.
• Se f é um fluxo, então o fluxo líquido pelo corte (S,T) é definido como f(S,T). – Somatório do fluxo (posiAvo e negaAvo) do corte
• Capacidade do corte (S,T) é c(S,T) – somatório das capacidades posiAvas do corte.
• Corte Mínimo: Capacidade mínima dentre todos os cortes possíveis.
17/04/18 Luciana Assis – Algoritmos e Estrutura de Dados III -‐ UFVJM 66
Problema de Fluxo Máximo
• Corte • Fluxo Líquido • Capacidade do Corte • Teorema de Fluxo Máximo e Corte Mínimo
Rede G(V,E) 17/04/18 Luciana Assis – Algoritmos e Estrutura de Dados III -‐ UFVJM 67
2
2
3
1
1
1
0
0
f(S,T) = 3 – 1 –0 + 1 = 3 c(S,T) = 3 + 3 = 6 c(S,T) = 2 + 3 = 5
Teorema de Fluxo Máximo e Corte Mínimo
• Em qualquer grafo direcionado (digrafo) capacitado com vérAce inicial e vérAce final, a intensidade de um fluxo máximo que respeita as capacidades é igual à capacidade de um corte mínimo que separa o vérAce inicial do final.
Problema de Fluxo Máximo
• Esse problema consiste em calcular o maior volume de itens que podem ser transportados entre duas localizações sem violar as restrições de capacidades dos canais de comunicação da rede.
17/04/18 Luciana Assis – Algoritmos e Estrutura de Dados III -‐ UFVJM 69
Algoritmo Corte Mínimo
• Enumerar todos os cortes possíveis. • O corte com menor capacidade indica o maior fluxo possível na rede.
• Problema: A enumeração de todos os cortes é inviável para problemas de grande magnitude.
Problema de Fluxo Máximo
• Algoritmo Ford e Fulkerson (1962): Enquanto exisAr caminho aumentante s-‐>t Encontra caminho aumentante “p” Encontra capacidade residual mínima de p Cf(p) = Min{Cf(u,v), ∀ (u,v) ∈ p} f(u,v) += Cf (p), ∀ (u,v) ∈ p Fim.
17/04/18 Luciana Assis – Algoritmos e Estrutura de Dados III -‐ UFVJM 71
Exemplo
2
2
2
2 2
2
2
3
2
2
2
2
3
1
2
2
1
0
0
0
1
1
1
0
1
2
2
0
3
0
Referências • [1] CORMEN T.H., LEISERSON C.E., RIVEST R.L., STEIN C., Algoritmos:
Teoria e Prática, Campus, 2002. • [2] MALHOTRA V.M., PRAMODTH M., MAHESHWARI S.N., “An o(v3)
algorithm for finding maximum flows in networks,” Information Processing Latters, vol. 7, no. 6, Outubro 1978.
• [3] GOLDBARG Marco Cesar LUNA Henrique Pacca, Otimização Combinatória e Programação Linear, Campus, 2000.
• [4] BAZARAA Mokhtar S., JARVIS John J., SHERALI Hanif D., Linear Programming and Network Flows, Wiley.
17/04/18 Luciana Assis – Algoritmos e Estrutura de Dados III -‐ UFVJM 73
top related