SlideShare uma empresa Scribd logo
Teoria dos Grafos - Exercícios do Capítulo 3
Questões 1, 2 e 5
Michel Alves dos Santos ∗
Abril de 2011
∗Bacharelando em Ciência da Computação, Universidade Federal do Estado de Alagoas(UFAL). E-mails: mi-
chel.mas@gmail.com, michelalavessantos@hotmail.com. Disciplina: Teoria dos Grafos. Docente Responsável: Leo-
nardo Viana Pereira.
1
Conteúdo
Lista de Figuras 3
Lista de Tabelas 3
1 Questão 1. Execute o algoritmo de Dijkstra com o exemplo do item 3.2, tro-
cando antes o sinal do custo do arco (E,B). 4
2 Questão 2. Considere os dois grafos utilizados nos algoritmos de Dijkstra e
Bellman-Ford. 5
2.1 Aplique o algoritmo de Dijkstra, acompanhando a formalização, aos dois grafos, use
os vértices A, no primeiro, e 1, no segundo, como origem. . . . . . . . . . . . . . . 5
2.1.1 Para o primeiro grafo teremos: . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.2 Para o segundo grafo teremos: . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Aplique o algoritmo de Bellmann-Ford aos dois grafos (mesma observação). . . . . 9
2.2.1 Para o primeiro grafo teremos: . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.2 Para o segundo grafo teremos: . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 No segundo grafo, mude o valor do arco(3,5) para -2 e aplique os dois algoritmos.
Observe os resultados obtidos e interprete. . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.1 Dijkstra: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.2 Bellmann-Ford: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3 Questão 5. Utilizando o grafo a seguir, aplique o algoritmo de Dijkstra para
achar a menor distância do vértice A aos outros vértices e construa a arbores-
cência de distâncias a partir de A. 12
2
Lista de Figuras
1 Primeira Questão. Distâncias em quilômetros entre as cidades de uma certa região. 4
2 Arborescência de distâncias a partir do vértice A. . . . . . . . . . . . . . . . . . . . 5
3 Grafos fornecidos para a questão de número 2. . . . . . . . . . . . . . . . . . . . . 5
4 Arborescência de distâncias a partir do vértice A. . . . . . . . . . . . . . . . . . . . 7
5 Arborescência de distâncias a partir do vértice (1). . . . . . . . . . . . . . . . . . . 9
6 Grafo com o valor do arco (3,5) invertido. . . . . . . . . . . . . . . . . . . . . . . . 10
7 Grafo fornecido para a questão de número 5. . . . . . . . . . . . . . . . . . . . . . 12
8 Arborescência de distâncias a partir do vértice A. . . . . . . . . . . . . . . . . . . . 13
Lista de Tabelas
1 1o
Passo. Iniciando a tabela de distâncias e relações de anteriodidade. O rótulo
“Distância” indica a distância de qualquer vértice até o vértice A. O rótulo “Ante-
rior” indica o vértice anterior pelo qual o caminho está sendo contruído. . . . . . . 4
2 2o
Passo. Fechando o vértice C pois não existe menor distância. . . . . . . . . . . . 4
3 3o
Passo. Fechando o vértice D pois não existe menor distância. . . . . . . . . . . . 4
4 4o
Passo. Fechando o vértice E pois não existe menor distância. . . . . . . . . . . . 4
5 5o
Passo. Fechando o vértice F pois não existe menor distância. . . . . . . . . . . . 4
6 Passo Final. Fechando o vértice B* pois não existe menor distância. Todos os
vértices foram avaliados, com isso construímos a tabela com as distâncias. . . . . . 5
7 1o
Passo. Construindo a tabela de distâncias. . . . . . . . . . . . . . . . . . . . . . 5
8 2o
Passo. Inicializando a tabela de distâncias. . . . . . . . . . . . . . . . . . . . . . 6
9 3o
Passo. Passando pelo vértice C. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
10 4o
Passo. Passando pelo vértice D. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
11 5o
Passo. Passando pelo vértice E. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
12 6o
Passo. Passando pelo vértice B. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
13 Passo Final. Obtenção de todas as distâncias a partir do vértice A. . . . . . . . . . 7
14 1o
Passo. Construindo a tabela de distâncias. . . . . . . . . . . . . . . . . . . . . . 8
15 2o
Passo. Inicializando a tabela de distâncias. . . . . . . . . . . . . . . . . . . . . . 8
16 3o
Passo. Passando pelo vértice (2). . . . . . . . . . . . . . . . . . . . . . . . . . . 8
17 4o
Passo. Passando pelo vértice (3). . . . . . . . . . . . . . . . . . . . . . . . . . . 8
18 5o
Passo. Passando pelo vértice (4). . . . . . . . . . . . . . . . . . . . . . . . . . . 9
19 6o
Passo. Passando pelo vértice (5). . . . . . . . . . . . . . . . . . . . . . . . . . . 9
20 Passo Final. Obtenção de todas as distâncias a partir do vértice (1). . . . . . . . . 9
21 1o
Passo. Iniciando tabela com distâncias a partir do vértice (1). Usando o valor
1000 para representar infinito. Fechando o vértice (1), pois é nosso vértice de partida. 10
22 2o
Passo. Obtendo as rotas para os vértices (2) e (5) apartir do vértice (1). . . . . 11
23 3o
Passo. Obtendo as rotas para os vértices (3) e (4) apartir do vértice (2). . . . . 11
24 4o
Passo. Obtendo as rotas para os vértices (4) e (5) apartir do vértice (3). . . . . 11
25 5o
Passo. Obtendo rota para o vértice (1) apartir do vértice (4). Observe que o
vértice (1) já se encontra fechado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
26 6o
Passo. Obtendo rota para o vértice (1) e (4) apartir do vértice (5). . . . . . . . 11
27 Tabela com todas as distâncias a partir do vértice (1). Houve uma redução nas
distâncias devido ao caminho com valor negativo. . . . . . . . . . . . . . . . . . . . 11
28 1o
Passo. Iniciando a tabela de distâncias e relações de anteriodidade. O rótulo
“Distância” indica a distância de qualquer vértice até o vértice A. O rótulo “Ante-
rior” indica o vértice anterior pelo qual o caminho está sendo contruído. . . . . . . 12
29 Último Passo. Construção da tabela com as distâncias a partir do vértice A. . . . . 12
3
1 Questão 1. Execute o algoritmo de Dijkstra com o exem-
plo do item 3.2, trocando antes o sinal do custo do arco
(E,B).
Figura 1: Primeira Questão. Distâncias em quilômetros entre as cidades de uma certa região.
A* B C D E F
Distância 0 ∞ ∞ ∞ ∞ ∞
Anterior - - - - - -
Tabela 1: 1o
Passo. Iniciando a tabela de distâncias e relações de anteriodidade. O rótulo
“Distância” indica a distância de qualquer vértice até o vértice A. O rótulo “Anterior” indica o
vértice anterior pelo qual o caminho está sendo contruído.
A* B C* D E F
Distância 0 12 4 ∞ ∞ ∞
Anterior - A A - - -
Tabela 2: 2o
Passo. Fechando o vértice C pois não existe menor distância.
A* B C* D* E F
Distância 0 12 4 6 ∞ 12
Anterior - A A C - D
Tabela 3: 3o
Passo. Fechando o vértice D pois não existe menor distância.
A* B C* D* E* F
Distância 0 12 4 6 6 12
Anterior - A A C C E
Tabela 4: 4o
Passo. Fechando o vértice E pois não existe menor distância.
A* B C* D* E* F*
Distância 0 12 4 6 6 12
Anterior - A A C C E
Tabela 5: 5o
Passo. Fechando o vértice F pois não existe menor distância.
4
A* B* C* D* E* F*
Distância 0 12 4 6 6 12
Anterior - A A C C E
Tabela 6: Passo Final. Fechando o vértice B* pois não existe menor distância. Todos os vértices
foram avaliados, com isso construímos a tabela com as distâncias.
Figura 2: Arborescência de distâncias a partir do vértice A.
2 Questão 2. Considere os dois grafos utilizados nos algo-
ritmos de Dijkstra e Bellman-Ford.
Figura 3: Grafos fornecidos para a questão de número 2.
2.1 Aplique o algoritmo de Dijkstra, acompanhando a formalização, aos
dois grafos, use os vértices A, no primeiro, e 1, no segundo, como
origem.
2.1.1 Para o primeiro grafo teremos:
Procuramos a cidade mais próxima de A. Depois, sucessivamente, procuramos entre as cidades
não visitadas aquela que tem a menor distância desde A, diretamente ou passando por alguma
cidade já visitada, anotando sempre o percurso escolhido. Estamos considerando que nunca te-
remos distâncias negativas, pois isso atrapalharia o algoritmo, já que o mesmo não sabe lidar
com distâncias negativas(ele pode entrar em looping). Começamos por construir uma tabela de
distâncias entre os vértices. Para os vértices não ligados consideraremos a distância como infinita.
Para os próximos passos usaremos o número 1000 para representar a distância infinita (∞) que
A* B C D E F
A 0 12 4 ∞ ∞ ∞
B ∞ 0 6 6 ∞ ∞
C ∞ 10 0 ∞ 2 ∞
D ∞ ∞ 8 0 ∞ 6
E ∞ 2 ∞ ∞ 0 6
F ∞ ∞ ∞ ∞ ∞ 0
Tabela 7: 1o
Passo. Construindo a tabela de distâncias.
foi colocada na tabela de distâncias para representar a falta de ligação entre os vértices.
5
Inicialização: A distância de A para todos os outros vértices é marcada como infinita(nesse
caso 1000), exceto para o próprio A(distância 0). Marcamos A como fechado, usando um asterisco,
e o vértice anterior fica vazio porque A é o nosso vértice de partida.
A* B C D E F
Distância 0 ∞ ∞ ∞ ∞ ∞
Anterior - - - - - -
Tabela 8: 2o
Passo. Inicializando a tabela de distâncias.
• 2o
Passo: Que cidades posso alcançar a partir de A e qual é a distância entre elas?
• Resposta: B, distância = 12 (mudamos para 12 pois: 12 < 1000 )
• Resposta: C, distância = 4 (mudamos para 4 pois: 4 < 1000 )
O vértice C será fechado pois sua distância não pode ser melhorada e será o nosso próximo ponto
de partida.
A* B C* D E F
Distância 0 12 4 ∞ ∞ ∞
Anterior A A A - - -
Tabela 9: 3o
Passo. Passando pelo vértice C.
• 3o
Passo: Que cidades posso alcançar a partir de C e qual é a distância entre elas?
• Resposta: B, distância = 14 (não mudamos para 14 pois: 12 < 14 )
• Resposta: D, distância = 6 (mudamos para 6 pois: 6 < 1000 )
• Resposta: E, distância = 6 (mudamos para 6 pois: 6 < 1000 )
O vértice D será fechado pois sua distância não pode ser melhorada e será o nosso próximo ponto
de partida.
A* B C* D* E F
Distância 0 12 4 6 6 ∞
Anterior A A A C C -
Tabela 10: 4o
Passo. Passando pelo vértice D.
• 4o
Passo: Que cidades posso alcançar a partir de D e qual é a distância entre elas?
• Resposta: C, distância = 14 (não mudamos para 14 pois: 4 < 14 )
• Resposta: F, distância = 12 (mudamos para 12 pois: 12 < 1000 )
Por enquanto nenhum vértice será fechado mas as distâncias computadas que estavam dentro do
padrão de minimalidade serão atualizadas na tabela. Próximo ponto de partida será o vértice E.
• 5o
Passo: Que cidades posso alcançar a partir de E e qual é a distância entre elas?
• Resposta: B, distância = 8 (mudamos para 8 pois: 8 < 12)
• Resposta: F, distância = 12 (mudamos para 12 pois: 12 <= 12)
6
A* B C* D* E F
Distância 0 12 4 6 6 12
Anterior A A A C C D
Tabela 11: 5o
Passo. Passando pelo vértice E.
A* B C* D* E* F
Distância 0 8 4 6 6 12
Anterior A E A C C E
Tabela 12: 6o
Passo. Passando pelo vértice B.
O vértice E será fechado pois sua distância não pode ser melhorada e B será o nosso próximo
ponto de partida.
• 6o
Passo: Que cidades posso alcançar a partir de B e qual é a distância entre elas?
• Resposta: C, distância = 14 (não mudamos para 14 pois: 4 < 14)
• Resposta: D, distância = 14 (não mudamos para 14 pois: 6 < 14)
Porém vale observar que o vértice C já foi fechado e o vértice D também, logo o vértice B se-
ráfechado pois não existe menor distância para alcançá-lo. Além disso chegamos ao final das
verificações, logo o vértice F também será fechado e com isso teremos:
A* B* C* D* E* F*
Distância 0 8 4 6 6 12
Anterior A E A C C E
Tabela 13: Passo Final. Obtenção de todas as distâncias a partir do vértice A.
Figura 4: Arborescência de distâncias a partir do vértice A.
2.1.2 Para o segundo grafo teremos:
Começamos por construir uma tabela de distâncias entre os vértices. Para os vértices não
ligados consideraremos a distância como infinita (∞). Para os próximos passos usaremos o número
1000 para representar a distância infinita (∞) que foi colocada na tabela de distâncias para
representar a falta de ligação entre os vértices.
Inicialização: A distância de (1) para todos os outros vértices é marcada como infinita(nesse
caso 1000), exceto para o próprio (1)(distância 0). Marcamos (1) como fechado, usando um
asterisco, e o vértice anterior fica vazio porque (1) é o nosso vértice de partida.
• 2o
Passo: Que vértices posso alcançar a partir de (1) e qual é a distância entre eles?
• Resposta: (2), distância = 1 (mudamos para 1 pois: 1 < 1000 )
7
(1) (2) (3) (4) (5)
(1) 0 1 ∞ ∞ 1
(2) ∞ 0 1 2 ∞
(3) ∞ ∞ 0 4 2
(4) 3 ∞ ∞ 0 ∞
(5) 2 ∞ ∞ 1 0
Tabela 14: 1o
Passo. Construindo a tabela de distâncias.
(1)* (2) (3) (4) (5)
Distância 0 ∞ ∞ ∞ ∞
Anterior - - - - -
Tabela 15: 2o
Passo. Inicializando a tabela de distâncias.
• Resposta: (5), distância = 1 (mudamos para 1 pois: 1 < 1000 )
O vértice (2) será fechado pois sua distância não pode ser melhorada e será o nosso próximo ponto
de partida.
(1)* (2)* (3) (4) (5)
Distância 0 1 ∞ ∞ 1
Anterior - (1) - - (1)
Tabela 16: 3o
Passo. Passando pelo vértice (2).
• 3o
Passo: Que vértices posso alcançar a partir de (2) e qual é a distância entre eles?
• Resposta: (3), distância = 2 (mudamos para 2 pois: 2 < 1000 )
• Resposta: (4), distância = 3 (mudamos para 3 pois: 3 < 1000 )
O vértice (3) será fechado pois sua distância não pode ser melhorada e será o nosso próximo ponto
de partida.
(1)* (2)* (3)* (4) (5)
Distância 0 1 2 3 1
Anterior - (1) (2) (2) (1)
Tabela 17: 4o
Passo. Passando pelo vértice (3).
• 4o
Passo: Que vértices posso alcançar a partir de (3) e qual é a distância entre eles?
• Resposta: (4), distância = 6 (não mudamos para 6 pois: 3 < 6 )
• Resposta: (5), distância = 4 (não mudamos para 4 pois: 1 < 4 )
O vértice (4) não será fechado pois ainda não averiguamos se a distância pode ser melhorada e
será o nosso próximo ponto de partida.
• 4o
Passo: Que vértices posso alcançar a partir de (4) e qual é a distância entre eles?
• Resposta: (1), distância = 6 (não mudamos para 6 pois: 0 < 6 )
8
(1)* (2)* (3)* (4) (5)
Distância 0 1 2 3 1
Anterior - (1) (2) (2) (1)
Tabela 18: 5o
Passo. Passando pelo vértice (4).
(1)* (2)* (3)* (4) (5)
Distância 0 1 2 3 1
Anterior - (1) (2) (2) (1)
Tabela 19: 6o
Passo. Passando pelo vértice (5).
O vértice (4) não será fechado pois ainda não averiguamos se a distância pode ser melhorada e o
vértice (5) será o nosso próximo ponto de partida. Observe que o vértice (1) já estava fechado.
• Passo Final: Que vértices posso alcançar a partir de (5) e qual é a distância entre eles?
• Resposta: (1), distância = 3 (não mudamos para 3 pois: 0 < 3 )
• Resposta: (4), distância = 2 (mudamos para 2 pois: 2 < 3 )
O vértice (4) será fechado pois a distância não pode ser melhorada e o vértice (5) também será.
(1)* (2)* (3)* (4)* (5)*
Distância 0 1 2 2 1
Anterior - (1) (2) (5) (1)
Tabela 20: Passo Final. Obtenção de todas as distâncias a partir do vértice (1).
Figura 5: Arborescência de distâncias a partir do vértice (1).
2.2 Aplique o algoritmo de Bellmann-Ford aos dois grafos (mesma ob-
servação).
2.2.1 Para o primeiro grafo teremos:
(A, B) : dAB(∞) > d11(0) + vAB(12) → dAB = 12 anterior(B) = A
(A, C) : dAC(∞) > d11(0) + vAC(4) → dAC = 4 anterior(C) = A
(C, B) : dAB(12) < dAC(4) + vCB(10) → dAB = 12 sem modificação
(C, D) : dAD(∞) > dAC(4) + vCD(2) → dAD = 6 anterior(D) = C
(C, E) : dAE(∞) > dAC(4) + vCE(2) → dAE = 6 anterior(E) = C
(D, C) : dAC(4) < dAD(6) + vDC(8) → dAC = 4 sem modificação
(D, F) : dAF (∞) > dAD(6) + vDF (6) → dAF = 12 anterior(F) = D
9
(E, B) : dAB(12) > dAE(6) + vEB(2) → dAB = 8 anterior(B) = E
(E, F) : dAF (12) >= dAE(6) + vEF (6) → dAF = 12 anterior(F) = E
(B, C) : dAC(4) < dAB(8) + vBC(6) → dAC = 4 sem modificação
(B, D) : dAD(6) < dAB(8) + vBD(6) → dAD = 6 sem modificação
Em uma segunda iteração não haverá mudanças nos valores das distâncias.
2.2.2 Para o segundo grafo teremos:
(1, 2) : d12(∞) > d11(0) + v12(1) → d12 = 1 anterior(2) = 1
(1, 5) : d15(∞) > d11(0) + v15(1) → d15 = 1 anterior(5) = 1
(2, 3) : d13(∞) > d12(1) + v23(1) → d13 = 2 anterior(3) = 2
(2, 4) : d14(∞) > d12(1) + v24(2) → d14 = 3 anterior(4) = 2
(3, 4) : d14(3) > d13(2) + v34(4) → sem modificação
(3, 5) : d15(1) > d13(2) + v35(2) → sem modificação
(4, 1) : d11(0) > d14(3) + v41(3) → sem modificação
(5, 1) : d11(0) > d15(1) + v51(2) → sem modificação
(5, 4) : d14(3) > d15(1) + v54(1) → d14 = 2 anterior(4) = 5
Em uma segunda iteração não haverá mudanças nos valores das distâncias.
2.3 No segundo grafo, mude o valor do arco(3,5) para -2 e aplique os
dois algoritmos. Observe os resultados obtidos e interprete.
Figura 6: Grafo com o valor do arco (3,5) invertido.
2.3.1 Dijkstra:
(1)* (2) (3) (4) (5)
Distância 0 1000 1000 1000 1000
Anterior - - - - -
Tabela 21: 1o
Passo. Iniciando tabela com distâncias a partir do vértice (1). Usando o valor 1000
para representar infinito. Fechando o vértice (1), pois é nosso vértice de partida.
10
(1)* (2) (3) (4) (5)
Distância 0 1 1000 1000 1
Anterior - (1) - - (1)
Tabela 22: 2o
Passo. Obtendo as rotas para os vértices (2) e (5) apartir do vértice (1).
(1)* (2) (3) (4) (5)
Distância 0 1 2 3 1
Anterior - (1) (2) (2) (1)
Tabela 23: 3o
Passo. Obtendo as rotas para os vértices (3) e (4) apartir do vértice (2).
(1)* (2)* (3)* (4) (5)
Distância 0 1 2 3 0
Anterior - (1) (2) (2) (3)
Tabela 24: 4o
Passo. Obtendo as rotas para os vértices (4) e (5) apartir do vértice (3).
(1)* (2)* (3)* (4) (5)
Distância 0 1 2 3 0
Anterior - (1) (2) (2) (3)
Tabela 25: 5o
Passo. Obtendo rota para o vértice (1) apartir do vértice (4). Observe que o vértice
(1) já se encontra fechado.
(1)* (2)* (3)* (4)* (5)
Distância 0 1 2 1 0
Anterior - (1) (2) (5) (3)
Tabela 26: 6o
Passo. Obtendo rota para o vértice (1) e (4) apartir do vértice (5).
(1)* (2)* (3)* (4)* (5)*
Distância 0 1 2 1 0
Anterior - (1) (2) (5) (3)
Tabela 27: Tabela com todas as distâncias a partir do vértice (1). Houve uma redução nas
distâncias devido ao caminho com valor negativo.
11
2.3.2 Bellmann-Ford:
(1, 2) : d12(∞) > d11(0) + v12(1) → d12 = 1 anterior(2) = 1
(1, 5) : d15(∞) > d11(0) + v15(1) → d15 = 1 anterior(5) = 1
(2, 3) : d13(∞) > d12(1) + v23(1) → d13 = 2 anterior(3) = 2
(2, 4) : d14(∞) > d12(1) + v24(2) → d14 = 3 anterior(4) = 2
(3, 4) : d14(3) > d13(2) + v34(4) → sem modificação
(3, 5) : d15(1) > d13(2) + v35(−2) → d15 = 0 anterior(5) = 3
(4, 1) : d11(0) > d14(3) + v41(3) → sem modificação
(5, 1) : d11(0) > d15(1) + v51(2) → sem modificação
(5, 4) : d14(3) > d15(0) + v54(1) → d14 = 1 anterior(4) = 5
Em uma segunda iteração não haverá mudanças nos valores das distâncias.
3 Questão 5. Utilizando o grafo a seguir, aplique o algo-
ritmo de Dijkstra para achar a menor distância do vér-
tice A aos outros vértices e construa a arborescência de
distâncias a partir de A.
Figura 7: Grafo fornecido para a questão de número 5.
A* B C D E F G H I J
Distância 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞
Anterior - - - - - - - - - -
Tabela 28: 1o
Passo. Iniciando a tabela de distâncias e relações de anteriodidade. O rótulo
“Distância” indica a distância de qualquer vértice até o vértice A. O rótulo “Anterior” indica o
vértice anterior pelo qual o caminho está sendo contruído.
A* B* C* D* E* F* G* H* I* J*
Distância 0 4 1 2 7 4 5 4 8 6
Anterior - A A C B D D D F H
Tabela 29: Último Passo. Construção da tabela com as distâncias a partir do vértice A.
12
Figura 8: Arborescência de distâncias a partir do vértice A.
13

