You are on page 1of 6

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS ALEGRETE ENGENHARIA DE SOFTWARE TEORIA DE GRAFOS

Prof. Alessandro Bof de Oliveira Frank Maldonado Mat. 111150198

Aplicao de exerccios utilizando o Algoritmo de Dijakstra


1) Dado o grafo abaixo, com os respectivos pesos positivos e no-

nulos em suas arestas, encontre o caminho mais curto entre o vrtice A e o vrtice E, aplicando o Algoritmo de Dijkstra.

B
3 8

A
4

D
1

Resposta Exerccio 1 Sabemos que, pelo Algoritmo de Dijkstra, deve-se percorrer todos os ns do grafo, inciando em um n fixado e encontrando sucessivamente o n mais prximo, ainda no percorrido, at que todos tenham sido percorridos. Ento efetuamos os seguintes passos:
1- Inicializamos os custos dos vrtices.

O 1 vrtice (A) inicializado com 0 , pois ele o ponto de partida e at ele mesmo no h custo nenhum e inicializamos os outros com infinito, indicando que ainda no foram calculados custos para eles. (Fig. 1a.)
2-

[]
B 3 8

[0 A ]
4

[]
7

D
1

[]

[]
Figura 1a

3- Verificamos os vrtices adjacentes a A e que ainda no tenham

sido percorridos, ou seja B,D,C verifica-se o caminho mais curto a ser percorrido no caso at o vrtice B, pois tem peso 3, e atribumos o valor do custo de B, que a soma do peso de A(0) com a distncia da aresta adjacente a B(3), totalizando 3.
4- Aplicando a mesma regra para as outras duas

vrtices adjacentes a A, temos ento para o vrtice D (custo 7) e para o vrtice C (custo 4). Fig.1b [0
]
A
4

[3]
B 3 7 8

[7]
D
1 9

[]

[4]
Figura 1b

5- Dessas 3 vrtices, pegamos o caminho mais curto, que B

(custo 3) e verificamos seus vrtices adjacentes, ou seja, somente o vrtice E ().


6- Calculamos o custo do vrtice E, que o custo de B (3) mais 8,

totalizando custo 11 para a E.


B 3

[3]

Figura 1c.
8

[0 A ]
4

[7]
7

D
1

[11]
E

[4]
Figura 1c

7- Atravs dos processos anteriores obtivemos o custo entre o

caminho A-B-E que 11. Agora faremos novamente o processo de percorrer os vrtices verificando o caminho mais curto j percorrido, que neste caso C (custo 4).

8- Verificamos os adjacentes de C no percorridos, neste caso, D e

E.
9- Soma-se ento o custo do vrtice C (4) com a distncia da

aresta at D (1), resultando no custo


B 3

[3]

5. Figura 1d
8

[0 A ]
4

[5]
7

D
1

[11]
E

[4]
Figura 1d

10- Fazemos o mesmo processo at o vrtice E, que resultar num

custo 10. Figura 1e


B 3

[3]
8

[0 A ]
4

[5]
7

D
1

[10]
E

[4]
Figura 1e

11- Verifica-se o caminho de menor custo j obtido, que foi A-C-D,

e soma-se o valor de seu custo acumulado (5) com o a distncia dos vrtices vizinhos, neste caso 9, resultando num custo de total 14. Figura 1f [3]
B 3 8

[0 A ]
4

[5]
7

D
1

[14]
E

[4]
Figura 1f

12- Portanto o custo entre o caminho A-C-D-E 14.

13- Comparando o custo do caminho

A-C-D-E que 14, com o anteriormente calculado A-C-E que 10, vemos que este ltimo o caminho de menor custo. Portanto a resposta certa para o exerccio : O caminho entre os vrtices A-C-E, de valor 10 o mais curto entre os vrtices A e E. vrtice 1 a qualquer n, utilizando o Algoritmo de Dijakstra.
2 2 3 1 3 2 4 3 7 1 3 3 1 2 6 2 5 3

2) Dado o grafo abaixo, vamos calcular a distncia mais curta do

Resolvendo o exerccio 2.

1- De inicio ento escolhemos o n 1 e marcamos com a seguinte etiqueta [0,-]0 onde o 1 0(zero) representa que no existe nenhuma
distncia, o hfen (-) que no procede de nenhum lugar e zero(0 fora do colchete) quer dizer que nenhuma interao.

