Vous êtes sur la page 1sur 65

Faculdade de Engenharia - Campus de Guaratinguet

Pesquisa Operacional

Livro: Introduo Pesquisa Operacional


Captulo 3 - Teoria dos Grafos

Fernando Marins fmarins@feg.unesp.br


Departamento de Produo

Sumrio
Introduo
Histrico
Aplicaes de grafos
Conceitos e Notao
Representaes de um grafo
Tipos de grafos
Problemas tpicos e Algoritmos
Caminho timo - Algoritmo de Djisktra
rvore tima - Algoritmo de Kruskal
Fluxo Mximo - Algoritmo de Ford - Fulkerson
Pesquisa Operacional - UNESP / Campus de Guaratinguet

Introduo
Histrico
Euler resolveu o problema das pontes de Knigsberg do rio Pregel, em
1736, utilizando um modelo de grafos: partir de uma das 4 regies,
atravessar cada ponte uma nica vez e retornar regio de partida.

Figura 1. Rio Pregel e suas sete pontes.


Pesquisa Operacional - UNESP / Campus de Guaratinguet

Figura 2. Leonhard Euler.


3

Introduo

Figura 3. Knigsberg -Kalinigrado nos tempos atuais.


Pesquisa Operacional - UNESP / Campus de Guaratinguet

Introduo

Figura 4. Modelo de Grafo para o Rio Pregel e suas sete pontes.

Modelo de grafos utilizado por Euler para demonstrar que o


problema no tem soluo.
Para haver soluo necessrio que cada regio tenha um
nmero par de pontes associadas.
Pesquisa Operacional - UNESP / Campus de Guaratinguet

Introduo
Aplicaes de modelos em grafos
1.

Grafos planares: problemas de montagens/ trevos


A, B, C : linhas de montagens/
rodovias principais
D1, D2, D3: departamentos/
rodovias secundrias
Ligaes: esteiras/ viadutos ou
tneis
Figura 3. Um problema de montagem.

Pesquisa Operacional - UNESP / Campus de Guaratinguet

Introduo
2.

Problemas de Localizao

Existindo n cidades consumidoras do produto fabricado


por uma determinada empresa, deseja-se saber onde seria o
melhor local para a instalao de uma filial desta empresa que
atendesse as n cidades com menor custos de distribuio do
produto.
Existem algoritmos prprios para este problema, alm de
vrias heursticas que possuem bom desempenho.

Pesquisa Operacional - UNESP / Campus de Guaratinguet

Notao
Representaes de um grafo G
1. G(V, A) onde:
V = Conjunto de vrtices ou ns do grafo
A = Conjunto de arcos ou arestas do grafo
2. Diagramas e tipos de grafos
2
a

Grafo
c No- orientado

1
b

4
c

b
d

2
f

e
3

Pesquisa Operacional - UNESP / Campus de Guaratinguet

Grafo Orientado

Notao
3. Matriz de adjacncia (grafo no-orientado)
1, se aresta do n i ao n j
A = (aij) =
0, se aresta do n i ao n j

2
a

1
b

1 0 1 1

A = 2 1 0 1

3 1 1 0
1 2 3

Pesquisa Operacional - UNESP / Campus de Guaratinguet

Notao
4. Matriz de incidncia (grafos orientados)

A = [aij] a matriz (no necessariamente quadrada) de


incidncia de G se 1, se o arco j sai do n i

aij - 1, se o arco j chega no n i


0, se o arco j no incidente ao n i

4
c

b
d

2
f

e
3

Pesquisa Operacional - UNESP / Campus de Guaratinguet

10

Grafo Valorado
Grafo com as distncias de So Paulo a 3 capitais:
400
700

Belo

So Paulo

Rio de
Janeiro

1500

Horizonte

Braslia

Pesquisa Operacional - UNESP / Campus de Guaratinguet

11

Grafos Especiais
Para o grafo G abaixo: rvore, cadeia, caminho, ciclo e circuito
d

a
j

c
f
h
b

Pesquisa Operacional - UNESP / Campus de Guaratinguet

12

rvore
1. rvore (arborescncia): grafo conexo sem ciclos
d
a

j
h

b
g

Pesquisa Operacional - UNESP / Campus de Guaratinguet

13

Cadeia
2. Cadeia: seqncia de arcos com extremidade em comum
d
l
a