Mais conteúdo relacionado

Mais procurados (20)

PDF
Ficha formativa 11 ã‚⺠maio 2-2
David_Costa_30
 
DOC
L mat06(estudo.com)
Arthur Prata
 
PDF
Exercícios 2º 2012
Jhow Almeida
 
DOC
L mat04(estudo.com) ok
Arthur Prata
 
DOC
L mat03(estudo.com)
Arthur Prata
 
PDF
Graph Theory - Exercises - Chapter 4
Michel Alves
 
PDF
Proposta de teste intermédio 9ano
Martinha Alexandre
 
PDF
Questões para testes e provas 8a série 9 ano
Helen Dias
 
PDF
Lista2 prova ii completa
Itaylane Malta
 
PDF
Livro de fichas_6ºAno
Ana Cristina Mesquita
 
PDF
Fp ficha de preparação t2
CarlaLuisaBernardoAl
 
PDF
Matematica 4 exercicios gabarito 13
comentada
 
DOC
L mat08(estudo.com)
Arthur Prata
 
PDF
Proposta correção teste_intermédio_matemática_2013-
Luísa Silva
 
DOCX
Simulado 4-saeb-matemc3a1tica-em
Atividades Diversas Cláudia
 
PDF
Matematica 3 exercicios gabarito 07
comentada
 
