Você está na página 1de 2

Universidade Federal de Lavras

Instituto de Ciências Exatas e Tecnológicas


Departamento de Ciência da Computação
GCC218 - Algoritmos em Grafos
Prof. MAYRON CESAR DE OLIVEIRA MOREIRA

Busca em Grafos

1. Aplique o algoritmo de busca em profundidade no grafo da Figura 1, tendo


como origem o vértice a. Indique os instantes de descoberta, finalização e os
tipos de arestas.

Figura 1. Grafo da questão sobre DFS.

2. Dê um contra-exemplo da seguinte conjectura: seja 𝑑(𝑥) o tempo de


descoberta do vértice 𝑥 em uma DFS. Se um grafo direcionado 𝐺 contém um
caminho de 𝑢 para 𝑣, e se 𝑑(𝑢) < 𝑑(𝑣) em uma DFS em 𝐺, então 𝑣 é
descendente de 𝑢 na floresta produzida pela busca em profundidade.

3. Suponha que 𝐺 = (𝑉, 𝐸) seja um grafo não-direcionado. Faça uma


adaptação nos algoritmos de BFS e DFS para identificar todas as
componentes conexas de 𝐺.

4. Seja 𝐺 = (𝑉, 𝐸) um grafo esparso tal que |𝐸| ∈ 𝑂(|𝑉|). Que implementação
da DFS tem um melhor desempenho assintótico para tais grafos: uma DFS
que utiliza lista de adjacências, ou uma DFS que utiliza matriz de
adjacências? Justifique sua resposta.

5. Seja 𝐺 um grafo não-direcionado qualquer com 𝑛 vértices e 𝑚 arestas.


a. Verdadeiro ou Falso: todas as florestas em profundidade de 𝐺 tem o
mesmo número de árvores? Justifique sua resposta.
b. Verdadeiro ou Falso: todas as florestas em profundidade de 𝐺 têm o
mesmo número de arestas de árvore e o mesmo número de arestas
de retorno? Justifique sua resposta.

6. Considere a seguinte definição de “aresta cruzada” em uma BFS: “(𝑢, 𝑣) é


uma aresta cruzada em uma BFS se 𝑣 já foi visitado e 𝑢 não é o pai de 𝑣 na
BFS”. Prove que uma “aresta cruzada” na BFS em um grafo não-direcionado
pode conectar apenas vértices no mesmo nível ou vértices em níveis
adjacentes na árvore em largura.

7. Responda as perguntas abaixo.


a. Explique como detectar que um grafo possui ciclo, utilizando alguma
adaptação do algoritmo BFS.
b. Algum dos algoritmos de busca - BFS ou DFS - sempre detecta um
ciclo mais rápido que o outro? Se sim, indique qual dos dois algoritmos
é o melhor. Se não, dê dois exemplos que suportem a sua resposta.

8. Sobre buscas DFS e BFS:


a. Qual das duas é mais eficiente? (Justifique, por exemplo,
apresentando a ordem de complexidade delas ou algum outro
argumento).
b. Apresente um problema que pode ser resolvido facilmente com uma
BFS (mas não com uma DFS).
c. Apresente um problema que pode ser resolvido facilmente com uma
DFS (mas não com uma BFS).
d. Apresente um problema que pode ser resolvido facilmente com
qualquer uma das duas buscas.

Você também pode gostar