j
h

Pesquisa Operacional - UNESP / Campus de Guaratinguet

14

Caminho
3. Caminho: seqncia de arcos com mesma orientao

c
f

Pesquisa Operacional - UNESP / Campus de Guaratinguet

15

Ciclo e Circuito
4. Ciclo: cadeia fechada

d
l

i
b

5. Circuito: caminho fechado

a
c
b

Pesquisa Operacional - UNESP / Campus de Guaratinguet

16

Problemas e Algoritmos
Otimizao em grafos
1. Determinao de rvores timas: Algoritmo de Kruskal
2. Determinao de Caminhos timos: Algoritmo de Djisktra
3. Determinao de Fluxo Mximo: Algoritmo de Ford &
Fulkerson

Pesquisa Operacional - UNESP / Campus de Guaratinguet

17

Algoritmo de Kruskal
Histrico
Em 1956 o matemtico americano
Joseph
Kruskal
(29/01/192819/09/2010) props um algoritmo
para resoluo do Problema da
rvore Mnima.
Ele completou seu Ph.D. na
Universidade de Princeton em
1954.

Pesquisa Operacional - UNESP / Campus de Guaratinguet

Figura 5. Joseph Kruskal.

18

Algoritmo de Kruskal
Determinao de uma rvore mnima num grafo G (V, A)
Para cada aresta (i, j) existe um custo associado C ij.
|V| = cardinalidade do conjunto de ns V = nmero de ns.

Passo 1. Considerar o grafo trivial formado apenas pelos ns de G


Passo 2. Construo da rvore
Acrescentar ao grafo trivial a aresta (i, j) associada ao menor valor
de custo Cij.
Repetir o procedimento respeitando a ordem crescente de valores de
Cij, desde que a aresta analisada no forme ciclo com as arestas j
incorporadas rvore.
Aps incorporar |V| - 1 arestas Parar! A rvore mnima foi obtida.
Pesquisa Operacional - UNESP / Campus de Guaratinguet

19

Exemplo para o Algoritmo de Kruskal


Determinar uma rvore mnima
6

B
2

11
E

J
10

3
9

1
4

8
H

Pesquisa Operacional - UNESP / Campus de Guaratinguet

I
20

Exemplo para o Algoritmo de Kruskal


Passo 1: Grafo trivial

Pesquisa Operacional - UNESP / Campus de Guaratinguet

21

Exemplo para o Algoritmo de Kruskal


Passo 2:
A primeira aresta a ser incorporada ser a aresta associada ao valor
de custo = 1. Observe-se que h duas arestas nestas condies:
aresta (a, b) e aresta (c, d).
Pode-se escolher arbitrariamente qual delas ser incorporada
primeiro ao grafo trivial.
A seguir incorpore a outra (observe que elas no formam ciclo).

Pesquisa Operacional - UNESP / Campus de Guaratinguet

22

Exemplo para o Algoritmo de Kruskal


rvore parcial: colocar as arestas com custo 1
A

D
1

1
B

Pesquisa Operacional - UNESP / Campus de Guaratinguet

23

Exemplo para o Algoritmo de Kruskal


A seguir tem-se as arestas (b, e) e (b, f)
correspondentes aos custo com valor 2.
Analogamente ao caso anterior pode-se optar por
qualquer uma elas para ser analisada primeiro.
Ambas sero incorporadas ao grafo resultante da
operao anterior, pois tambm no formam ciclo.

Pesquisa Operacional - UNESP / Campus de Guaratinguet

24

Exemplo para o Algoritmo de Kruskal


rvore parcial: colocar as arestas com custo 2.
A

D
1

1
B

2
E

Pesquisa Operacional - UNESP / Campus de Guaratinguet

25

Exemplo para o Algoritmo de Kruskal


rvore parcial: colocar a aresta com custo 3.
A

D
1

1
B

2
3
E

Pesquisa Operacional - UNESP / Campus de Guaratinguet

26

Exemplo para o Algoritmo de Kruskal


rvore parcial: colocar as arestas com custo 4.
A

D
1

1
4
B

2
3
E
4

Pesquisa Operacional - UNESP / Campus de Guaratinguet

27

Exemplo para o Algoritmo de Kruskal