PDF
Mf 01 primeiras operacoes
Jane Queirozj
 
DOC
Relações métricas no triângulo retângulo
Angelo Moreira Dos Reis
 
PDF
Matematica 4 exercicios gabarito 06
comentada
 
PDF
2010 volume3 cadernodoaluno_matematica_ensinomedio_3aserie_gabarito
profzwipp
 
Ficha formativa 11 ã‚⺠maio 2-2
David_Costa_30
 
L mat06(estudo.com)
Arthur Prata
 
Exercícios 2º 2012
Jhow Almeida
 
L mat04(estudo.com) ok
Arthur Prata
 
L mat03(estudo.com)
Arthur Prata
 
Graph Theory - Exercises - Chapter 4
Michel Alves
 
Proposta de teste intermédio 9ano
Martinha Alexandre
 
Questões para testes e provas 8a série 9 ano
Helen Dias
 
Lista2 prova ii completa
Itaylane Malta
 
Livro de fichas_6ºAno
Ana Cristina Mesquita
 
Fp ficha de preparação t2
CarlaLuisaBernardoAl
 
Matematica 4 exercicios gabarito 13
comentada
 
L mat08(estudo.com)
Arthur Prata
 
Proposta correção teste_intermédio_matemática_2013-
Luísa Silva
 
