Você está na página 1de 28

Universidade Federal Fluminense

Apostila de Pesquisa Operacional II




Teoria dos Grafos


Lidia Angulo Meza
Renato Teixeira da Silva
Talita Pereira dos Santos (reviso)












Volta Redonda, 11 de maro de 2008 (atualizado em 14 de maro de 2011)

I

Sumrio

1. Teoria dos Grafos.................................................................................................... 1
1.1 Histrico ................................................................................................................ 1
1.2 Conceitos Bsicos .................................................................................................. 2
1.2.1 Grafo ................................................................................................................................ 2
1.2.2 Adjacncia e Incidncia ................................................................................................... 3
1.2.3 Grau de um grafo.............................................................................................................. 3
1.2.4 Representao de um Grafo ............................................................................................. 4
1.2.5 Alguns Tipos de Grafos mais Utilizados.......................................................................... 6
1.2.6 Percursos em Grafos......................................................................................................... 9
1.3 O Problema do Caminho Mnimo ........................................................................ 9
1.3.1 Algoritmo de Dijkstra....................................................................................................... 9
1.3.2 Algoritmo de Floyd........................................................................................................ 12
1.3.3 Formulao Matemtica do Problema de Caminho Mnimo ......................................... 15
1.4 O Problema da rvore Geradora Mnima......................................................... 17
1.4.1 Conexidade de um grafo ................................................................................................ 17
1.4.2 rvore e rvore Geradora.............................................................................................. 17
1.4.3 Algoritmo de Prim.......................................................................................................... 18
1.4.4 Algoritmo de Kruskal..................................................................................................... 18
1.5 O Problema de Fluxo Mximo............................................................................ 19
1.5.1 Modelo de Otimizao Linear........................................................................................ 19
1.5.2 Algoritmo de Ford-Fulkerson......................................................................................... 21
1.6 Bibliografia.......................................................................................................... 26





Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 1



1. Teoria dos Grafos




"A inteligncia o farol que nos guia, mas a vontade que nos faz caminhar."
Annimo


1.1 Histrico

Podemos dizer que o estudo sobre grafos iniciou no sculo XVIII com os
estudos de Euler. Ele formulou no ano de 1736 o primeiro problema do que seria
chamada posteriormente Teoria dos Grafos a partir de uma questo relevante para
arquitetura, mais especificamente ao planejamento urbano. O problema das pontes de
Knigsberg (atualmente Kaliningrado) na Prssia questionava se existia um caminho
em que se pudesse cruzar apenas uma vez cada uma das sete pontes que passam sobre o
rio Nagel e ligam duas ilhas centrais, passando pelas quatro reas e retornando ao ponto
de partida.

Figura 1.1: Pontes de Knigsberg e a representao em grafos

Euler construiu um diagrama simplificado onde as ilhas e as margens so
representadas por pontos e as pontes pelas linhas que unem esses pontos. Para chegar a
concluso da no existncia de soluo para esse problema, Euler analisou que para
cada ponto da cidade deveria haver uma chegada e uma partida e que elas deveriam ser
distintas, pois se deve cruzar uma ponte uma nica vez, s havendo rota possvel caso o
nmero de ligaes recaindo em cada um dos pontos seja constante, fato que no ocorre
neste problema.
Outro problema que faz parte da histria da Teoria dos Grafos o Problema das
Quatro Cores, que buscava determinar o nmero mnimo de cores necessrias para
colorir um mapa de forma que os pases com fronteiras comuns tivessem cores
diferentes. Francis Guthrie, em 1852, conjecturou que esse nmero mnimo seria 4. A
prova dessa conjectura surgiu somente em 1976 por Appel e Haken.
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 2
Em 1856, William R. Hamilton formula um novo problema, o Problema do
Ciclo Hamiltoniano. Ele consiste em buscar um caminho que comece e termine num
mesmo vrtice e passe exatamente uma vez por todos os outros vrtices. Esse problema
foi precursor do Problema do Caixeiro Viajante, muito abordado atualmente.
No sculo XX houve um maior interesse sobre o estudo da Teoria dos Grafos
desencadeando no patamar em que estamos hoje.
1.2 Conceitos Bsicos
1.2.1 Grafo

Um grafo uma noo simples e abstrata utilizada para representar a idia de
relao entre "objetos". Graficamente, representado por uma figura composta de
vrtices, representando os objetos, que esto unidos por um trao denominado aresta,
representando a relao imaginada. Matematicamente, um grafo representado por:

G = (V, A) (1.1)

onde V o conjunto de vrtices e A o conjunto de ligaes entre vrtices.

Grafo No Orientado

Um grafo dito no orientado quando os pares de vrtices no possuem uma
ordem, ou seja, quando o par (i, j) semanticamente igual ao par (j, i), podendo ser
expresso como [i, j] onde i, j V.



Figura 1.2: Exemplo de Grafo no orientado

Na Figura 1.2, tem-se um exemplo de um grafo no orientado que representa
uma rede de computadores em um escritrio. A transmisso de dados se d tanto do
computador 1 para o 5 quanto do 5 para o 1.

Grafo Orientado (ou Dgrafo)

Um grafo dito orientado quando o sentido das ligaes entre os vrtices
considerado. Neste caso denomina-se arco o par ordenado (i, j), sendo i o vrtice inicial
e j o vrtice final, onde i, j V. Quando estes arcos possuem um valor associado, ele
ento chamado de rede orientada.
A Figura 1.3 mostra um exemplo de rede orientada representando um sistema de
transporte, sendo cada vrtice uma cidade, cada arco uma estrada ligando uma cidade a
outra e o valor associado a cada arco a distncia entre cada cidade.
Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 3


Figura 1.3: Exemplo de Rede Orientada
1.2.2 Adjacncia e Incidncia

Sejam x e y vrtices de um grafo G orientado ou no. Se x e y esto unidos por
uma aresta a, ento x e y so adjacentes. Alm disso, x e y so incidentes em a e a
incidente em x e y.
Quando duas arestas compartilham um mesmo vrtice, pode-se dizer tambm
que elas so adjacentes.
Sejam v e w vrtices de um grafo G orientado. Se v e w esto unidos por um arco
e, ento v e w so adjacentes. Se o arco e comea em v e termina em w ento o arco e
incidente de v e incidente a w.

Figura 1.4: Adjacncia e Incidncia num grafo orientado
1.2.3 Grau de um grafo

Para grafos no orientados

O grau de um vrtice x de um grafo F o nmero de arestas com incidncia em
x e representado por d(x).


Figura 1.5: Grafo no orientado

d(u) = 2, d(v) = 5, d(w) = 4, d(z) = 5

Teorema 1.1. Em qualquer grafo, a soma de todos os graus dos vrtices igual a duas
vezes o nmero de arestas.

No exemplo: d(u) + d(v) + d(w) + d(z) = 2 + 5 + 4 + 5 = 16, ento o grafo tem 8
arestas.

Para grafos orientados

Pesquisa Operacional II Teoria dos Grafos
Prof Lidia 4
Seja G um grafo orientado, o grau exterior de um vrtice x ou d
+
(x) o nmero
de todos os arcos incidentes de x. O grau interior de um vrtice x ou d

(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

(w) = 2, d+(z) = 0, d(z) = 2



Teorema 1.2. Em um grafo orientado, a soma de todos os graus exteriores e a soma de
todos os graus interiores igual ao nmero de arcos.

No exemplo: d
+
(v) + d
+
(u) + d
+
(w) + d
+
(z) = 3 + 1 + 2 + 0 = 6 = 1 + 1 + 2 + 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>.

Você também pode gostar