You are on page 1of 8

7 - Anlise de redes

Pesquisa Operacional

CAPTULO 7
ANLISE DE REDES
7

7.1 Conceitos Bsicos em Teoria dos Grafos Diversos problemas de programao linear, inclusive os problemas de transporte, podem ser modelados como problemas de fluxo de redes. Algoritmos especficos para determinados tipos de problemas podem ser mais convenientes para a sua soluo do que algoritmos mais genricos. Antes de continuar, sero apresentadas algumas definies da teoria dos grafos. Definio 1 Um grafo linear consiste em diversos ns, ou pontos, sendo que cada n deve estar conectado a um ou mais ns por arcos. Um exemplo de um grafo linear apresentado na Figura 7.1.
b 4 1 a 2 d Ns: a, b, c, d, e, f 3 6 9 f Arcos: 1, 2, 3, 4, 5, 6, 7, 8, 9 5 e 8 c

Figura 7.1 - Exemplo de um grafo linear. Definio 2 Um grafo direto (ou rede direta) um grafo em que o fluxo ao longo de um arco pode ser efetuado apenas em um sentido. Entretanto, pode-se substituir um arco com fluxo nos dois sentidos por dois arcos em sentidos opostos. Desta forma, podemos utilizar redes diretas sem que o modelo esteja perdendo a sua generalidade. Definio 3 Um grafo bipartido um grafo direto onde os ns so divididos em dois subconjuntos, onde todos os arcos do grafo ligam um n de um subconjunto a um n do outro. Um grafo representando um problema de transporte um exemplo de grafo bipartido, j que todos os arcos ligam ns das origens a ns dos destinos.

Prof. Erico Lisboa

36

http://www.ericolisboa.eng.br

7 - Anlise de redes

Pesquisa Operacional

Definio 4 Um caminho ou canal um conjunto ordenado de arcos que conectam dois ns atravs de ns intermedirios, cada um dos quais estando exatamente em dois arcos do canal. Um exemplo de canal no grafo da Figura 7.1 o conjunto dos arcos 1, 5 e 7, que conectam os ns a e c atravs dos ns b e e. Definio 5 Um grafo conectado um grafo um grafo no qual existe caminho entre qualquer par de ns. O grafo da Figura 7.1 um grafo conectado. Definio 6 Um lao um canal que conecta um n a ele mesmo. Os arcos 1, 5, 7, 8, 9 e 2 formam um lao conectando o n a (ou qualquer outro n do canal) a ele mesmo. Definio 7 Uma rvore um grafo conectado que no contm laos. Exemplos de rvores no grafo da Figura 7.1 incluem os arcos 1, 3, 4, 6, 8 ou os arcos 2, 3, 4, 5, 8. O conjunto de arcos 1, 2, 3, 4, 7, 8 contm um lao (1, 2, 3), portanto no uma rvore; o conjunto de arcos 1, 3, 7, 8, apesar de no conter laos, no forma uma rvore por no ser um grafo conectado. Pode ser provado que uma rvore com n ns possui (n - 1) arcos e h pelo menos dois extremos (ns em apenas um arco) em uma rvore. 7.2 Problema de Fluxo Mximo Um problema de rede usual a determinao do fluxo mximo entre dois pontos em uma rede. Considere o seguinte exemplo, adaptado de ZIONTS (1974). "Um produtor de gs natural tem uma rede de tubulaes conforme apresentado na Figura 7.2. As capacidades de cada parte da rede esto representadas em bilhes de litros por dia. Um problema ocorreu no ponto t, de modo que deseja-se fornecer a maior quantidade de gs possvel da produo ao ponto t. Portanto, o problema encontrar a mxima capacidade da rede entre s e t de modo que a mxima quantidade seja fornecida de s para t."
a 15 10 s (origem) 4 18 10 t (destino)

Figura 7.2 - Rede de tubulao de gs.

Prof. Erico Lisboa

37

http://www.ericolisboa.eng.br

7 - Anlise de redes

Pesquisa Operacional

Mais formalmente, o problema a ser considerado a maximizao do escoamento de um n s (chamado de origem) a um n t (chamado de destino), sujeito s limitaes das capacidades dos arcos. Neste problema, podemos considerar que a quantidade de gs que chega no ponto t igual quantidade de gs que sai do ponto s. Isso pode ser representado por um arco ligando o ponto t ao ponto s. Desta forma, o problema pode ser representado como um problema de programao linear onde deseja-se maximizar o fluxo do n t ao n s (que igual ao fluxo que sai do n s, ou ao fluxo que chega no n t). As restries deste problema, alm da capacidade de cada arco da rede, o fato de que a quantidade de gs que chega em qualquer n igual quantidade de gs que sai deste mesmo n. As variveis de deciso para este problema so: x0: fluxo do n t ao n s; x1: fluxo do n s ao n a; x2: fluxo do n s ao n b; x3: fluxo do n a ao n t; x4: fluxo do n b ao n a; x5: fluxo do n b ao n t. A funo objetivo, a ser maximizada, o fluxo que chega no n t, representado neste problema por x0. Para cada n, o fluxo de gs que chega igual ao fluxo de gs que sai. Convencionando sinal negativo ao fluxo de gs que chega e positivo ao fluxo de gs que sai, temos as seguintes restries: n t: x0 - x3 - x5 = 0 n s: - x0 + x1 + x2 = 0 n a: - x1 + x3 - x4 = 0 n b: - x2 + x4 + x5 = 0 As restries de capacidade so x1 10, x2 18, x3 15, x4 4 e x5 10. O problema pode ser formulado ento como apresentado a seguir. maximizar sujeito a: z = x0 x0 + x0 + x1 - x1 - x2 x1 x2 x3 x4 x5 + x2 + x3 - x4 + x4 + x5 - x3 - x5 =0 =0 =0 =0 10 18 15 4 10

