Você está na página 1de 62

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
1
Pesquisa Operacional - UNESP / Campus de Guaratinguet
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
2
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.
3
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Introduo
Figura 2. 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.
4
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Introduo
Aplicaes de modelos em grafos
1. Grafos planares: problemas de montagens/ trevos
Figura 3. Um problema de montagem.
A, B, C : linhas de montagens/
rodovias principais
D
1
, D
2
, D
3
: departamentos/
rodovias secundrias
Ligaes: esteiras/ viadutos ou
tneis
5
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.
6
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
7
1
2
3
a
b
c
Grafo
No- orientado
Grafo Orientado
3
a
b c
d
e
f
1
4
2
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Notao
3. Matriz de adjacncia (grafo no-orientado)
A = (a
ij
) =
8

-/
-
j n ao i n do aresta se , 0
j n ao i n do aresta se 1,
1
2
3
0 1 1
1 0 1
1 1 0
1 2 3
|
\

|
.
|
|
|
1
2
3
a
b
c
A =
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Notao
4. Matriz de incidncia (grafos orientados)
A = [a
ij
] a matriz (no necessariamente quadrada) de
incidncia de G se

=
i n ao incidente no j arco o se 0,
i n no chega j arco o se 1, -
i n do sai j arco o se , 1
ij
a
3
a
b c
d
e
f
1
4
2
9
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Grafo Valorado
10
400 Rio de
Janeiro So Paulo
Belo
Horizonte
700
1500
Braslia
Grafo com as distncias de So Paulo a 3 capitais:
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Grafos Especiais
11
Para o grafo G abaixo: rvore, cadeia, caminho, ciclo e circuito
a
b
c
e
f
g
h
j
l
i
d
Pesquisa Operacional - UNESP / Campus de Guaratinguet
rvore
12
1. rvore (arborescncia): grafo conexo sem ciclos
a
b
d
h
j
g
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Cadeia
13
2. Cadeia: seqncia de arcos com extremidade em comum
a
d
h
j
l
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Caminho
14
3. Caminho: seqncia de arcos com mesma orientao
a
c
f
j
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Ciclo e Circuito
15
4. Ciclo: cadeia fechada
a
d
l
i
b g
5. Circuito: caminho fechado
a
b
c
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Problemas e Algoritmos
16
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
Algoritmo de Kruskal
17
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 C
ij
.
Repetir o procedimento respeitando a ordem crescente de valores de
C
ij
, 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.
17
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Exemplo para o Algoritmo de Kruskal
18
Determinar uma rvore mnima
18
8
4
11
2
1
6
2
5
5
9
3
1
8
10
9 4
A
B C
D F
E
9
8
G
H I
J
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Exemplo para o Algoritmo de Kruskal
19
Passo 1: Grafo trivial
19
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Exemplo para o Algoritmo de Kruskal
20
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).
20
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Exemplo para o Algoritmo de Kruskal
21
rvore parcial: colocar as arestas com custo 1
1
1
A
B C
D
E
21
Pesquisa Operacional - UNESP / Campus de Guaratinguet
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.
22
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Exemplo para o Algoritmo de Kruskal
23
rvore parcial: colocar as arestas com custo 2.
1
1
2
2
A
B C
D
E
23
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Exemplo para o Algoritmo de Kruskal
24
rvore parcial: colocar a aresta com custo 3.
1
1
2
2
A
B C
D
E
3
24
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Exemplo para o Algoritmo de Kruskal
25
rvore parcial: colocar as arestas com custo 4.
1
1
2
2
A
B C
D
E
3
4
4
25
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Exemplo para o Algoritmo de Kruskal
26
rvore parcial: colocar uma das duas arestas com custo 5, a outra
ser descartada.
1
1
2
2
A
B C
D
E
3
4
4
5
26
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Exemplo para o Algoritmo de Kruskal
27
Como o nmero de ns 10 prossegue-se neste processo at que sejam
incorporadas 10 - 1 = 9 arestas, sendo obtida uma rvore mnima:
3
4
2
1
2
5
1
8
4
Observe que esta uma soluo tima do problema.
Custo timo: 1 + 1 + 2 + 2 + 3 + 4 + 4 + 5 + 8 = 30.
27
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Algoritmo de Dijsktra
28
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
Algoritmo de Dijsktra
29
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
Algoritmo de Djisktra
30
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
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 + c
ij
},
onde,
i = ltimo n rotulado definitivamente
c
ij
= valor associado ao arco que liga os ns i e j.
31
Pesquisa Operacional - UNESP / Campus de Guaratinguet
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.
Algoritmo de Djisktra
32
Pesquisa Operacional - UNESP / Campus de Guaratinguet
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.
33
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Exemplo para Caminho timo
34
Achar a distncia mnima entre os ns S e T:
S
A C
D
T
7
1
3
2
4
3
4
7
1 2
10
2
8
2
B
6
E
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Algoritmo de Djisktra
35
0*
4* 1* 12 5* 4* 7*
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*