Simulado 4-saeb-matemc3a1tica-em
Atividades Diversas Cláudia
 
Matematica 3 exercicios gabarito 07
comentada
 
Mf 01 primeiras operacoes
Jane Queirozj
 
Relações métricas no triângulo retângulo
Angelo Moreira Dos Reis
 
Matematica 4 exercicios gabarito 06
comentada
 
2010 volume3 cadernodoaluno_matematica_ensinomedio_3aserie_gabarito
profzwipp
 

Semelhante a Graph Theory - Exercises - Chapter 3 (20)

PPTX
Caminhos Mínimos - Algoritmo de Dijkstra
Marcos Castro
 
PDF
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Gabriel Albuquerque
 
PDF
Treinamento Para Competições de Programação - All Pairs Shortest Paths - O Al...
Murilo Adriano Vasconcelos
 
PDF
Aulas 11-guloso Algoritmos
Kevin Takano
 
PPTX
MACS - grafos, trajetos e circuitos eulerianos; circuitos eulerianos...
Joana Pinto
 
PDF
Grafoes-cap1e2.pdf
RafaelLopes348223
 
PDF
Caminhos Mínimos: Dijkstra e Floyd-Warshall
Johnnatan Messias
 
PDF
Treinamento para Competições de Programacão - Single-Source Shortest Paths: D...
Murilo Adriano Vasconcelos
 
PDF
Introdução à Teoria dos Grafos
Bianca Dantas
 
PDF
Pesquisa operacional teoria dos grafos
Diego Henrique
 
PDF
Paa algoritmos gulosos
Inael Rodrigues
 
PDF
Floyd-Warshall
Jean Figueiredo
 
PDF
Algoritmos aproximativos
Fernando Simeone
 
PDF
Teoria dos Grafos
Gabriel Albuquerque
 
PDF
Introdução aos grafos: Principais conceitos
ssusera0fc94
 
PPTX
Grafos_1.pptx
ssusera0fc94
 
PPT
Grafos.ppt
LucianoRodrigoFerrei2
 
PDF
09 problemas de grafos np-completos
Yuri Passos
 
PDF
Teoria dos Grados caminhos-circuitos.pdf
GabrielColman5
 
Caminhos Mínimos - Algoritmo de Dijkstra
Marcos Castro
 
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Gabriel Albuquerque
 
Treinamento Para Competições de Programação - All Pairs Shortest Paths - O Al...
Murilo Adriano Vasconcelos
 
Aulas 11-guloso Algoritmos
Kevin Takano
 
MACS - grafos, trajetos e circuitos eulerianos; circuitos eulerianos...
Joana Pinto
 
Grafoes-cap1e2.pdf
RafaelLopes348223
 
Caminhos Mínimos: Dijkstra e Floyd-Warshall
Johnnatan Messias
 
Treinamento para Competições de Programacão - Single-Source Shortest Paths: D...
Murilo Adriano Vasconcelos
 
Introdução à Teoria dos Grafos
Bianca Dantas
 
Pesquisa operacional teoria dos grafos
Diego Henrique
 
Paa algoritmos gulosos
Inael Rodrigues
 
Floyd-Warshall
Jean Figueiredo
 
Algoritmos aproximativos
Fernando Simeone
 
Teoria dos Grafos
Gabriel Albuquerque
 
Introdução aos grafos: Principais conceitos
ssusera0fc94
 
Grafos_1.pptx
ssusera0fc94
 
09 problemas de grafos np-completos
Yuri Passos
 
Teoria dos Grados caminhos-circuitos.pdf
GabrielColman5
 
Anúncio

Mais de Michel Alves (20)