2- Calculamos ento a etiquetas correspondentes (vrtices adjacentes) ao vrtice n 1. Nesse caso os vrtices 2 e 4 e percorremos, segundo o Algoritmo de Dijkstra o caminho mais curto (ou de menor custo). Observamos nesse caso que houve um empate ou seja os valores so iguais para os vrtices 3 e 4, podendo-se, neste caso, escolher aleatoriamente o vrtice que se quer prosseguir. 3- Pegaremos o vrtice 2 e fizemos o clculo: 0 (valor do vrtice 1) + 3
(valor do vrtice 2) = 3. A procedncia do vrtice 1 e o n de interao 1, ficando assim a etiqueta [3,1]1. Da mesma forma fica a mesma etiqueta para o vrtice 4 pois tem o mesmo valor a sua aresta e a procedncia do vrtice 1. Os vrtices 1 e 4 j foram esgotados todos os clculos dos custos de suas arestas para todos os vrtices adjacentes, portanto, ficam marcados e no mais so percorridos.

4- Escolhe-se agora a menor distncia acumulada. Como houve empate


no acmulo, escolhe-se aleatoriamente como j vimos anteriormente. Ento vamos escolher o vrtice 4 e vamos calcular com os vrtices adjacentes a 4 ainda no percorridos. No caso os vrtices: 3,6,7.

5-

O vrtice 4 com o vrtice 3,ficaria ento: [3,1]1 pois o acumulado do 4 +2 que o valor da aresta at 3. Ficaria ento a etiqueta: [5,4]2 pois 5 o acumulado, 4 procedncia e a interao 2.

6-

Fazendo para o vrtice 6 ficaria [4,4]2 e para o vrtice 7 7- Escolhes o vrtices que j foram calculados os seus custos e que ainda no foram marcados que so:2 ([3,1]1), 3([5,4]2),6([4,4]2),7([6,4]2). Novamente pegamos o de custo acumulado menor que o 2. Fizemos o custo de 2 5 e a etiqueta em 5 seria [5,2]3 .Fizemos com a outra adjacente ao 2 que o 3. A etiqueta ficar com o valor [4,2]3 . Notamos que o vrtice 3 agora possui duas etiquetas: [5,4]2 e [4,2]3. O que faramos agora? Ficamos com a distncia menor e cancelamos a anterior. 8- Novamente pegamos a menor distncia acumulada dos vrtices: 3,5,6,7 que : 3 e 6 que 4 respectivamente. Como sabemos podemos escolher qualquer um dos dois vrtices. 9- Vamos escolher ento, o vrtice 3 que nesse momento pode ir para o vrtice 5 e para o vrtice 6 . Vrtice 3 em direo ao 5 sua distncia acumulada fica com o valor 7. menor que o valor 5 que ali j estava na etiqueta acumulado? No, ento mantemos a etiqueta que j estava. Com o vrtice 6 ficaria o valor acumulado de 6 que tambm no menor ao 4 que ali j estava na etiqueta permanecendo o valor 4. 10J neste momento temos apenas para percorrer os vrtices 5,6,7. O menor valor o 4 que est no vrtice 6 . Indo do vrtice 6 para o vrtice 5, a sua distncia acumulada ficaria 7, que no menor do que o 5 que ali j est. 11Indo do 6 ao 7 somaramos: 4+2 = 6. Deu empate com o valor da etiqueta que j havia ali anteriormente. 12Novamente pegamos a menor distncia que a do vrtice 5 cujo valor 5. A partir deste vrtice j percorremos todos os outros adjacentes, ento no h mais para percorrer. Igualmente acontece com o vrtice 7. Vejamos a Figura 2a

ficaria [6,4]2.

[3,1]1 2 2 3 [0,-]0 1 3 [3,1]1 [4,2]3 2 4 1 3 3 1 2

[5,2]5 5 3 [4,4]2

6 2

Figura 2b

7 [6,4]4

Analisando a figura, podemos indagar vrias questes como:


a) Qual a distncia entre 1 e 7? Vendo o grafo com os seus custos

calculados vemos que a distncia entre 1 e 7 6.

Referncias: CORMEN,Thomas H. Algoritmos: Teoria e Prtica. Rio de Janeiro: Campus, 2002. GERSTING,Judith L. Fundamentos Matemticos para a Cincia da Computao,3 Ed. LTC, 1995.

You might also like