Escolar Documentos
Profissional Documentos
Cultura Documentos
(x) o nmero de
todos os arcos incidentes a x.
Figura 1.6: Grafo orientado
d
+
(v) = 3, d
(v) = 1, d
+
(u) = 1, d
(u) = 1, d
+
(w) = 2, d
(v) + d
(u) + d
(w) + d
(z)
1.2.4 Representao de um Grafo
A representao grfica dos vrtices e ligaes pode ser de fcil visualizao,
mas no so computacionalmente viveis. Desta forma, os grafos devem ser
representados de forma matemtica.
Existem vrias formas de representar um grafo. Dentre as quais temos:
Lista de Adjacncias
Uma lista de adjacncias armazena o relacionamento entre os vrtices de um
grafo em uma estrutura de listas. Esse tipo de representao tida como econmica do
ponto de vista computacional.
Figura 1.7: Exemplo de grafo orientado
Vrtices Vrtices
Origem Destino Destino Origem
1 2,3,4 1 -
2 4 2 1
3 - 3 1,4
4 3 4 1,2
Tabela 1.1: Lista de Adjacncias
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 5
A Tabela 1.1 apresenta a lista de adjacncias do grafo da Figura 1.7. Por se
tratar de um grafo orientado, necessrio duas listas de adjacncias: uma de origem-
destino e outra de destino-origem. Caso se tratasse de um grafo no orientado seria
necessrio somente a lista de origem-destino.
Matriz de Adjacncias
A matriz de adjacncias mostra o relacionamento entre os vrtices de um grafo.
Ela uma matriz quadrada de tamanho n, onde n o nmero total de vrtices. A matriz
de adjacncias construda da seguinte forma:
ij
ij
a 1 (i, j) A.
M
a 0 (i, j) A.
=
=
=
(1.2)
A partir do grafo utilizado no exemplo anterior (Figura 1.7) foi construda a
matriz de adjacncias a seguir:
1 2 3 4
1 0 1 1 1
2 0 0 0 1
M
3 0 0 0 0
4 0 0 1 0
| |
|
|
=
|
|
|
\ .
(1.3)
onde as linhas representam o vrtice de origem e as colunas representam o vrtice de
destino.
Caso i = j e a
ij
= 1, temos o chamado loop, representado pela Figura 1.8.
Figura 1.8: Loop
Para um grafo no orientado, o procedimento de construo da matriz de
adjacncias o mesmo e podemos notar que a matriz gerada simtrica.
Figura 1.9: Exemplo de grafo no orientado
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 6
1 2 3 4
1 0 1 1 0
2 1 0 1 1
M
3 1 1 0 0
4 0 1 0 0
| |
|
|
=
|
|
|
\ .
(1.4)
Quando os grafos precisam incluir valores de distncias, de custos ou outros,
estes so representados de forma um pouco diferente. Tem-se uma matriz de
adjacncias valorada, que chamada de matriz de distncias ou custos. A construo
dessa matriz se d da seguinte forma:
ij
ij ij
ij
d 0 i j
D d c (i, j) A
d (i, j) A
= =
= =
(1.5)
Esse tipo de representao ser muito utilizado em todas as prximas sees. A
Figura 1.10 mostra um exemplo de uma rede orientada e a seguir sua matriz de
distncias ou custos.
Figura 1.10: Exemplo de rede orientada
1 2 3 4
1 0 5 6 2
2 0 3
M
3 0
4 5 0
| |
|
|
=
|
|
|
\ .
(1.6)
1.2.5 Alguns Tipos de Grafos mais Utilizados
Os exemplos aqui citados foram extrados de BOAVENTURA NETTO (2003).
Grafo simtrico
Um grafo G = (N,A) ser simtrico se (i, j) A e somente se (j, i) A, i, j
N. Assim, a matriz de adjacncia de G ser uma matriz simtrica. Exemplos:
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 7
Figura 1.11: Grafos simtricos
Grafo anti-simtrico
Se (i, j) A, um grafo G = (N,A) ser anti-simtrico se e somente se (j, i) A,
i, j N.
Claramente, este tipo de relacionamento utilizado para grafos orientados e no
pode possuir laos. Este tipo de grafo pode expressar relaes de ordem total ou parcial
(paternidade, idade, hierarquia, e outros). Por exemplo, o organograma um grafo anti-
simtrico.
Figura 1.12: Grafos anti-simtricos
Grafo completo
Um grafo G = (N,A) ser completo se existir ao menos uma ligao associada a
cada par de vrtices. No caso orientado, isso significa exatamente uma ligao e,
portanto, o grafo possuir todas as arestas possveis. So conhecidas como cliques, K
n
onde n o nmero de vrtices do grafo.
Figura 1.13: Grafos completos
Para o caso orientado, se (i, j) A ento (j, i) A, isto , a ausncia de um arco
em um sentido implicar na presena do arco no sentido oposto.
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 8
Grafo Bipartido
Aqueles nos quais o conjunto de vrtices N pode ser particionado em dois
subconjuntos de tal forma que vrtices pertencentes a um mesmo subconjunto no so
adjacentes.
Figura 1.14: Grafo Bipartido
Cliques Bipartidas
So grafos bipartidos no orientados com o maior nmero possvel de arestas.
Denota-se por K
p,q
.
Figura 1.15: Cliques Bipartidas
Grafo Complementar
um grafo G que possui o mesmo conjunto de vrtices e as ligaes no
existentes em um grafo G = (N,A), sendo que o universo de arcos corresponde s arestas
de um clique.
Figura 1.16: Grafos Complementares
Subgrafo
um grafo que possui o subconjunto de vrtices e o subconjunto de ligaes de
um grafo incidentes aos vrtices retirados.
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 9
Figura 1.17: Exemplo de subgrafo
Grafo Parcial
um grafo obtido pela supresso de ligaes do grafo original.
Figura 1.18: Grafo Parcial
1.2.6 Percursos em Grafos
Um percurso ou itinerrio ou ainda cadeia uma famlia de ligaes sucessivas
adjacentes.
Um percurso euleriano em um grafo o percurso que usa cada ligao
exatamente uma vez. Um conhecido problema que se encaixa nesse perfil o Problema
do Carteiro Chins. Nele, o carteiro deseja percorrer todas as ruas da sua rota um
nmero mnimo de vezes e voltar ao correio.
Um percurso hamiltoniano em um grafo o percurso que visita cada vrtice
uma s vez. No Problema do Caixeiro Viajante, um exemplo que utiliza percurso
hamiltoniano, o caixeiro deseja visitar uma variedade de cidades e depois voltar ao
ponto de partida. Associando-se o tempo de viagem entre as cidades, o caixeiro planeja
um itinerrio de tal forma que visite todas as cidades num menor tempo possvel. Este
talvez um dos problemas mais estudados na Teoria dos Grafos e de mais difcil soluo.
Nas seguintes sees estudaremos alguns dos principais problemas em grafos.
1.3 O Problema do Caminho Mnimo
O problema do caminho mnimo consiste na minimizao do custo de percurso
de um grafo entre dois vrtices, custo este dado pela soma dos custos de cada aresta
percorrida. Para a sua resoluo existem vrios algoritmos, mas esta disciplina abordar
somente dois deles: o Algoritmo de Dijkstra e o Algoritmo de Floyd.
1.3.1 Algoritmo de Dijkstra
O Algoritmo de Dijkstra tem por objetivo determinar o caminho mnimo entre
uma origem e um destino dados.
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 10
Ele ser aplicado diretamente sobre o grafo e utilizar a seguinte notao sobre
cada vrtice:
[c, j]X (1.7)
onde c representa o custo at o vrtice, j representa o vrtice precedente e X a
classificao do vrtice, que pode assumir valores T (temporrio) ou P (permanente).
Esse algoritmo parte sempre de um vrtice T, aquele de menor custo acumulado
buscando chegar ao destino.
Exemplo: Determine o caminho mnimo entre 1 e 5 da Fig 1.19.
Figura 1.19: Rede Orientada do Exemplo
Soluo:
Primeiramente vamos identificar o vrtice de origem como um vrtice de custo
0, sem precedente e permanente.
A seguir vamos identificar os vrtices que tem como precedente a origem. Eles
sero classificados como temporrios.
Agora escolheremos o vrtice temporrio de menor custo c (vrtice 3), que ser
classificado como permanente e repetimos o mesmo processo de identificao dos
vrtices que o tem como precedente. Esse processo continuar at termos o destino
permanente.
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 11
Figura 1.20: Soluo do Exemplo
O caminho mnimo entre os vrtices 1 e 5 {1 3 5} ou {1 3 4 5} e tem
custo de 90un. Ele pode ser visto na Figura 1.20.
Exerccios de Fixao - Algoritmo de Dijkstra
1) So obtidas tiras de alumnio de 2cm a partir de outras de 12cm (espessura atravs de
um processo de reduo. A Tabela 1.2 descreve o custo de reduo para cada 100m de
alumnio. Determine a forma mais econmica de se obter tiras de 2cm.
2) Uma empresa est planejando a substituio da sua frota de carros para o perodo
2006-2011. No incio de cada ano toma-se a deciso de se manter a frota operando ou se
ela deve ser substituda. Essa substituio pode ocorrer no mximo aps trs anos de
compra da frota. A Tabela 1.3 nos mostra o custo de substituio da frota como funo
do ano em que ela foi adquirida e o nmero de anos em operao. Determine o
planejamento timo para a substituio da frota.
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 12
Reduo (em cm) Espessura
(cm) 2 4 6
12 6,2 7,2 8,5
10 6,8 7,4 9,2
08 7,1 12,8 15,2
06 8,2 14,6 -
04 10,5 - -
Tabela 1.2: Custo de Reduo
Custo de substituio por anos
de operao
Ano em que
a frota foi
adquirida 1 2 3
2006 3800 4100 6800
2007 4000 4800 7000
2008 4200 5100 7200
2009 4800 5700 -
2010 5300 - -
Tabela 1.3: Custo de substituio da frota
1.3.2 Algoritmo de Floyd
Esse algoritmo serve para determinar o caminho mnimo entre todos os pares de
vrtices.
Inicialmente, cria-se uma matriz de distncias e uma matriz de rotas do grafo
seguindo as indicaes a seguir:
0
0 =
= =
ij
ij
ij ij
d i=j
D d (i, j) A
d c (i, j) A
(1.8)
0
0
0
=
=
=
ij ij
ij
r j d <
R
r caso contrrio.
(1.9)
onde a matriz D chamada de matriz de distncias e R de matriz de rotas realizadas.
Em seguida, verifica-se a existncia de um caminho de menor custo entre cada
par de vrtices, ao passar por um vrtice intermedirio, como na Figura 1.21. Caso
exista, altera-se a matriz de distncias, com esse menor valor e tambm a matriz de rotas
para o vrtice intermedirio. Num grafo com n vrtices, aps montar a matriz de
distncias, sero feitas n iteraes:
1 Iterao: descobrir se h caminhos que ficam menores ao passar pelo
vrtice 1
2 Iterao: descobrir se h caminhos que ficam menores ao passar pelo
vrtice 2
...
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 13
n Iterao: descobrir se h caminhos que ficam menores ao passar pelo
vrtice n.
Os passos do Algoritmo de Floyd so apresentados a seguir:
Figura 1.21: Idia principal do Algoritmo de Floyd
Algorithm 1 Algoritmo de Floyd
for k = 1, n do
if d
ik
+ d
kj
< d
ij
then
d
ij
d
ik
+ d
kj
r
ij
r
ik
end if
end for
Ao executar esse algoritmo deve se atentar para as seguintes observaes:
No necessrio testar nenhum valor da diagonal principal da matriz, pois eles
no iro variar;
Na k-sima iterao, no haver variao na linha piv (linha k) e na coluna piv
(coluna k);
Na k-sima iterao, caso exista na linha piv (linha k) algum elemento onde d
kj
= , ento a coluna j no ir variar nessa iterao;
Na k-sima iterao, caso exista na coluna piv (coluna k) algum elemento onde
d
ik
= , ento a linha i no ir variar nessa iterao.
Exemplo: Determine o caminho mnimo entre v
5
e v
2
, v
3
e v
1
e v
4
e v
3
da Figura 1.22.
Figura 1.22: Rede Orientada do Exemplo
Soluo:
Primeiramente vamos gerar as matrizes de distncias e de rotas do grafo.
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 14
1 2 3 4 5 1 2 3 4 5
0
1 0 5 3
2 0 3
D 3 0 5
4 1 1 0 1
5 1 1 0
| |
|
|
| =
|
|
|
\ .
0
1 1 2 0 4 0
2 0 2 3 0 0
R 3 0 0 3 0 5
4 1 2 0 4 5
5 0 2 0 4 5
| |
|
|
| =
|
|
|
\ .
Por esse ser um grafo com 5 vrtices, realizaremos 5 iteraes. Iniciaremos
agora as iteraes, no se esquecendo das observaes.
k = 1 (para esta iterao, tem-se a linha 1 e a coluna 1 como pivs)
Termo(s) que deve(m) ser analisado(s) nessa iterao: d
42
1 2 3 4 5 1 2 3 4 5
1
1 0 5 3
2 0 3
D 3 0 5
4 1 0 1
5 1 1 0
| |
|
|
| =
|
|
|
\ .
1
1 1 2 0 4 0
2 0 2 3 0 0
R 3 0 0 3 0 5
4 1 0 4 5
5 0 2 0 4 5
| |
|
|
| =
|
|
|
\ .
d
41
+ d
12
< d
42
?
1 + 5 < 1 ? No
1 2 3 4 5 1 2 3 4 5
1
1 0 5 3
2 0 3
D 3 0 5
4 1 0 1
5 1 1 0
| |
|
|
| =
|
|
|
\ .
1
1
1 1 2 0 4 0
2 0 2 3 0 0
R 3 0 0 3 0 5
4 1 0 4 5
5 0 2 0 4 5
| |
|
|
| =
|
|
|
\ .
2
k = 2 (para esta iterao, tem-se a linha 2 e a coluna 2 como pivs)
Termo(s) que deve(m) ser analisado(s) nessa iterao: d
13
, d
43
, d
53
.
1 2 3 4 5 1 2 3 4 5
2
1 0 5 3
2 0 3
D 3 0 5
4 1 1 0 1
5 1 1 0
| |
|
|
| =
|
|
|
\ .
2
1 1 2 4 0
2 0 2 3 0 0
R 3 0 0 3 0 5
4 1 2 4 5
5 0 2 4 5
| |
|
|
| =
|
|
|
\ .
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 15
d
12
+ d
23
< d
13
?
5 + 3 < ? Sim, ento
d
13
= d
12
+ d
23
= 5 + 3 = 8
r
13
= r
12
= 2
d
42
+ d
23
< d
43
?
1 + 3 < ? Sim, ento
d
43
= d
42
+ d
23
= 1 + 3 = 4
r
43
= r
42
= 2
d
52
+ d
23
< d
53
?
1 + 3 < ? Sim, ento
d
53
= d
52
+ d
23
= 1 + 3 = 4
r
53
= r
52
= 2
1 2 3 4 5 1 2 3 4 5
2
1 0 5 3
2 0 3
D 3 0 5
4 1 1 0 1
5 1 1 0
| |
|
|
| =
|
|
|
\ .
8
4
4
2
1 1 2 4 0
2 0 2 3 0 0
R 3 0 0 3 0 5
4 1 2 4 5
5 0 2 4 5
| |
|
|
| =
|
|
|
\ .
2
2
2
Repetiremos esse mesmo processo para k = 3, k = 4 e k = 5, chegando a essas
matrizes de distncias e rotas:
1 2 3 4 5 1 2 3 4 5
5
1 0 4 7 3 4
2 10 0 3 9 8
D 3 7 6 0 6 5
4 1 1 4 0 1
5 2 1 4 1 0
| |
|
|
| =
|
|
|
\ .
5
1 1 4 4 4 4
2 3 2 3 3 3
R 3 5 5 3 5 5
4 1 2 2 4 5
5 4 2 2 4 5
| |
|
|
| =
|
|
|
\ .
de v
5
para v
2
: 5 2, custo = 1
de v
3
para v
1
: 3 5 4 1, custo = 7
de v
4
para v
3
: 4 2 3 custo = 4
1.3.3 Formulao Matemtica do Problema de Caminho Mnimo
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 16
Sendo 1 e m os vrtices de origem e destino, respectivamente, e c
ij
o custo da ligao
(i,j):
1 1
1 1
1 1
. 0 1
1
m m
ij ij
i= j=
m m
ij ki
j k
Min c x
, se i
S.A x x , se i ou m
, se i=m
= =
=
0
1
ij
, se (i, j) A
x
, caso contrrio
=
i, j = 1, 2, 3, ..., m
A modelagem do problema ter, portanto variveis binrias, x
ij
, as quais, ao
assumirem o valor 1 indicam que o arco em questo faz parte da rota, e 0, caso
contrrio.
Exemplo: Formular matematicamente o problema de caminho mais curto do grafo da
Figura 1.23.
Figura 1.23: Grafo do Exemplo
Soluo:
{ }
2 7 2 5 4 1 4 3 4 5 1 7
1
1
0,1
OA AD AB OB OC CB CE BE BD DT ED ET
OA OB OC
DT ET
OA AB AD
OB AB CB BD BE
OC CB CE
AD BD ED DT
EB CE ED ET
ij
Min x x x x x x x x x x x x
S.A.
x x x
x x
x x x
x x x x x
x x x
x x x x
x x x x
x i,j
+ + + + + + + + + + +
+ + =
+ =
= +
+ + = +
= +
+ + =
+ = +
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 17
1.4 O Problema da rvore Geradora Mnima
O problema da rvore geradora mnima objetiva encontrar o caminho mais curto de tal
maneira que os arcos forneam um caminho entre todos os pares de vrtices. Esse modelo de
problema pode ser aplicado a:
Projeto de redes de telecomunicao;
Projeto de redes de transporte (rodovias, ferrovias, etc.);
Projeto de redes de transmisso de energia.
Esse tipo de problema resolvido por vrios algoritmos, dentre eles o Algoritmo de
Prim e o Algoritmo de Kruskal.
Para um melhor entendimento, dois novos conceitos sero apresentados.
1.4.1 Conexidade de um grafo
Um grafo dito conexo se existir pelo menos um percurso entre todos os pares
de vrtices.
Caso contrrio, trata-se de um grafo no conexo.
Figura 1.24: Conexidade
Figura 1.25: rvore Geradora
1.4.2 rvore e rvore Geradora
Uma rvore um grafo conexo e sem ciclos. Uma rvore geradora de um grafo
G um subgrafo de G que inclui cada vrtice de G e uma rvore.
Uma rvore possui as seguintes particularidades:
Se a rvore tem n vrtices, ento ela ter n 1 arestas;
Caso seja eliminada uma aresta da rvore, teremos um grafo no-conexo;
Caso acrescente uma aresta entre qualquer par de vrtices ser formado
somente um ciclo.
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 18
1.4.3 Algoritmo de Prim
1. Selecionar um n arbitrariamente e lig-lo ao n mais prximo;
2. Identificar o n ainda isolado que esteja mais prximo de um n j ligado e ligar
estes dois ns. Repetir esse passo at que todos os ns estejam ligados entre si.
Exemplo: Determine a rvore geradora mnima do grafo da Figura 1.26.
Figura 1.26: Grafo do Exemplo
Soluo:
Figura 1.27: Resoluo utilizando o Algoritmo de Prim
1.4.4 Algoritmo de Kruskal
1. Ordenar as arestas por ordem crescente de custo, sendo os desempates feitos
arbitrariamente, formando uma lista;
2. Selecionar a primeira aresta da lista. Caso gere um ciclo, retir-la da lista e voltar
ao incio de 2. Caso contrrio, adicion-la rvore de suporte e retir-la da lista.
Repetir esse passo at que a rvore de suporte esteja formada.
Exemplo: Determine a rvore geradora mnima do grafo do exemplo anterior (Figura
1.26) utilizando o Algoritmo de Kruskal.
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 19
Soluo:
(B,C) 1 aresta adicionada a rvore
(D,E) 2 aresta adicionada rvore
(O,A) 3 aresta adicionada rvore
(A,B) 4 aresta adicionada rvore
(B,E) 5 aresta adicionada rvore
(O,C) forma ciclo
(B,D) forma ciclo
(C,E) forma ciclo
(O,B) forma ciclo
(D,W) 6 aresta adicionada rvore - Fim
(A,D)
(E,W)
Figura 1.28: Soluo do Exemplo
1.5 O Problema de Fluxo Mximo
O Problema de Fluxo Mximo objetiva maximizar o fluxo de um ponto de
origem (ou fonte) at um ponto de destino (ou sorvedouro) tendo que respeitar as
restries de fluxo de cada arco da rede. Este tipo de problema pode aparecer
envolvendo o fluxo de materiais como gua, leo, vapor atravs de uma rede de tubos; o
fluxo mximo de veculos em um sistema de transporte; ou ainda quando se deseja
determinar a capacidade mxima de uma linha de produo de um produto que pode ser
fabricado utilizando vrios roteiros diferentes, passando por vrios centros de
fabricao, cada um deles com uma certa capacidade instalada.
De uma forma geral, seja G(N, A) uma rede orientada onde u
ij
representa a
capacidade do arco que liga o vrtice i ao vrtice j tal que i, j A. Deseja-se saber qual
o nmero mximo de unidades que podem circular do vrtice 1 ao vrtice n por unidade
de tempo.
1.5.1 Modelo de Otimizao Linear
Para a formulao desse modelo considera-se existente um arco virtual ligando o
n n ao n 1 que ter capacidade infinita. Neste arco teremos o fluxo total da rede.
Figura 1.29: Exemplo de Arco Virtual
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 20
O modelo matemtico ser formulado conforme as instrues abaixo:
1
Funo Objetivo
n
Max x (1)
Restries 0 1
=
ij ki
(i,j) A (k,i) A
SA x x i= , ..., n (2)
0
ij ij
x u (i,j) A (3)
onde: (1) mostra que se quer maximizar o fluxo entre a fonte e o sorvedouro; (2) faz
com que o fluxo que chega em cada n seja igual ao fluxo que sai do mesmo; e (3)
limita o fluxo do arco no intervalo [0, u
ij
], onde u
ij
representa o fluxo mximo do arco
que liga os ns i e j.
Exemplo: A Companhia Estadual de Gs do Rio de Janeiro (CEG-RJ) deseja
determinar a quantidade mxima de metros cbicos por segundo de gs que pode
bombear da estao de Campos para a cidade de Volta Redonda, atravs de uma rede de
gasodutos j existentes. A Figura 1.30 apresenta a atual rede de distribuio de gs da
CEG-RJ. Formule um problema de programao linear para este caso.
Figura 1.30: Rede de distribuio de gs da CEG-RJ
Soluo:
Primeiramente cria-se o arco virtual. No exemplo em estudo, ele ter fluxo x
61
.
Max x
61
SA x
61
(x
12
+ x
13
+ x
14
) = 0 (n 1)
x
12
(x
23
+ x
25
+ x
26
) = 0 (n 2)
x
13
+ x
23
+ x
43
(x
35
) = 0 (n 3)
x
14
(x
43
+ x
45
) = 0 (n 4)
x
25
+ x
35
+ x
45
(x
56
) = 0 (n 5)
x
26
+ x
56
(x
61
) = 0 (n 6)
0 x
12
15
0 x
13
5
0 x
14
10
0 x
23
8
0 x
25
10
0 x
26
10
0 x
35
10
0 x
43
7
0 x
45
9
0 x
56
15
0 x
61
1
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 21
1.5.2 Algoritmo de Ford-Fulkerson
Algoritmo de Ford-Fulkerson simplificado
uma heurstica (no garante soluo tima) que funciona pela definio de um
caminho de aumento de fluxo num grafo. Caminho de aumento de fluxo aquele que
parte da fonte at o sorvedouro e que apresenta o fluxo de pelo menos um de seus arcos
saturado, isto , utiliza todo o fluxo disponvel de pelo menos um arco. Ao
acrescentarmos o caminho de aumento ao fluxo j existente no grafo, o fluxo mximo
atingido quando no for possvel descobrir mais caminhos de aumento. Para aplicar o
Algoritmo de Ford-Fulkerson substitumos o fluxo de cada arco pelo par ordenado (a,
b), onde a representa o fluxo disponvel no arco e b o fluxo enviado pelo arco.
Exemplo: Aplique o Algoritmo de Ford-Fulkerson (heurstica) rede de distribuio de
gs da CEG-RJ da Figura 1.30 do exemplo anterior.
Soluo:
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 22
Figura 1.31: Resoluo utilizando o Algoritmo de Ford-Fulkerson (heurstica)
Como no existe mais nenhum caminho de aumento de fluxo, ento o fluxo
mximo igual a 25.
Algoritmo de caminhos aumentados
Este algoritmo se baseia nos conceitos de rede residual e caminho aumentado.
A rede residual mostra as capacidades dos arcos remanescentes, chamadas
capacidades residuais, para designar fluxos adicionais. A capacidade residual para o
fluxo que vai de um n a outro indicada por um nmero colocado prximo ao n de
origem. Na Figura 1.32, o arco O B possui capacidade de arco igual a 7, havendo
uma capacidade residual de 2 para qualquer designao de fluxo de O para B, e uma
capacidade residual de 5 para o fluxo de B para O.
Figura 1.32: Capacidade residual de fluxo
Quando alguma quantidade de fluxo designada a um arco, essa quantidade deve
ser subtrada da capacidade residual na direo em questo e adicionada capacidade
residual na direo oposta.
Um caminho aumentado um caminho direcionado da origem para o destino de
modo que todo arco nesse caminho tenha fluxo residual estritamente positivo.
O algoritmo de caminhos aumentados identifica um caminho aumentado na rede,
acrescentando a esta um fluxo igual capacidade residual do caminho selecionado. So
realizadas sucessivas iteraes at que no exista mais nenhum caminho com fluxo
residual positivo, o que indica que a soluo atual tima (como os caminhos
aumentados podem cancelar parte dos fluxos previamente designados na rede original,
selecionar os caminhos indiscriminadamente no impede o emprego de uma
combinao melhor de designaes de fluxo, garantindo que a soluo obtida seja
tima).
Exemplo: Aplique o Algoritmo de Caminhos Aumentados rede da Figura 1.33.
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 23
O
A
C
B
D
E
T
3
5
4
1
2
4
4
9
6
5
7
1
Figura 1.33: Rede do exemplo
Soluo:
1 Caminho: O B E T
Capacidade: 5
Fluxo Mximo: 5
O
A
C
B
D
E
T
0
0
4
1
2
4
4
9
5
5
5
1
5
2
0
0
0
0
0
0
3
0
0
1
Figura 1.34: 1 Caminho
2 Caminho: O A D T
Capacidade: 3
Fluxo Mximo: 5 + 3 = 8
O
A
C
B
D
E
T
3
3
4
1
2
4
4
6
5
5
5
1
2
2
0
0
0
0
0
0
0
0
3
1
Figura 1.35: 2 Caminho
3 Caminho: O A B D T
Capacidade: 1
Fluxo Mximo: 8 + 1 = 9
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 24
O
A
C
B
D
E
T
3
4
4
0
2
4
3
5
5
5
5
1
1
2
0
0
0
0
1
1
0
0
4
1
Figura 1.36: 3 Caminho
4 Caminho: O B C E T
Capacidade: 1
Fluxo Mximo: 9 + 1 = 10
O
A
C
B
D
E
T
3
4
4
0
1
3
3
5
6
5
6
1
1
1
0
1
1
0
1
1
0
0
4
0
Figura 1.37: 4 Caminho
5 Caminho: O C E D T
Capacidade: 1
Fluxo Mximo: 10 + 1 = 11
O
A
C
B
D
E
T
3
4
3
0
1
2
3
4
6
5
6
0
1
1
1
1
2
0
1
1
0
1
5
0
Figura 1.38: 5 Caminho
6 Caminho: O B D T
Capacidade: 1
Fluxo Mximo: 11 + 1 = 12
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 25
O
A
C
B
D
E
T
3
4
3
0
1
2
2
3
6
5
7
0
1
0
1
1
2
0
2
1
0
1
6
0
Figura 1.39: 6 Caminho
7 Caminho: O C B D T
Capacidade: 1
Fluxo Mximo: 12 + 1 = 13
O
A
C
B
D
E
T
3
4
2
0
2
2
1
2
6
5
7
0
1
0
2
0
2
0
3
1
0
1
7
0
Figura 1.40: 7 Caminho
8 Caminho: O C E B D T
Capacidade: 1
Fluxo Mximo: 13 + 1 = 14
O
A
C
B
D
E
T
3
4
1
0
2
1
0
1
6
4
7
0
1
0
3
0
3
1
4
1
0
1
8
0
Figura 1.41: 8 Caminho
Exerccio de Fixao Algoritmo dos caminhos aumentados
1) Aplique o Algoritmo de Ford-Fulkerson de caminhos aumentados rede de
distribuio de gs da CEG-RJ (Figura 1.30).
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 26
1.6 Bibliografia
1. ALOISE, J.D.; CRUZ, J.S. Teoria dos Grafos e Aplicaes. Disponvel em:
<http://www.dimap.ufrn.br/dario/disciplinas.htm>. Acesso em: 20 jul. 2007.
2. ARENALES, M.; ARMENTANO, V.; MORABITO, R.; YANASSE, H. Pesquisa
Operacional. 1.ed. Rio de janeiro: Editora Campus, 2007.
3. BAAZARA, M.S.; JAVIS, J.J.; SHERALI, H.D. Linear Programming and
Network Flows. 2.ed. Nova York: Wiley, 1990.
4. BOAVENTURA NETTO, P.O. Grafos - Teoria, Modelos e Algoritmos. 3.ed., So
Paulo: Edgard Blcher Ltda, 2003.
5. FEOFILOFF, P.; KOHAYAKAWA, Y.; WAKABAYASHI, Y. Uma Introduo
Sucinta Teoria dos Grafos. Disponvel em: <http://www.ime.usp.br/pf
/teoriadosgrafos/ texto/TeoriaDosGrafos.pdf>. Acesso em: 19 ago. 2007.
6. FERREIRA, J.A.S.; SIMARIA, A.S.A. Algoritmos para a Resoluo de Problemas
em Redes. Disponvel em:
<http://www2.egi.ua.pt/cursos/files/SAD/Algoritmos_Redes.pdf>. Acesso em: 14 nov.
2007.
7. GUIMARES, J.O. Teoria dos Grafos. Disponvel em: <http://www.dc.ufscar.br/
jose/courses/tg.htm>. Acesso em: 20 jul. 2007.
8. LACHTERMACHER,G. Pesquisa Operacional na Tomada de Decises. 3.ed. Rio
de janeiro: Editora Campus, 2007.
9. MARTINS, F.M. Paradigmas da Programao III - Notas de Aula. Disponvel
em: <http://sim.di.uminho.pt/ ensino2.php3?seccao=geral&id=45>. Acesso em: 20 jul.
2007.
10. MEZA, L.A. Pesquisa Operacional II - Teoria dos Grafos. 2007. 22 f. Notas de
Aula.
11. NOGUEIRA, F. Pesquisa Operacional - Notas de Aula. Disponvel em:
<http://www.engprod.ufjf.br/fernando/epd015/>. Acesso em: 24 nov. 2007.
12. PATRCIO, P. Breve introduo teoria dos grafos. Disponvel na internet.
Acesso em: 20 jul. 2007.
13. RAGGI, L.A. Teoria e Modelos de Grafos. Disponvel em:
<http://www.dpi.ufv.br/disciplinas/inf330/index.php?pk=167>. Acesso em: 16 jul.
2007.
14. RIBEIRO, C.C.; ROCHA, C.T. Algoritmos em Grafos. Disponvel em:
<http://wwwdi.inf.puc-rio.br/ celso/disciplinas.htm>. Acesso em: 21 nov. 2007.
15. SILVA JNIOR, E. P. Anlise Combinatria e Teoria dos Grafos. Disponvel
em: <http://www.inf.ufrgs.br/ prestes/disciplinas.html>. Acesso em: 20 jul. 2007.
16. SILVA,M. Grafos - Definies e Conceitos Fundamentais. Disponvel em:
<http://www.moraissilva.com/grafos_cap1.pdf>. Acesso em: 20 jul. 2007.
17. SOUZA, L. O Teorema das Quatro Cores. Millenium - Revista do ISPV , n.24, p.
125-51, out. 2001. Disponvel em: <http://www.ipv.pt/millenium/Millenium24/12.pdf>.