Você está na página 1de 3

UNIVERSIDADE VIRTUAL DO ESTADO DE SO PAULO

ENGENHARIA
PLO JA TURMA 4N

Aluno: Eduardo Cavacami RA: 1400759

Projeto e Anlise de Algoritmos


Semana 6

Exerccio 1
Considere o grafo da figura 2. Para cada uma das sequncias de vrtices a
seguir, indique se ela pode corresponder a uma sequncia de descoberta de
vrtices produzida pelos algoritmos apresentados na videoaula de busca em
largura, em profundidade, por ambos algoritmos ou por nenhum dos dois
algoritmos.

(a) F,C,H,A,B,G,E,D (0,75 ponto)


Somente busca em largura:
1. Comea com o vrtice F
2. F visita os vizinhos dele (C e H)
3. C visita os vizinhos dele (A, B, G e E)
4. H visita os vizinhos dele (D)

(b) F,H,A,C,E,G,B,D (0,75 ponto)


Somente busca em profundidade:
1. Comea com o vrtice F
2. F visita o vizinho H
3. H visita o vizinho A
4. A visita o vizinho C
5. C visita o vizinho E
UNIVERSIDADE VIRTUAL DO ESTADO DE SO PAULO
ENGENHARIA
PLO JA TURMA 4N

6. E visita o vizinho G
7. G visita o vizinho B
8. B visita o vizinho D

(c) F,C,H,A,B,D,E,G (0,75 ponto)


Nenhum tipo de busca.

(d) C,A,H,D,B,G,E,F (0,75 ponto)


E em profundidade:
1. Comea com o vrtice C
2. C visita o vizinho A
3. A visita o vizinho H
4. H visita o vizinho D
5. D visita o vizinho B
6. B visita o vizinho G
7. G visita o vizinho E
8. C visita o vizinho F

Exerccio 2
Suponha o algoritmo de busca em largura com o vrtice m sendo a origem
para a busca no grafo G = (V,A). Suponha outros dois vrtices: a e b. Se existe
apenas um caminho de m at a de tamanho 2, e apenas um caminho de m at
b de tamanho 4, ento, b ser localizado antes que a na busca em largura. A
afirmao verdadeira ou falsa. (0,5 ponto). Justifique (2,5 pontos).

Falsa. O algoritmo de busca em largura funciona da seguinte forma:

-Ele visita os vizinhos do vrtice atual;

-Guarda eles, e;

-Visita os vizinhos dos que foram guardados.

Assim, o algoritmo localiza primeiro os vrtices que esto mais prximos do


vrtice de origem da busca.
UNIVERSIDADE VIRTUAL DO ESTADO DE SO PAULO
ENGENHARIA
PLO JA TURMA 4N

Exerccio 3
(4 pontos) Modifique o algoritmo DFS para verificar se um grafo acclico.
O algoritmo deve retornar verdadeiro se o grafo no possui ciclos, e falso
caso contrrio.
DFS (V, A)
1. Aciclico = true
2. for each vertex u in V
3. color[u] WHITE
4. [u] NIL
5. time 0
6. for each vertex u in V
7. if color[u] = WHITE
8. then DFS-Visit(u)
9. retorne Aciclico

DFS-Visit(u)
1. color[u] GRAY
2. time time + 1
3. d[u] time
4. for each vertex v adjacent to u
5. if color[v] = WHITE
6. then [v] u
7. DFS-Visit(v)
8. else if color[v} = GRAY
9. then Aciclico = false
10. color[u] BLACK
11 time time + 1
12. f[u] time

Bauru, 02 de outubro de 2017