Prof. Erico Lisboa

38

http://www.ericolisboa.eng.br

7 - Anlise de redes

Pesquisa Operacional

7.3 Problema de Caminho Mnimo Um problema bastante comum envolvendo a teoria dos grafos o problema de rota mais curta, ou caminho mnimo. Para cada arco de um grafo, define-se a distncia que ele representa. O objetivo deste tipo de problema encontrar o caminho mais curto entre dois ns. O problema do caminho mnimo pode ser utilizado tambm para representar custos ou tempos mnimos, em vez de distncias. O algoritmo para a soluo de problemas de caminho mnimo que ser estudado o algoritmo de Dijkstra. Este algoritmo determina a distncia mnima entre o vrtice de origem (s) e os demais vrtices. Para melhor apresentar o algoritmo de Dijkstra, vamos analisar o grafo da Figura 7.3.
a 8 s (origem) 5 b 12 4 2 2 c 1 e 4 3 6 12 d 6 t (destino)

Figura 7.3 - Exemplo de grafo para o problema de caminho mnimo. De forma a encontrar a rota mais curta, vamos montar duas tabelas. Na primeira (tabela de distncias mnimas), so colocadas trs colunas: o nome do n, o n de onde vem o caminho mnimo at o n de origem e a distncia do caminho mnimo. Na segunda (tabela auxiliar), so colocadas trs colunas: o nome do n, o n de onde vem o caminho considerado (no necessariamente o mnimo) e a distncia deste caminho.
Distncias mnimas n ant. dist. n Auxiliar ant. dist.

O primeiro n a ser analisado o n de origem. Sua distncia ao n de origem 0. Este n ser ento inserido na tabela de distncias mnimas. Como o caminho mnimo para este n no vem de nenhum outro n, na segunda coluna ser colocado apenas um trao.
Distncias mnimas n ant. dist. s 0 n Auxiliar ant. dist.

Inserido um n na primeira tabela, colocaremos na segunda tabela todos os ns atingidos por este n. No nosso exemplo, os ns a serem inseridos so os ns a, b e c. Para estes ns, o n de onde vem o caminho o prprio n s. A distncia do n de origem a distncia do arco percorrido somada com a distncia do n anterior at a origem. No caso, a distncia do n s 0. A tabela auxiliar fica ento da seguinte maneira.

Prof. Erico Lisboa

39

http://www.ericolisboa.eng.br

7 - Anlise de redes

Pesquisa Operacional

Distncias mnimas n ant. dist. s 0

n a b c

Auxiliar ant. dist. s 8 s 5 s 12

O prximo n a entrar na primeira tabela ser o n de menor distncia at a origem. No caso, o n a ser includo o n b. Como na primeira tabela, o n b ainda no foi inserido, podemos inclu-lo.
Distncias mnimas n ant. dist. s 0 b s 5 n a b c Auxiliar ant. dist. s 8 s 5 s 12

Note que marcado um X ao lado do n na segunda tabela, indicando que este n no deve mais ser considerado no teste de que n entra na primeira tabela. Os ns atingidos pelo n b so os ns c e e, que devem ser inseridos na tabela auxiliar. A distncia destes ns at a origem encontrada somando-se a distncia do arco com a distncia mnima do n b at a origem (mostrada na tabela de distncias mnimas). Desta forma, as tabelas ficam da seguinte maneira.
Distncias mnimas n ant. dist. s 0 b s 5 n a b c c e Auxiliar ant. dist. s 8 s 5 s 12 b 9 b 7

O prximo n a entrar na primeira tabela o n e, vindo de b, com distncia at a origem 7.


Distncias mnimas n ant. dist. s 0 b s 5 e b 7 n a b c c e Auxiliar ant. dist. s 8 s 5 s 12 b 9 b 7

Os nico n atingido por ele o n t.


Distncias mnimas n ant. dist. s 0 b s 5 e b 7 n a b c c e t Auxiliar ant. dist. s 8 s 5 s 12 b 9 b 7 e 19

O prximo n a entra o n a, vindo de s, com distncia at a origem de 8.

Prof. Erico Lisboa