rvore parcial: colocar uma das duas arestas com custo 5, a outra
ser descartada.
5
A

1
B

2
3
E
4

Pesquisa Operacional - UNESP / Campus de Guaratinguet

28

Exemplo para o Algoritmo de Kruskal


Como o nmero de ns 10 prossegue-se neste processo at que sejam
incorporadas 10 - 1 = 9 arestas, sendo obtida uma rvore mnima:
5
1

4
2

3
4

Observe que esta uma soluo tima do problema.


Custo timo: 1 + 1 + 2 + 2 + 3 + 4 + 4 + 5 + 8 = 30.
Pesquisa Operacional - UNESP / Campus de Guaratinguet

29

Algoritmo de Dijsktra
Histrico
Em 1956 o cientista da computao
holands Edsger Wybe Dijkstra concluiu o
desenvolvimento do algoritmo para o
problema do caminho mnimo mas
somente em 1959 foi publicado seu
trabalho.
Este algoritmo foi o seu primeiro trabalho
e o mais conhecido.
Edsger Wybe Dijkstra nasceu em 11 de
maio de 1930 e morreu em 6 de agosto de
2002.
Cincia no estuda ferramentas,
mas o que fazemos e o que
descobrimoscomelas. Edsger Dijkstra
Pesquisa Operacional - UNESP / Campus de Guaratinguet

Figura 6. Edsger Wybe Dijkstra


.
30

Algoritmo de Dijsktra
Problema do Caminho timo
Determinao de caminhos mnimos em grafos valorados.
Princpio de Otimalidade de Bellman:
Um caminho mnimo constitudo de sub-caminhos mnimos
Aplica-se a grafos valorados onde no h laos, arcos paralelos
e todos valores associados aos arcos so no-negativos.
Achar caminho timo entre dois ns (origem = S e destino = T)
de um grafo.

Pesquisa Operacional - UNESP / Campus de Guaratinguet

31

Algoritmo de Dijsktra
Aspectos Gerais
Adota a tcnica de rotulao dos ns, havendo dois tipos de
rtulos: rtulos temporrios e rtulos definitivos.

A cada iterao, alguns ns so rotulados temporariamente e


apenas um n rotulado definitivamente.
O valor
do rtulo
definitivo associado a um n j
corresponde ao valor da distncia mnima entre o n origem S e o
n j.
A execuo do algoritmo termina quando se consegue rotular
definitivamente o n destino T.
Pesquisa Operacional - UNESP / Campus de Guaratinguet

32

Algoritmo de Djisktra
1. Inicializao
2. Atualizao dos rtulos temporrios
3. Rotulao Definitiva de um n
4. Passo geral
1. Inicializao
Rotular definitivamente o n origem S com valor 0.
Rotular temporariamente os demais ns com valor .

Pesquisa Operacional - UNESP / Campus de Guaratinguet

33

Algoritmo de Djisktra
2. Atualizao dos rtulos temporrios
Todo n j ainda no rotulado definitivamente deve receber
novo valor de rtulo dado por
Min {rtulo atual do n j, rtulo do n i + cij},
onde,
i = ltimo n rotulado definitivamente
cij = valor associado ao arco que liga os ns i e j.
Pesquisa Operacional - UNESP / Campus de Guaratinguet

34

Algoritmo de Djisktra
3. Rotulao definitiva
Comparar os rtulos temporrios e escolher para ser
rotulado definitivamente o n j associado ao menor
valor.
4. Passo geral
Repetir sucessivamente os passos 2 e 3 at rotular
definitivamente o n destino T.
O valor da distncia mnima entre os ns S e T o
valor do rtulo definitivo do n destino T.
Pesquisa Operacional - UNESP / Campus de Guaratinguet

35

Obteno dos ns do caminho mnimo


A partir do n t achar qual foi o n i do passo 2 responsvel
pelo valor de seu rtulo definitivo. Suponha que tenha sido o
n k.
A partir do n k achar qual foi o n i do passo 2 responsvel
pelo valor de seu rtulo definitivo. Suponha que tenha sido o
n h.
Repetir este processo at que o n i seja o n origem s
Os ns i encontrados em cada etapa deste processo de busca
sero os ns intermedirios do caminho mnimo entre s e t.
Pesquisa Operacional - UNESP / Campus de Guaratinguet

36

Exemplo para Caminho timo