PDF
Texture Synthesis: An Approach Based on GPU Use
Michel Alves
 
PDF
Intelligent Transfer of Thematic Harmonic Color Palettes
Michel Alves
 
PDF
A Framework for Harmonic Color Measures
Michel Alves
 
PDF
Effectiveness of Image Quality Assessment Indexes
Michel Alves
 
PDF
Introduction to Kernel Functions
Michel Alves
 
PDF
About Perception and Hue Histograms in HSV Space
Michel Alves
 
PDF
Color Harmonization - Results
Michel Alves
 
PDF
Wave Simulation Using Perlin Noise
Michel Alves
 
PDF
Similarity Maps Using SSIM Index
Michel Alves
 
PDF
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
Michel Alves
 
PDF
TMS - Schedule of Presentations and Reports
Michel Alves
 
PDF
Month Presentations Schedule - March/2015 - LCG/UFRJ
Michel Alves
 
PDF
Color Palettes in R
Michel Alves
 
PDF
Sigmoid Curve Erf
Michel Alves
 
PDF
Hue Wheel Prototype
Michel Alves
 
PDF
Cosine Curve
Michel Alves
 
PDF
Triangle Mesh Plot
Michel Alves
 
PDF
Triangle Plot
Michel Alves
 
PDF
Capacity-Constrained Point Distributions :: Video Slides
Michel Alves
 
PDF
Capacity-Constrained Point Distributions :: Density Function Catalog
Michel Alves
 
Texture Synthesis: An Approach Based on GPU Use
Michel Alves
 
Intelligent Transfer of Thematic Harmonic Color Palettes
Michel Alves
 
A Framework for Harmonic Color Measures
Michel Alves
 
Effectiveness of Image Quality Assessment Indexes
Michel Alves
 
Introduction to Kernel Functions
Michel Alves
 
About Perception and Hue Histograms in HSV Space
Michel Alves
 
Color Harmonization - Results
Michel Alves
 
Wave Simulation Using Perlin Noise
Michel Alves
 
Similarity Maps Using SSIM Index
Michel Alves
 
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
Michel Alves
 
TMS - Schedule of Presentations and Reports
Michel Alves
 
Month Presentations Schedule - March/2015 - LCG/UFRJ
Michel Alves
 
Color Palettes in R
Michel Alves
 
Sigmoid Curve Erf
Michel Alves
 
Hue Wheel Prototype
Michel Alves
 
Cosine Curve
Michel Alves
 
Triangle Mesh Plot
Michel Alves
 
Triangle Plot
Michel Alves
 
Capacity-Constrained Point Distributions :: Video Slides
Michel Alves
 
Capacity-Constrained Point Distributions :: Density Function Catalog
Michel Alves
 
Anúncio

Último (20)

PDF
Na Unidade de Saúde Familiar.pdf ou centro de saúde
biblioteca123
 
PDF
Lei seca PDF no Brasil material completo
sandyromasukita
 
PDF
Regras do jogo: Rumo à Tectónica de Placas 1.0
Casa Ciências
 
PDF
DiálogoRedes sociais.pdfinstagram, tik tok
biblioteca123
 
PDF
A festa de anos da avó.pdfe também dos netos
biblioteca123
 
PDF
Matemática - Explorando os números.
Mary Alvarenga
 
DOCX
Mapa de Nauru - Mapa dos Países do Mundo
Doug Caesar
 
PDF
📱 No futuro.pdfterei uma casa inteligente
biblioteca123
 
PDF
4-Curriculo-no-contexto-da-Formacao.447.pdf
HelcimarSilva1
 
DOCX
Mapa da Austrália - Mapa dos Países do Mundo.docx
Doug Caesar
 
PDF
🎶 Uma noite de fado em Lisboa.pdfe que fado
biblioteca123
 
PPTX
slide de historia sobre o descobrimento do brasil
speedgames391
 
PDF
Aula. Fraudes nas relações de trabalho.pdf
MariaJosRios3
 
PPTX
APRESENTAÇÃO DA ULA DE ARTES SOBRE PROCESSO DE CRIAÇÃO (1).pptx
PATRICIA OLIVEIRA
 
DOCX
MAPA – PRODUÇÃO DO CONHECIMENTO CIENTÍFICO, TECNOLÓGICO E DISRUPÇÃO – 53_2025
Excellence Educacional
 
DOCX
Mapa Histórico da Oceania Colonial .docx
Doug Caesar
 
PDF
Multiplicação - Tabuada de 2 e 3.
Mary Alvarenga
 
PDF
A história da Maria Un1aula1.pdfe do Manel
biblioteca123
 
PDF
Visita ao museu.pdf, museu marítimo de Ílhavo
biblioteca123
 
PDF
Mat - Seguindo as setas adição subtração multplicação e divisão.
Mary Alvarenga
 
Na Unidade de Saúde Familiar.pdf ou centro de saúde
biblioteca123
 
Lei seca PDF no Brasil material completo
sandyromasukita
 
Regras do jogo: Rumo à Tectónica de Placas 1.0
Casa Ciências
 
DiálogoRedes sociais.pdfinstagram, tik tok
biblioteca123
 
A festa de anos da avó.pdfe também dos netos
biblioteca123
 
Matemática - Explorando os números.
Mary Alvarenga
 
Mapa de Nauru - Mapa dos Países do Mundo
Doug Caesar
 
📱 No futuro.pdfterei uma casa inteligente
biblioteca123
 
4-Curriculo-no-contexto-da-Formacao.447.pdf
HelcimarSilva1
 
Mapa da Austrália - Mapa dos Países do Mundo.docx
Doug Caesar
 
🎶 Uma noite de fado em Lisboa.pdfe que fado
biblioteca123
 
slide de historia sobre o descobrimento do brasil
speedgames391
 
Aula. Fraudes nas relações de trabalho.pdf
MariaJosRios3
 
APRESENTAÇÃO DA ULA DE ARTES SOBRE PROCESSO DE CRIAÇÃO (1).pptx
PATRICIA OLIVEIRA
 
MAPA – PRODUÇÃO DO CONHECIMENTO CIENTÍFICO, TECNOLÓGICO E DISRUPÇÃO – 53_2025
Excellence Educacional
 
Mapa Histórico da Oceania Colonial .docx
Doug Caesar
 
Multiplicação - Tabuada de 2 e 3.
Mary Alvarenga
 
A história da Maria Un1aula1.pdfe do Manel
biblioteca123
 
Visita ao museu.pdf, museu marítimo de Ílhavo
biblioteca123
 
Mat - Seguindo as setas adição subtração multplicação e divisão.
Mary Alvarenga
 