40

http://www.ericolisboa.eng.br

7 - Anlise de redes

Pesquisa Operacional

Distncias mnimas n ant. dist. s 0 b s 5 e b 7 a s 8

n a b c c e t

Auxiliar ant. dist. s 8 s 5 s 12 b 9 b 7 e 19

x x

Os ns atingidos pelo n a so os ns c e d.
Distncias mnimas n ant. dist. s 0 b s 5 e b 7 a s 8 n a b c c e t c d Auxiliar ant. dist. s 8 s 5 s 12 b 9 b 7 e 19 a 10 a 12

x x

O prximo n a entrar o n c, vindo de b.


Distncias mnimas n ant. dist. s 0 b s 5 e b 7 a s 8 c b 9 n a b c c e t c d Auxiliar ant. dist. s 8 s 5 s 12 b 9 b 7 e 19 a 10 a 12

x x x x

O n c atinge os ns d e e.
Distncias mnimas n ant. dist. s 0 b s 5 e b 7 a s 8 c b 9 n a b c c e t c d d e Auxiliar ant. dist. s 8 s 5 s 12 b 9 b 7 e 19 a 10 a 12 c 12 c 10

x x x x

O prximo n a entrar o n c, vindo de a. Como o n c j est includo, marcamos ele com um X e passamos para o prximo, que o n e (vindo de c) que tambm j est includo. O n c (vindo de s) tambm j est includo. O prximo n que ainda no est includo o n d, vindo de a ou de c, j que as duas distncias so iguais.

Prof. Erico Lisboa

41

http://www.ericolisboa.eng.br

7 - Anlise de redes

Pesquisa Operacional

Distncias mnimas n ant. dist. s 0 b s 5 e b 7 a s 8 c b 9 d a 12

n a b c c e t c d d e

Auxiliar ant. dist. s 8 s 5 s 12 b 9 b 7 e 19 a 10 a 12 c 12 c 10

x x x x x x x x x

Os ns atingidos pelo n d so os ns e e t.
Distncias mnimas n ant. dist. s 0 b s 5 e b 7 a s 8 c b 9 d a 12 n a b c c e t c d d e e t Auxiliar ant. dist. s 8 s 5 s 12 b 9 b 7 e 19 a 10 a 12 c 12 c 10 d 18 d 18

x x x x x x x x x

O n e j est includo; ento o prximo n a ser includo o n t, vindo de d.


Distncias mnimas n ant. dist. s 0 b s 5 e b 7 a s 8 c b 9 d a 12 t d 18 n a b c c e t c d d e e t Auxiliar ant. dist. s 8 s 5 s 12 b 9 b 7 e 19 a 10 a 12 c 12 c 10 d 18 d 18

x x x x x x x x x x x

Como todos os ns j foram includos na tabela de distncias mnimas, o problema est resolvido. A tabela mostra, para cada n do grafo, a distncia mnima at o n de origem. O caminho mnimo vem do n indicado na coluna de n anterior. Desta forma, pode-se determinar o caminho mnimo repetindo-se este passo sucessivamente at que o n de origem seja encontrado. Para encontrarmos o caminho mnimo do n t, por exemplo, pegamos o n anterior a ele (d). O n anterior ao n d o n a, cujo n anterior o n de origem (s). Desta forma, o caminho mnimo da origem at o n t (s - a - d - t).

Prof. Erico Lisboa

42

http://www.ericolisboa.eng.br

7 - Anlise de redes

Pesquisa Operacional

O algoritmo pode ento ser definido da seguinte maneira: Passo 1. Inserir o n de origem na tabela de distncias mnimas. Sua distncia at o n de origem 0. Passo 2. Colocamos na tabela auxiliar todos os ns atingidos por este n. Para os ns includos na tabela auxiliar, o n de onde vem o caminho o n recm inserido na tabela de distncias mnimas. A distncia do n de origem a distncia do arco percorrido somada com a distncia do n recm inserido na tabela de distncias mnimas at a origem. Passo 3. O prximo n a entrar na tabela de distncias mnimas ser o n, entre os ns no marcados com um X, de menor distncia at a origem. Marca-se este n com um X. Caso este n j esteja inserido na tabela de distncias mnimas, devemos retornar ao passo 3. Passo 4. Aps inserir o n na tabela de distncias mnimas, volta-se ao passo 2 at que todos os ns do grafo tenham sido inseridos na tabela de distncias mnimas. Passo 5. A tabela de distncias mnimas indica a distncia do caminho mnimo de cada n at o n de origem, e o n de onde vem o caminho mnimo. Obs. 1: se todos os ns da tabela auxiliar j tiverem sido marcados e alguns ns ainda no tiverem sido includos na tabela de distncia mnima, isto indica que no h caminho do n de origem at os ns que no foram includos. Obs. 2: o algoritmo de Dijkstra no vlido caso existam arcos com valores negativos.

Prof. Erico Lisboa

43

http://www.ericolisboa.eng.br

You might also like