0*
7 1
0*
7 1*
0*
4 1* 5 4
0*
4 1* 5 4*
0*
4 1* 14 5 4* 11
0*
4* 1* 14 5 4* 11
0*
4* 1* 12 5 4* 11
0*
4* 1* 12 5* 4* 11
0*
4* 1* 12 5* 4* 7
Passo 1 - Inicializao
Passo 2 com i = S
Passo 3 - Rot. Def. N B
Passo 2 com i = B
Passo 3 - Rot. Def. N D
Passo 2 com i = D
Passo 3 - Rot. Def. N A
Passo 2 com i = A
Passo 3 - Rot. Def. N E
Passo 2 com i = E
Passo 3 - Rot. Def. N T (parar!)
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Algoritmo de Djisktra
36
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
T E B S
2
4
1
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Exerccio
37
A
B
C
D
E
F
S T
1
3
4
2
6
4
5
4
1
6
3
2
3
4
2
10
Achar a distncia mnima entre os ns S e T:
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Anlise de Redes: Problema do Fluxo
Mximo
38
Rede: Formada por duas entidades - Ns, Arcos
Interesse: Comportamento da Varivel Fluxo
Exemplos:
Aplicao Ns Arcos Fluxo
Sistemas de
comunicao
Satlites,
computadores
Micro ondas,
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
Problema de Fluxo Mximo
39
Notao:
N fonte: S
N destino: T
Fluxo no arco (i,j): F
ij
= quantidade de produto no arco (i,j)
C
ij
ou K
ij
= 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
40
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 K
ij
(ou C
ij
) as restries de fluxo (capacidade) no arco (i, j)
S T
1
2
F
F
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Modelo de Programao Linear
41
Max Z = F
F
S1
+ F
S2
= F (1)
F
12
+ F
1T
= F
S1
+ F
21
(2)
s. a: F
21
+ F
2T
= F
S2
+ F
12
(3)
F
1T
+ F
2T
= F (4)
0 F
ij
K
ij
(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
respeitarem os limites de capacidade nos arcos.
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Problema de Fluxo Mximo
42
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
Problema de Fluxo Mximo
43
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: seqncia 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
Problema de Fluxo Mximo
44
S T
1
2
F
F
Exemplos:
Seja a rede anteriormente considerada:
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 = K
1T
+ K
2T
S = {S,2}, S = {1,T}capacidade = K
S1
+ K
21
+ K
2T
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Problema de Fluxo Mximo
45
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
Problema de Fluxo Mximo
46
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 pode-
se 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
Problema de Fluxo Mximo
47
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
Problema de Fluxo Mximo
48
Rotina de rotulao adotada pelo algoritmo:
Usada para achar CFC de S para T.
1. Iniciar com o n fonte S. Um n j pode ser rotulado a partir de S se
um fluxo positivo pode ser enviado de S para j.
2. Em geral, a partir de qualquer n i (=S) pode-se rotular um n j se
uma das condies abaixo ocorre:
a) O arco que conecta os ns i e j do tipo Forward para o n i e o fluxo
F
ij
neste arco (i,j) menor que o valor da sua capacidade K
ij
.
b) O arco que conecta os ns i e j do tipo Backward para o n i e o
fluxo F
ij
neste arco (j,i) maior que zero.
3. O processo continua at que o n destino T rotulado. Tem-se ento
um CFC.
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Algoritmo do fluxo mximo
49
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. Ir Etapa 2.
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 CFCParar! Uma soluo tima
foi obtidao fluxo atual mximo.
Caso contrrio ir a Etapa 3.
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Algoritmo do fluxo mximo
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
Exemplo Completo
51
Determinar o fluxo mximo F da fonte S ao destino T, na rede a seguir. Os
nmeros ao lado dos arcos representam suas capacidades C
ij
.
Notao:
Os nmeros ao lado dos arcos representam (F
ij
, C
ij
), onde F
ij
o
fluxo no arco (i, j).
Ns rotulados sero marcados por asteriscos.
Etapa 1 Inicializao: Fazer F
ij
= 0 em todos os arcos.
S T
1
2
F
F
7 9
9
8
3
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Exemplo Completo
52
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 para o n S e 0 = F
S1
C
S1
= 7 a seguir, do n 1 pode-se
rotular o n 2 pois o arco (1,2) do tipo Forward para o n 1 e 0 = F
12