Achar a distncia mnima entre os ns S e T:

2
A

7
S

1
2

E
4

1
B

4
3

Pesquisa Operacional - UNESP / Campus de Guaratinguet

10

7
6
D

37

Algoritmo de Djisktra
Resoluo completa do exemplo de caminho mnimo
Aplicao do Algoritmo de Djisktra - Tabela completa
Rtulos
Explicao
S A B C E D T
Vetor com ns do grafo
0*
Passo 1 - Inicializao
0* 7 1
Passo 2 com i = S
0* 7 1*
Passo 3 - Rot. Def. N B
0* 4 1* 5 4
Passo 2 com i = B
0* 4 1* 5 4*
Passo 3 - Rot. Def. N D
0* 4 1* 14 5 4* 11
Passo 2 com i = D
0* 4* 1* 14 5 4* 11
Passo 3 - Rot. Def. N A
0* 4* 1* 12 5 4* 11
Passo 2 com i = A
0* 4* 1* 12 5* 4* 11
Passo 3 - Rot. Def. N E
0* 4* 1* 12 5* 4* 7
Passo 2 com i = E
0* 4* 1* 12 5* 4* 7*
Passo 3 - Rot. Def. N T (parar!)
Pesquisa Operacional - UNESP / Campus de Guaratinguet

38

Algoritmo de Djisktra
Distncia mnima entre os ns S e T = 7 = Rtulo definitivo do n T.
Recuperao do caminho mnimo (timo):
Valor do rtulo definitivo do n T = 7 sendo o n i responsvel = E
Valor do rtulo definitivo do n E = 5 sendo o n i responsvel = B
Valor do rtulo definitivo do n B = 1 sendo o n i responsvel = S

Pesquisa Operacional - UNESP / Campus de Guaratinguet

39

Exerccio
Achar a distncia mnima entre os ns S e T:
6

D
3

2
3

S
4

6
C

T
2

F
10

Pesquisa Operacional - UNESP / Campus de Guaratinguet

40

Anlise de Redes: Problema do Fluxo


Mximo
Histrico
Em
1956
os
matemticos
americanos Lester Randolph Ford
(nascido em 23/09/1927) e Delbert
Ray
Fulkerson
(14/08/192410/01/1976) propuseram em um
trabalho conjunto o algoritmo para
resoluo do Problema de Fluxo
Mximo.

Pesquisa Operacional - UNESP / Campus de Guaratinguet

Figura 7. Lester Randolph Ford, Jr.


.

Figura 8. Delbert Ray Fulkerson.


41
.

Anlise de Redes: Problema do Fluxo


Mximo
Rede: Formada por duas entidades - Ns, Arcos
Interesse: Comportamento da Varivel Fluxo
Exemplos:
Aplicao
Sistemas de
comunicao

Ns

Arcos

Fluxo

Satlites,
Micro ondas,
computadores fibra tica

Mensagens,
dados

Sistemas
hidrulicos

Estao de
bombeamento,
reservatrio

Tubos

gua, gs,
petrleo

Sistemas de
transportes

Intersees,
aeroportos

Estradas,
rotas areas

Veculos,
passageiros

Pesquisa Operacional - UNESP / Campus de Guaratinguet

42

Problema de Fluxo Mximo


Notao:
N fonte: S
N destino: T
Fluxo no arco (i,j): Fij = quantidade de produto no arco (i,j)
Kij = capacidade do arco (i,j) = maior fluxo possvel no arco (i,j)
Restries envolvidas:
H conservao de fluxo nos ns.
H limitao do valor de fluxo nos arcos.
Observaes:
O mtodo simplex resolve este problema.
Mtodo mais eficiente: Ford &Fulkerson.
Pesquisa Operacional - UNESP / Campus de Guaratinguet

43

Problema de Fluxo Mximo


Seja a rede abaixo. Deseja-se achar o valor do fluxo mximo que
pode ser enviado do n S ao n T, respeitando as restries de
capacidade nos arcos e a conservao de fluxo nos ns.
Sejam Kij (ou Cij) as restries de fluxo (capacidade) no arco (i, j)
1

Pesquisa Operacional - UNESP / Campus de Guaratinguet

44

Modelo de Programao Linear


Max Z = F

s. a:

F S1 + FS2 = F
F12 + F 1T = FS1 + F21 (2)
F21 + F2T = FS2 + F12
F1T + F2T = F
0 Fij Kij

(1)
(3)
(4)
(5)

Restrio (1) representa a conservao de fluxo no n fonte S.


Restries (2) e (3) representam a conservao de fluxo nos ns
intermedirios 1 e 2.
Restrio (4) representa a conservao de fluxo no n destino T.

Restrio (5) restringe os fluxos a serem no-negativos e


45
Pesquisa
Operacionalos
- UNESP
/ Campus
de Guaratinguet
respeitarem
limites
de capacidade
nos arcos.

Problema de Fluxo Mximo


Dada uma rede orientada formada por arcos onde h
restries de capacidade, deseja-se enviar a maior quantidade
(fluxo) possvel de um produto a partir de um n fonte (S) para um
n destino (T).
Fluxo de produto pode ser fluxo de eletricidade, de gua,
de informao, ou de veculos, entre outros.
Extenses:
Rede no-orientada
Mltiplas fontes e mltiplos destinos
Pesquisa Operacional - UNESP / Campus de Guaratinguet

46

Problema de Fluxo Mximo


Conceitos Bsicos
Arcos Forward para o n i: todo arco que sai do n i.
Arcos Backward para o n i: todo arco que entra no n i.
Caminho entre o n fonte e o n destino: sequncia de arcos que
se inicia no n fonte S e termina no n destino T.
Ciclo um caminho cujos ns inicial e final so os mesmos.
Seja N = conjunto de todos os ns da rede. Um Corte separando a
fonte S do destino T uma partio dos ns da rede em dois
subconjuntos denotando por S aquele que contm o n S e por S
aquele que contm o n T.
Pesquisa Operacional - UNESP / Campus de Guaratinguet

47

Problema de Fluxo Mximo


Exemplos:
Seja a rede anteriormente considerada:
1
F

N 1: arcos Forward = {(1,2),(1,T)}, arcos Backward = {(S,1),(2,1)}


Caminho: (S,1),(1,2),(2,T)
Corte: S = {S,1,2}, S = {T} capacidade = K1T + K2T
S = {S,2}, S = {1,T} capacidade = KS1 + K21 + K2T
Pesquisa Operacional - UNESP / Campus de Guaratinguet

48

Problema de Fluxo Mximo


Resultados Importantes:

O corte mnimo aquele corte com o menor valor de


capacidade associado.
Excluindo os arcos de um corte da rede no h caminho
entre os ns S e T nenhum fluxo ocorrer entre S e T.
Todo fluxo entre S e T deve se dar pelos arcos de um corte o
valor do fluxo limitado pela capacidade do corte.

Lema 1:
Se F o fluxo da fonte ao destino e (S,S) um corte o valor de
F menor ou igual a capacidade daquele corte (S,S).
Pesquisa Operacional - UNESP / Campus de Guaratinguet

49

Problema de Fluxo Mximo


Consequncias:
Todo fluxo vivel da fonte ao destino no pode exceder a
capacidade de um corte qualquer.
O fluxo mximo na rede limitado pela capacidade do
corte mnimo.

Teorema do Fluxo Mximo e do Corte Mnimo


O valor do fluxo mximo numa rede igual a capacidade
do corte mnimo.
Usando o teorema do fluxo mximo e corte mnimo podese obter o valor do fluxo mximo. Basta encontrar as capacidades
de todos os cortes existentes na rede e escolher o menor valor de
capacidade.
Pesquisa Operacional - UNESP / Campus de Guaratinguet

50

Problema de Fluxo Mximo


Princpios Bsicos do Algoritmo do Fluxo Mximo:
Encontrar um caminho pelo qual um fluxo positivo possa ser
enviado da fonte S ao destino T.
Este caminho denominado Flow Augmenting Path = caminho
com fluxo crescente CFC.
O CFC usado para enviar a maior quantidade de fluxo possvel
de S para T.
Repete-se o processo at que nenhum CFC possa ser obtido.
Pesquisa Operacional - UNESP / Campus de Guaratinguet

51

Problema de Fluxo Mximo