Graph Theory - Exercises - Chapter 3

  • 1. Teoria dos Grafos - Exercícios do Capítulo 3 Questões 1, 2 e 5 Michel Alves dos Santos ∗ Abril de 2011 ∗Bacharelando em Ciência da Computação, Universidade Federal do Estado de Alagoas(UFAL). E-mails: mi- chel.mas@gmail.com, michelalavessantos@hotmail.com. Disciplina: Teoria dos Grafos. Docente Responsável: Leo- nardo Viana Pereira. 1
  • 2. Conteúdo Lista de Figuras 3 Lista de Tabelas 3 1 Questão 1. Execute o algoritmo de Dijkstra com o exemplo do item 3.2, tro- cando antes o sinal do custo do arco (E,B). 4 2 Questão 2. Considere os dois grafos utilizados nos algoritmos de Dijkstra e Bellman-Ford. 5 2.1 Aplique o algoritmo de Dijkstra, acompanhando a formalização, aos dois grafos, use os vértices A, no primeiro, e 1, no segundo, como origem. . . . . . . . . . . . . . . 5 2.1.1 Para o primeiro grafo teremos: . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.2 Para o segundo grafo teremos: . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Aplique o algoritmo de Bellmann-Ford aos dois grafos (mesma observação). . . . . 9 2.2.1 Para o primeiro grafo teremos: . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.2 Para o segundo grafo teremos: . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3 No segundo grafo, mude o valor do arco(3,5) para -2 e aplique os dois algoritmos. Observe os resultados obtidos e interprete. . . . . . . . . . . . . . . . . . . . . . . . 10 2.3.1 Dijkstra: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3.2 Bellmann-Ford: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3 Questão 5. Utilizando o grafo a seguir, aplique o algoritmo de Dijkstra para achar a menor distância do vértice A aos outros vértices e construa a arbores- cência de distâncias a partir de A. 12 2
  • 3. Lista de Figuras 1 Primeira Questão. Distâncias em quilômetros entre as cidades de uma certa região. 4 2 Arborescência de distâncias a partir do vértice A. . . . . . . . . . . . . . . . . . . . 5 3 Grafos fornecidos para a questão de número 2. . . . . . . . . . . . . . . . . . . . . 5 4 Arborescência de distâncias a partir do vértice A. . . . . . . . . . . . . . . . . . . . 7 5 Arborescência de distâncias a partir do vértice (1). . . . . . . . . . . . . . . . . . . 9 6 Grafo com o valor do arco (3,5) invertido. . . . . . . . . . . . . . . . . . . . . . . . 10 7 Grafo fornecido para a questão de número 5. . . . . . . . . . . . . . . . . . . . . . 12 8 Arborescência de distâncias a partir do vértice A. . . . . . . . . . . . . . . . . . . . 13 Lista de Tabelas 1 1o Passo. Iniciando a tabela de distâncias e relações de anteriodidade. O rótulo “Distância” indica a distância de qualquer vértice até o vértice A. O rótulo “Ante- rior” indica o vértice anterior pelo qual o caminho está sendo contruído. . . . . . . 4 2 2o Passo. Fechando o vértice C pois não existe menor distância. . . . . . . . . . . . 4 3 3o Passo. Fechando o vértice D pois não existe menor distância. . . . . . . . . . . . 4 4 4o Passo. Fechando o vértice E pois não existe menor distância. . . . . . . . . . . . 4 5 5o Passo. Fechando o vértice F pois não existe menor distância. . . . . . . . . . . . 4 6 Passo Final. Fechando o vértice B* pois não existe menor distância. Todos os vértices foram avaliados, com isso construímos a tabela com as distâncias. . . . . . 5 7 1o Passo. Construindo a tabela de distâncias. . . . . . . . . . . . . . . . . . . . . . 5 8 2o Passo. Inicializando a tabela de distâncias. . . . . . . . . . . . . . . . . . . . . . 6 9 3o Passo. Passando pelo vértice C. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 10 4o Passo. Passando pelo vértice D. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 11 5o Passo. Passando pelo vértice E. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 12 6o Passo. Passando pelo vértice B. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 13 Passo Final. Obtenção de todas as distâncias a partir do vértice A. . . . . . . . . . 7 14 1o Passo. Construindo a tabela de distâncias. . . . . . . . . . . . . . . . . . . . . . 8 15 2o Passo. Inicializando a tabela de distâncias. . . . . . . . . . . . . . . . . . . . . . 8 16 3o Passo. Passando pelo vértice (2). . . . . . . . . . . . . . . . . . . . . . . . . . . 8 17 4o Passo. Passando pelo vértice (3). . . . . . . . . . . . . . . . . . . . . . . . . . . 8 18 5o Passo. Passando pelo vértice (4). . . . . . . . . . . . . . . . . . . . . . . . . . . 9 19 6o Passo. Passando pelo vértice (5). . . . . . . . . . . . . . . . . . . . . . . . . . . 9 20 Passo Final. Obtenção de todas as distâncias a partir do vértice (1). . . . . . . . . 9 21 1o Passo. Iniciando tabela com distâncias a partir do vértice (1). Usando o valor 1000 para representar infinito. Fechando o vértice (1), pois é nosso vértice de partida. 10 22 2o Passo. Obtendo as rotas para os vértices (2) e (5) apartir do vértice (1). . . . . 11 23 3o Passo. Obtendo as rotas para os vértices (3) e (4) apartir do vértice (2). . . . . 11 24 4o Passo. Obtendo as rotas para os vértices (4) e (5) apartir do vértice (3). . . . . 11 25 5o Passo. Obtendo rota para o vértice (1) apartir do vértice (4). Observe que o vértice (1) já se encontra fechado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 26 6o Passo. Obtendo rota para o vértice (1) e (4) apartir do vértice (5). . . . . . . . 11 27 Tabela com todas as distâncias a partir do vértice (1). Houve uma redução nas distâncias devido ao caminho com valor negativo. . . . . . . . . . . . . . . . . . . . 11 28 1o Passo. Iniciando a tabela de distâncias e relações de anteriodidade. O rótulo “Distância” indica a distância de qualquer vértice até o vértice A. O rótulo “Ante- rior” indica o vértice anterior pelo qual o caminho está sendo contruído. . . . . . . 12 29 Último Passo. Construção da tabela com as distâncias a partir do vértice A. . . . . 12 3
  • 4. 1 Questão 1. Execute o algoritmo de Dijkstra com o exem- plo do item 3.2, trocando antes o sinal do custo do arco (E,B). Figura 1: Primeira Questão. Distâncias em quilômetros entre as cidades de uma certa região. A* B C D E F Distância 0 ∞ ∞ ∞ ∞ ∞ Anterior - - - - - - Tabela 1: 1o Passo. Iniciando a tabela de distâncias e relações de anteriodidade. O rótulo “Distância” indica a distância de qualquer vértice até o vértice A. O rótulo “Anterior” indica o vértice anterior pelo qual o caminho está sendo contruído. A* B C* D E F Distância 0 12 4 ∞ ∞ ∞ Anterior - A A - - - Tabela 2: 2o Passo. Fechando o vértice C pois não existe menor distância. A* B C* D* E F Distância 0 12 4 6 ∞ 12 Anterior - A A C - D Tabela 3: 3o Passo. Fechando o vértice D pois não existe menor distância. A* B C* D* E* F Distância 0 12 4 6 6 12 Anterior - A A C C E Tabela 4: 4o Passo. Fechando o vértice E pois não existe menor distância. A* B C* D* E* F* Distância 0 12 4 6 6 12 Anterior - A A C C E Tabela 5: 5o Passo. Fechando o vértice F pois não existe menor distância. 4
  • 5. A* B* C* D* E* F* Distância 0 12 4 6 6 12 Anterior - A A C C E Tabela 6: Passo Final. Fechando o vértice B* pois não existe menor distância. Todos os vértices foram avaliados, com isso construímos a tabela com as distâncias. Figura 2: Arborescência de distâncias a partir do vértice A. 2 Questão 2. Considere os dois grafos utilizados nos algo- ritmos de Dijkstra e Bellman-Ford. Figura 3: Grafos fornecidos para a questão de número 2. 2.1 Aplique o algoritmo de Dijkstra, acompanhando a formalização, aos dois grafos, use os vértices A, no primeiro, e 1, no segundo, como origem. 2.1.1 Para o primeiro grafo teremos: Procuramos a cidade mais próxima de A. Depois, sucessivamente, procuramos entre as cidades não visitadas aquela que tem a menor distância desde A, diretamente ou passando por alguma cidade já visitada, anotando sempre o percurso escolhido. Estamos considerando que nunca te- remos distâncias negativas, pois isso atrapalharia o algoritmo, já que o mesmo não sabe lidar com distâncias negativas(ele pode entrar em looping). Começamos por construir uma tabela de distâncias entre os vértices. Para os vértices não ligados consideraremos a distância como infinita. Para os próximos passos usaremos o número 1000 para representar a distância infinita (∞) que A* B C D E F A 0 12 4 ∞ ∞ ∞ B ∞ 0 6 6 ∞ ∞ C ∞ 10 0 ∞ 2 ∞ D ∞ ∞ 8 0 ∞ 6 E ∞ 2 ∞ ∞ 0 6 F ∞ ∞ ∞ ∞ ∞ 0 Tabela 7: 1o Passo. Construindo a tabela de distâncias. foi colocada na tabela de distâncias para representar a falta de ligação entre os vértices. 5
  • 6. Inicialização: A distância de A para todos os outros vértices é marcada como infinita(nesse caso 1000), exceto para o próprio A(distância 0). Marcamos A como fechado, usando um asterisco, e o vértice anterior fica vazio porque A é o nosso vértice de partida. A* B C D E F Distância 0 ∞ ∞ ∞ ∞ ∞ Anterior - - - - - - Tabela 8: 2o Passo. Inicializando a tabela de distâncias. • 2o Passo: Que cidades posso alcançar a partir de A e qual é a distância entre elas? • Resposta: B, distância = 12 (mudamos para 12 pois: 12 < 1000 ) • Resposta: C, distância = 4 (mudamos para 4 pois: 4 < 1000 ) O vértice C será fechado pois sua distância não pode ser melhorada e será o nosso próximo ponto de partida. A* B C* D E F Distância 0 12 4 ∞ ∞ ∞ Anterior A A A - - - Tabela 9: 3o Passo. Passando pelo vértice C. • 3o Passo: Que cidades posso alcançar a partir de C e qual é a distância entre elas? • Resposta: B, distância = 14 (não mudamos para 14 pois: 12 < 14 ) • Resposta: D, distância = 6 (mudamos para 6 pois: 6 < 1000 ) • Resposta: E, distância = 6 (mudamos para 6 pois: 6 < 1000 ) O vértice D será fechado pois sua distância não pode ser melhorada e será o nosso próximo ponto de partida. A* B C* D* E F Distância 0 12 4 6 6 ∞ Anterior A A A C C - Tabela 10: 4o Passo. Passando pelo vértice D. • 4o Passo: Que cidades posso alcançar a partir de D e qual é a distância entre elas? • Resposta: C, distância = 14 (não mudamos para 14 pois: 4 < 14 ) • Resposta: F, distância = 12 (mudamos para 12 pois: 12 < 1000 ) Por enquanto nenhum vértice será fechado mas as distâncias computadas que estavam dentro do padrão de minimalidade serão atualizadas na tabela. Próximo ponto de partida será o vértice E. • 5o Passo: Que cidades posso alcançar a partir de E e qual é a distância entre elas? • Resposta: B, distância = 8 (mudamos para 8 pois: 8 < 12) • Resposta: F, distância = 12 (mudamos para 12 pois: 12 <= 12) 6
  • 7. A* B C* D* E F Distância 0 12 4 6 6 12 Anterior A A A C C D Tabela 11: 5o Passo. Passando pelo vértice E. A* B C* D* E* F Distância 0 8 4 6 6 12 Anterior A E A C C E Tabela 12: 6o Passo. Passando pelo vértice B. O vértice E será fechado pois sua distância não pode ser melhorada e B será o nosso próximo ponto de partida. • 6o Passo: Que cidades posso alcançar a partir de B e qual é a distância entre elas? • Resposta: C, distância = 14 (não mudamos para 14 pois: 4 < 14) • Resposta: D, distância = 14 (não mudamos para 14 pois: 6 < 14) Porém vale observar que o vértice C já foi fechado e o vértice D também, logo o vértice B se- ráfechado pois não existe menor distância para alcançá-lo. Além disso chegamos ao final das verificações, logo o vértice F também será fechado e com isso teremos: A* B* C* D* E* F* Distância 0 8 4 6 6 12 Anterior A E A C C E Tabela 13: Passo Final. Obtenção de todas as distâncias a partir do vértice A. Figura 4: Arborescência de distâncias a partir do vértice A. 2.1.2 Para o segundo grafo teremos: Começamos por construir uma tabela de distâncias entre os vértices. Para os vértices não ligados consideraremos a distância como infinita (∞). Para os próximos passos usaremos o número 1000 para representar a distância infinita (∞) que foi colocada na tabela de distâncias para representar a falta de ligação entre os vértices. Inicialização: A distância de (1) para todos os outros vértices é marcada como infinita(nesse caso 1000), exceto para o próprio (1)(distância 0). Marcamos (1) como fechado, usando um asterisco, e o vértice anterior fica vazio porque (1) é o nosso vértice de partida. • 2o Passo: Que vértices posso alcançar a partir de (1) e qual é a distância entre eles? • Resposta: (2), distância = 1 (mudamos para 1 pois: 1 < 1000 ) 7
  • 8. (1) (2) (3) (4) (5) (1) 0 1 ∞ ∞ 1 (2) ∞ 0 1 2 ∞ (3) ∞ ∞ 0 4 2 (4) 3 ∞ ∞ 0 ∞ (5) 2 ∞ ∞ 1 0 Tabela 14: 1o Passo. Construindo a tabela de distâncias. (1)* (2) (3) (4) (5) Distância 0 ∞ ∞ ∞ ∞ Anterior - - - - - Tabela 15: 2o Passo. Inicializando a tabela de distâncias. • Resposta: (5), distância = 1 (mudamos para 1 pois: 1 < 1000 ) O vértice (2) será fechado pois sua distância não pode ser melhorada e será o nosso próximo ponto de partida. (1)* (2)* (3) (4) (5) Distância 0 1 ∞ ∞ 1 Anterior - (1) - - (1) Tabela 16: 3o Passo. Passando pelo vértice (2). • 3o Passo: Que vértices posso alcançar a partir de (2) e qual é a distância entre eles? • Resposta: (3), distância = 2 (mudamos para 2 pois: 2 < 1000 ) • Resposta: (4), distância = 3 (mudamos para 3 pois: 3 < 1000 ) O vértice (3) será fechado pois sua distância não pode ser melhorada e será o nosso próximo ponto de partida. (1)* (2)* (3)* (4) (5) Distância 0 1 2 3 1 Anterior - (1) (2) (2) (1) Tabela 17: 4o Passo. Passando pelo vértice (3). • 4o Passo: Que vértices posso alcançar a partir de (3) e qual é a distância entre eles? • Resposta: (4), distância = 6 (não mudamos para 6 pois: 3 < 6 ) • Resposta: (5), distância = 4 (não mudamos para 4 pois: 1 < 4 ) O vértice (4) não será fechado pois ainda não averiguamos se a distância pode ser melhorada e será o nosso próximo ponto de partida. • 4o Passo: Que vértices posso alcançar a partir de (4) e qual é a distância entre eles? • Resposta: (1), distância = 6 (não mudamos para 6 pois: 0 < 6 ) 8
  • 9. (1)* (2)* (3)* (4) (5) Distância 0 1 2 3 1 Anterior - (1) (2) (2) (1) Tabela 18: 5o Passo. Passando pelo vértice (4). (1)* (2)* (3)* (4) (5) Distância 0 1 2 3 1 Anterior - (1) (2) (2) (1) Tabela 19: 6o Passo. Passando pelo vértice (5). O vértice (4) não será fechado pois ainda não averiguamos se a distância pode ser melhorada e o vértice (5) será o nosso próximo ponto de partida. Observe que o vértice (1) já estava fechado. • Passo Final: Que vértices posso alcançar a partir de (5) e qual é a distância entre eles? • Resposta: (1), distância = 3 (não mudamos para 3 pois: 0 < 3 ) • Resposta: (4), distância = 2 (mudamos para 2 pois: 2 < 3 ) O vértice (4) será fechado pois a distância não pode ser melhorada e o vértice (5) também será. (1)* (2)* (3)* (4)* (5)* Distância 0 1 2 2 1 Anterior - (1) (2) (5) (1) Tabela 20: Passo Final. Obtenção de todas as distâncias a partir do vértice (1). Figura 5: Arborescência de distâncias a partir do vértice (1). 2.2 Aplique o algoritmo de Bellmann-Ford aos dois grafos (mesma ob- servação). 2.2.1 Para o primeiro grafo teremos: (A, B) : dAB(∞) > d11(0) + vAB(12) → dAB = 12 anterior(B) = A (A, C) : dAC(∞) > d11(0) + vAC(4) → dAC = 4 anterior(C) = A (C, B) : dAB(12) < dAC(4) + vCB(10) → dAB = 12 sem modificação (C, D) : dAD(∞) > dAC(4) + vCD(2) → dAD = 6 anterior(D) = C (C, E) : dAE(∞) > dAC(4) + vCE(2) → dAE = 6 anterior(E) = C (D, C) : dAC(4) < dAD(6) + vDC(8) → dAC = 4 sem modificação (D, F) : dAF (∞) > dAD(6) + vDF (6) → dAF = 12 anterior(F) = D 9
  • 10. (E, B) : dAB(12) > dAE(6) + vEB(2) → dAB = 8 anterior(B) = E (E, F) : dAF (12) >= dAE(6) + vEF (6) → dAF = 12 anterior(F) = E (B, C) : dAC(4) < dAB(8) + vBC(6) → dAC = 4 sem modificação (B, D) : dAD(6) < dAB(8) + vBD(6) → dAD = 6 sem modificação Em uma segunda iteração não haverá mudanças nos valores das distâncias. 2.2.2 Para o segundo grafo teremos: (1, 2) : d12(∞) > d11(0) + v12(1) → d12 = 1 anterior(2) = 1 (1, 5) : d15(∞) > d11(0) + v15(1) → d15 = 1 anterior(5) = 1 (2, 3) : d13(∞) > d12(1) + v23(1) → d13 = 2 anterior(3) = 2 (2, 4) : d14(∞) > d12(1) + v24(2) → d14 = 3 anterior(4) = 2 (3, 4) : d14(3) > d13(2) + v34(4) → sem modificação (3, 5) : d15(1) > d13(2) + v35(2) → sem modificação (4, 1) : d11(0) > d14(3) + v41(3) → sem modificação (5, 1) : d11(0) > d15(1) + v51(2) → sem modificação (5, 4) : d14(3) > d15(1) + v54(1) → d14 = 2 anterior(4) = 5 Em uma segunda iteração não haverá mudanças nos valores das distâncias. 2.3 No segundo grafo, mude o valor do arco(3,5) para -2 e aplique os dois algoritmos. Observe os resultados obtidos e interprete. Figura 6: Grafo com o valor do arco (3,5) invertido. 2.3.1 Dijkstra: (1)* (2) (3) (4) (5) Distância 0 1000 1000 1000 1000 Anterior - - - - - Tabela 21: 1o Passo. Iniciando tabela com distâncias a partir do vértice (1). Usando o valor 1000 para representar infinito. Fechando o vértice (1), pois é nosso vértice de partida. 10
  • 11. (1)* (2) (3) (4) (5) Distância 0 1 1000 1000 1 Anterior - (1) - - (1) Tabela 22: 2o Passo. Obtendo as rotas para os vértices (2) e (5) apartir do vértice (1). (1)* (2) (3) (4) (5) Distância 0 1 2 3 1 Anterior - (1) (2) (2) (1) Tabela 23: 3o Passo. Obtendo as rotas para os vértices (3) e (4) apartir do vértice (2). (1)* (2)* (3)* (4) (5) Distância 0 1 2 3 0 Anterior - (1) (2) (2) (3) Tabela 24: 4o Passo. Obtendo as rotas para os vértices (4) e (5) apartir do vértice (3). (1)* (2)* (3)* (4) (5) Distância 0 1 2 3 0 Anterior - (1) (2) (2) (3) Tabela 25: 5o Passo. Obtendo rota para o vértice (1) apartir do vértice (4). Observe que o vértice (1) já se encontra fechado. (1)* (2)* (3)* (4)* (5) Distância 0 1 2 1 0 Anterior - (1) (2) (5) (3) Tabela 26: 6o Passo. Obtendo rota para o vértice (1) e (4) apartir do vértice (5). (1)* (2)* (3)* (4)* (5)* Distância 0 1 2 1 0 Anterior - (1) (2) (5) (3) Tabela 27: Tabela com todas as distâncias a partir do vértice (1). Houve uma redução nas distâncias devido ao caminho com valor negativo. 11
  • 12. 2.3.2 Bellmann-Ford: (1, 2) : d12(∞) > d11(0) + v12(1) → d12 = 1 anterior(2) = 1 (1, 5) : d15(∞) > d11(0) + v15(1) → d15 = 1 anterior(5) = 1 (2, 3) : d13(∞) > d12(1) + v23(1) → d13 = 2 anterior(3) = 2 (2, 4) : d14(∞) > d12(1) + v24(2) → d14 = 3 anterior(4) = 2 (3, 4) : d14(3) > d13(2) + v34(4) → sem modificação (3, 5) : d15(1) > d13(2) + v35(−2) → d15 = 0 anterior(5) = 3 (4, 1) : d11(0) > d14(3) + v41(3) → sem modificação (5, 1) : d11(0) > d15(1) + v51(2) → sem modificação (5, 4) : d14(3) > d15(0) + v54(1) → d14 = 1 anterior(4) = 5 Em uma segunda iteração não haverá mudanças nos valores das distâncias. 3 Questão 5. Utilizando o grafo a seguir, aplique o algo- ritmo de Dijkstra para achar a menor distância do vér- tice A aos outros vértices e construa a arborescência de distâncias a partir de A. Figura 7: Grafo fornecido para a questão de número 5. A* B C D E F G H I J Distância 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ Anterior - - - - - - - - - - Tabela 28: 1o Passo. Iniciando a tabela de distâncias e relações de anteriodidade. O rótulo “Distância” indica a distância de qualquer vértice até o vértice A. O rótulo “Anterior” indica o vértice anterior pelo qual o caminho está sendo contruído. A* B* C* D* E* F* G* H* I* J* Distância 0 4 1 2 7 4 5 4 8 6 Anterior - A A C B D D D F H Tabela 29: Último Passo. Construção da tabela com as distâncias a partir do vértice A. 12
  • 13. Figura 8: Arborescência de distâncias a partir do vértice A. 13