C
12
= 3. Finalmente rotula-se o n destino T pois o arco (2,T) do tipo
Forward para o n 2 e 0 = F
2T
C
2T
= 8. Isto resulta num valor de fluxo
F = 0.
Figura 1
S* T*
1*
2*
F = 0
F = 0
(0,7)
(0,9)
(0,9)
(0,8)
(0,3)
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Exemplo Completo
53
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.
Figura 2
S T
1
2
F = 3
F = 3
(3,7)
(0,9)
(0,9)
(3,3)
(3,8)
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Exemplo Completo
54
Etapa 2 Repetindo o processo de rotulao de ns para a configurao da
Figura 2 obtm-se um novo CFC dado por:
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.
Figura 3
v
S* 1* T*
S T
1
2
F = 7
F = 7
(7,7)
(4,9)
(0,9)
(3,3)
(3,8)
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Exemplo Completo
55
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 para S e agora F
S1
= C
S1
= 7. Mas um novo
CFC pode ser obtido rotulando-se o n 2 e depois o n T:
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:
Figura 4
v
S* 2* T*
S T
1
2
F = 12
F = 12
(7,7)
(4,9)
(5,9)
(3,3)
(8,8)
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Exemplo Completo
56
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 Backward para o n 2, neste
novo CFC, finalmente a partir do n 1, pelo arco (1,T) rotula-se o n destino T:
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:
Figura 5
v
S*
2*
T*
1*
S T
1
2
F = 15
F = 15
(7,7)
(7,9)
(8,9)
(0,3)
(8,8)
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Exemplo Completo
57
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
Exemplo Completo
58
Considere o corte que separa os ns rotulados (S e 2) dos no
rotulados (1 e T) na ltima etapa 2, ele formado pelos arcos (S,1) 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.
S* T
1
2*
F = 15
F = 15
(7,7)
(0,3)
(8,8)
Figura 6
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Extenses para o problema de Fluxo
Mximo
59
Rede no-orientada: considere a rede urbana abaixo:
Maximizar o fluxo de trfego de S at T.
S T
1
3
2 4
40
30
15
30
20
50
25
50
30
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Extenses para o problema de Fluxo
Mximo
60
Aplicar o algoritmo apresentado e achar Fluxo Mximo.
Se arco (i,j) no direcionado e f
ij
> f
ji
fluxo = (f
ij
f
ji
) ser
enviado de i para j.
(Adequar mo de trnsito no arco i j)
Trabalhar com modelo equivalente de redes:
S
T
1 3
2 4
40
30
15
30
20
50
25
50
30
15
25
20
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Extenses para o problema de Fluxo
Mximo
61
N A = Fonte com oferta produto = 20 (Oferta Total = 40)
N D = Fonte com oferta produto = 20
N E = Destino com demanda produto = 15 (Demanda Total = 35)
N H = Destino com demanda produto =20
Mltiplas fontes e mltiplos destinos:
C C C
10
10
10
10
10
5
5
5
5
5 5
15
20
A
B
C
D
E
F
G
H
Capacidade
do arco
Pesquisa Operacional - UNESP / Campus de Guaratinguet
Extenses para o problema de Fluxo
Mximo
62
C
C
C
C
C
C C
C
C C
20
20
20
10 10
10
10
10
5
5
5
5
5
5
15 15
20
f
fictcia
f
fictcia
A
B T
H
G
F
E
D
C
s
O problema vivel ?
MAXIMIZAR f f
MAX
= 30 < 35 = Demanda Total
Problema Invivel

Você também pode gostar