Rotina de rotulao adotada pelo algoritmo:
Usada para achar CFC de S para T.
1.Iniciar com o n fonte S. Dizemos que o n j pode ser rotulado se um
fluxo positivo pode ser enviado a partir de S para j.
2.Em geral a partir de qualquer n i pode-se rotular um n j se uma das
condies abaixo se verifica:
a)O arco que conecta os ns i e j do tipo Forward e o fluxo Fij neste
arco (i,j) menor que o valor da sua capacidade Kij.
b)O arco que conecta os ns i e j do tipo Backward e o fluxo Fij neste
arco (j,i) maior que zero.
3. O processo continua at que o n destino T rotulado. Tem-se ento
52
um
CFC.
Pesquisa Operacional - UNESP / Campus de Guaratinguet

Algoritmo do fluxo mximo


1. Inicializao
Obter um fluxo vivel em todos os arcos da rede. Este fluxo deve satisfazer as
restries de conservao de fluxo nos ns e as restries de capacidade nos
arcos. Inicialmente adotar fluxo nulo em todos os arcos.
2. Procura de um caminho de fluxo crescente CFC de S para T
Usar o procedimento de rotulao de ns, iniciando com o n origem e
terminando com o n destino T.
Se no for possvel obter um CFC Parar! Uma soluo tima foi obtida
o fluxo atual mximo.
Caso contrrio ir a etapa 3.
3. Aumento no valor do fluxo entre S e T
Calcular o valor mximo de fluxo que pode ser enviado pela CFC obtida na
etapa anterior.
Nos arcos Forward do CFC aumentar o fluxo de .
Nos arcos Backward do CFC diminuir o fluxo de .
Voltar etapa 2.
Pesquisa Operacional - UNESP / Campus de Guaratinguet

53

Exemplo Completo
Determinar o fluxo mximo F da fonte S ao destino T, na rede a seguir.
Os nmeros ao lado dos arcos representam suas capacidades Cij.
1

7
F

8
2

Notao: Nas prximas figuras os nmeros ao lado dos arcos


representam (Fij, Cij), onde Fij o fluxo no arco (i, j). Ns rotulados sero
marcados por asteriscos.
Etapa 1 Inicializao: Fazer Fij = 0 em todos as arcos.
Pesquisa Operacional - UNESP / Campus de Guaratinguet

54

Exemplo Completo
Etapa 2 (Figura 1) Para achar um CFC de S para T: Rotular
inicialmente S. Deste n S pode-se rotular o n 1 pois o arco (S,1) do
tipo Forward e 0 = FS1 CS1 = 7 a seguir, do n 1 pode-se rotular o n 2
pois o arco (1,2) do tipo Forward e 0 = F12 C12 = 3. Finalmente rotulase o n destino T pois o arco (2,T) do tipo Forward e 0 = F2T C2T = 8.
Isto resulta num valor de fluxo F = 0.
(0,7)
F=0

1*

(0,9)

(0,3)

S*
(0,9)

2*
Figura 1

Pesquisa Operacional - UNESP / Campus de Guaratinguet

T*

F=0

(0,8)

55

Exemplo Completo
Desta forma foi obtida uma CFA formada por arcos do tipo Forward,
(S,1), (1,2), (2,T).
Etapa 3
O fluxo mximo neste CFC dado por min {(7 - 0), (3 - 0), (8 - 0)} = 3.
Assim pode-se aumentar o fluxo entre S e T de = 3.
Os novos fluxos esto na Figura 2.
(3,7)
F=3

(0,9)
(3,3)

S
(0,9)

2
Figura 2

Pesquisa Operacional - UNESP / Campus de Guaratinguet

F=3

(3,8)

56

Exemplo Completo
Etapa 2 Repetindo o processo de rotulao de ns para a configurao da
Figura 2 obtm-se um novo CFC dado por:
v
T*

1*

S*

Etapa 3 O fluxo mximo permitido neste CFC = min {(7 -3), (9 -0)}= 4.
Isto aumenta o fluxo pela rede para F = 3 + 4 = 7.
A nova configurao de fluxos fica sendo a da Figura 3.
(7,7)
F=7

(4,9)

(3,3)

S
(0,9)

2
Figura 3

Pesquisa Operacional - UNESP / Campus de Guaratinguet

F=7

(3,8)
57

