73
Fluxo em Redes Luciana Assis

Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

  • Upload
    vodang

  • View
    230

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

Fluxo  em  Redes  

Luciana  Assis  

Page 2: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

Sumário  

•  Árvore  Geradora  Mínima  •  Caminho  Mínimo  •  Fluxo  Máximo  

Page 3: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

ÁRVORE  GERADORA  MÍNIMA  

Page 4: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

Á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  

Page 5: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

Á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.  

Page 6: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

Á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?  

Page 7: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

Árvore  Geradora  Mínima  

Fig.2  –  Fundação  Zoo-­‐Botânica  Disponível  em:www.pbh.gov.br/zoobotanica  

 

Page 8: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

6  

5  

5  

6  

3  

7  

6  4  

4  

3  

3  5  

4  

3  

Árvore  Geradora  Mínima  

Page 9: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 10: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

Á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  

Page 11: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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

Page 12: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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.

Page 13: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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

Page 14: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 15: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 16: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 17: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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.

Page 18: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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

Page 19: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 20: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 21: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

CAMINHO  MÍNIMO  

Page 22: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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)    

Page 23: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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?  

Page 24: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

Árvore  Geradora  Mínima  

Fig.3  –  Fundação  Zoo-­‐Botânica  Disponível  em:www.pbh.gov.br/zoobotanica  

 

Page 25: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 26: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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.  

Page 27: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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.  

Page 28: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

Caminho  Mínimo  

•  Como  encontrar  um  caminho  mínimo  em  um  grafo?  

 •  Algoritmos:  

– Algoritmo  Dijkstra  

Page 29: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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.  

Page 30: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 31: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  }  

Page 32: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 33: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 34: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 35: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 36: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 37: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 38: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 39: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 40: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 41: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 42: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 43: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 44: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 45: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 46: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 47: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 48: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 49: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 50: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

Exemplo  

Page 51: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

Exemplo  

Page 52: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

FLUXO  MÁXIMO  

Page 53: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 54: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 55: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

Exemplo  

Page 56: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

Exemplo  

Solução  ÓAma  

Page 57: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 58: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 59: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 60: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 61: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 62: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 63: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 64: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 65: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 66: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 67: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 68: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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.    

Page 69: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 70: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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.  

Page 71: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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  

Page 72: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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

Page 73: Fluxo&em&Redes& - lucianaassis.pro.br · Algoritmos&em&Grafos& 12 Árvore&Geradorade&Peso& Mínimo& Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso

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