Exemplo Completo
Etapa 2 Na busca de um novo CFC, o n 1 no pode ser rotulado a partir do
n S pois o arco (S,1) Forward e agora FS1 = CS1 = 7. Mas um novo CFC
pode ser obtido rotulando-se o n 2 e depois o n T:
v
T*

2*

S*

Etapa 3 Neste CFC o fluxo pode ser aumentado de min {(9 -0), (8 -3)} = 5,
o que resulta na configurao dada pela Figura 4:

(7,7)
F = 12

(4,9)

(3,3)

S
(5,9)

F = 12

(8,8)

Figura 4
Pesquisa Operacional - UNESP / Campus de Guaratinguet

58

Exemplo Completo
Etapa 2: Partindo-se do n S pode-se rotular o n 2, a seguir rotula-se o n 1, pois
o arco (1,2) contm um fluxo positivo de 3 unidades e fica sendo Backward neste
novo CFC, finalmente a partir do n 1, pelo arco (1,T) rotula-se o n destino T:
1*

S*

v
T*

2*
Etapa 3 Neste CFC pode-se aumentar o fluxo na rede de min{(9 -5),3,(9 -4)} = 3,
pois o arco (1,2) Backward e pode ter o fluxo de 3 diminudo at zero. A nova
configurao de fluxos est na Figura 5:
(7,7)
F = 15

(7,9)

(0,3)

S
(8,9)

Pesquisa Operacional - UNESP / Campus de Guaratinguet

F = 15

(8,8)
Figura 5

59

Exemplo Completo
Etapa 2: O n 2 pode ser rotulado a partir do n S, mas nenhum outro
n pode ser rotulado a partir do n 2, ou seja, no h nenhum CFC
adicional.
Logo obteve-se o fluxo mximo de S para T dado por 15 unidades de
fluxo.
Observao: Pode-se usar o teorema de Ford & Fulkerson para provar
que o fluxo mximo de fato 15. Veja a Figura 6.

Pesquisa Operacional - UNESP / Campus de Guaratinguet

60

Exemplo Completo
(7,7)
F = 15

S*

1
(0,3)
2*

F = 15

(8,8)

Figura 6

Considere o corte que separa os ns rotulados dos no rotulados na


ltima etapa 2, ele formado pelos arcos (S,1),(1,2) e (2,T), tendo
capacidade = 15 e separa o n S do n T.
Pelo Teorema de F & F o fluxo no pode exceder a capacidade de
nenhum corte que separe o n S do n T, logo o corte em questo o
corte mnimo e o fluxo mximo = 15 igual a capacidade deste corte
mnimo.
Pesquisa Operacional - UNESP / Campus de Guaratinguet

61

Extenses para o problema de Fluxo


Mximo
Rede no-orientada: considere a rede urbana abaixo:
1

30

40

50
20

15

25

30
50
2

30
4

Maximizar o fluxo de trfego de S at T.

Pesquisa Operacional - UNESP / Campus de Guaratinguet

62

Extenses para o problema de Fluxo


Mximo
Trabalhar com modelo equivalente de redes:

40

1
15 15

S
30

30

3
20

20
50

50
T

25 25
4

30

Aplicar o algoritmo apresentado e achar Fluxo Mximo.


Se arco (i,j) no direcionado e fij > fji fluxo = (fij fji) ser
enviado de i para j.
(Adequar mo de trnsito no arco i j)
Pesquisa Operacional - UNESP / Campus de Guaratinguet

63

Extenses para o problema de Fluxo


Mximo
Mltiplas fontes e mltiplos destinos:
B
10
C
A

5
20

C
C
5
D

15

10

Capacidade
do arco

5
5

10
5

N A = Fonte com oferta produto = 20


N D = Fonte com oferta produto = 20
N E = Destino com demanda produto = 15
N H = Destino com demanda produto =20
Pesquisa Operacional - UNESP / Campus de Guaratinguet

10

C
H

10

(Oferta Total = 40)


(Demanda Total = 35)
64

Extenses para o problema de Fluxo


Mximo
O problema vivel ?
C
B
10
AC

20

20
sC

5
CC
5

20

D
C

15
10
5
5
5

EC

15

20

5
FC
10

f
TC fictcia

10

HC

10

GC

f
fictcia

MAXIMIZAR f fMAX = 30 < 35 = Demanda Total


Problema Invivel
Pesquisa Operacional - UNESP / Campus de Guaratinguet

65