Baixe o app para aproveitar ainda mais
Prévia do material em texto
Algoritmos e Estruturas de Dados II – SCC-503 Grafos: Rotulação de Arestas Gustavo Batista A execução do algoritmo de busca em profundidade gera uma árvore chamada árvore de busca em profundidade. Árvore de Busca em Profundidade 2 5 1 6 3 7 4 8 1/ Árvore de Busca em Profundidade 1 2 5 1 6 3 7 4 8 1/ 2/ Árvore de Busca em Profundidade 1 6 2 5 1 6 3 7 4 8 1/ 2/ 3/ Árvore de Busca em Profundidade 3 1 6 2 5 1 6 3 7 4 8 1/ 2/ 3/ 4/ Árvore de Busca em Profundidade 4 3 1 6 2 5 1 6 3 7 4 8 1/ 2/ 3/ 4/ 5/ Árvore de Busca em Profundidade 8 4 3 1 6 2 5 1 6 3 7 4 8 1/ 2/ 3/ 4/ 5/ 6/ Árvore de Busca em Profundidade 7 8 4 3 1 6 2 5 1 6 3 7 4 8 1/ 2/ 3/ 4/ 5/ 6/7 Árvore de Busca em Profundidade 7 8 4 3 1 6 2 5 1 6 3 7 4 8 1/ 2/ 3/ 4/ 5/8 6/7 Árvore de Busca em Profundidade 7 8 4 3 1 6 2 5 1 6 3 7 4 8 1/ 2/ 3/ 4/9 5/8 6/7 Árvore de Busca em Profundidade 7 8 4 3 1 6 2 5 1 6 3 7 4 8 1/ 2/ 3/10 4/9 5/8 6/7 Árvore de Busca em Profundidade 7 8 4 3 1 6 2 5 1 6 3 7 4 8 1/ 2/11 3/10 4/9 5/8 6/7 Árvore de Busca em Profundidade 7 8 4 3 1 6 2 5 1 6 3 7 4 8 1/ 2/11 3/10 4/9 5/8 6/7 12/ Árvore de Busca em Profundidade 2 7 8 4 3 1 6 2 5 1 6 3 7 4 8 1/ 2/11 3/10 4/9 5/8 6/7 12/ 13/ Árvore de Busca em Profundidade 5 2 7 8 4 3 1 6 2 5 1 6 3 7 4 8 1/ 2/11 3/10 4/9 5/8 6/7 12/ 13/14 Árvore de Busca em Profundidade 5 2 7 8 4 3 1 6 2 5 1 6 3 7 4 8 1/ 2/11 3/10 4/9 5/8 6/7 12/15 13/14 Árvore de Busca em Profundidade 5 2 7 8 4 3 1 6 2 5 1 6 3 7 4 8 1/16 2/11 3/10 4/9 5/8 6/7 12/15 13/14 Árvore de Busca em Profundidade 5 2 7 8 4 3 1 6 Floresta de Árvores de Busca Caso o grafo G for não (fortemente) conectado, então a busca em profundidade irá criar uma floresta de árvores de busca. 1 6 2 5 3 4 Classificação de Arestas As arestas de um grafo podem ser classificadas conforme a sua árvore de busca em profundidade: n Arestas de árvore: arestas que ocorrem na árvore de busca em profundidade; n Arestas de retorno: arestas que ligam com um nó antecessor na árvore; n Arestas de avanço: arestas que ligam com um nó descendente na árvore; n Arestas de cruzamento: demais arestas. 2 5 1 6 3 7 4 8 1/ Árvore de Busca em Profundidade 1 2 5 1 6 3 7 4 8 1/ 2/ Árvore de Busca em Profundidade 1 6 arv 2 5 1 6 3 7 4 8 1/ 2/ 3/ Árvore de Busca em Profundidade 3 1 6 arv arv 2 5 1 6 3 7 4 8 1/ 2/ 3/ 4/ Árvore de Busca em Profundidade 4 3 1 6 arv arv arv 2 5 1 6 3 7 4 8 1/ 2/ 3/ 4/ 5/ Árvore de Busca em Profundidade 8 4 3 1 6 arv arv arv arv 2 5 1 6 3 7 4 8 1/ 2/ 3/ 4/ 5/ 6/ Árvore de Busca em Profundidade 7 8 4 3 1 6 arv arv arv arv arv 2 5 1 6 3 7 4 8 1/ 2/ 3/ 4/ 5/ 6/ Árvore de Busca em Profundidade 7 8 4 3 1 6 arv arv arv arv arv ret 2 5 1 6 3 7 4 8 1/ 2/ 3/ 4/ 5/ 6/ Árvore de Busca em Profundidade 7 8 4 3 1 6 arv arv arv arv arv ret ret 2 5 1 6 3 7 4 8 1/ 2/ 3/ 4/ 5/ 6/ Árvore de Busca em Profundidade 7 8 4 3 1 6 arv arv arv arv arv ret ret ret 2 5 1 6 3 7 4 8 1/ 2/ 3/ 4/ 5/ 6/7 Árvore de Busca em Profundidade 7 8 4 3 1 6 arv arv arv ret ret arv arv ret 2 5 1 6 3 7 4 8 1/ 2/ 3/ 4/ 5/8 6/7 Árvore de Busca em Profundidade 7 8 4 3 1 6 arv arv arv ret ret arv arv ret 2 5 1 6 3 7 4 8 1/ 2/ 3/ 4/9 5/8 6/7 Árvore de Busca em Profundidade 7 8 4 3 1 6 arv arv arv ret ret arv arv ret 2 5 1 6 3 7 4 8 1/ 2/ 3/10 4/9 5/8 6/7 Árvore de Busca em Profundidade 7 8 4 3 1 6 arv arv arv ret ret arv arv ret 2 5 1 6 3 7 4 8 1/ 2/11 3/10 4/9 5/8 6/7 Árvore de Busca em Profundidade 7 8 4 3 1 6 arv arv arv ret ret arv arv ret 2 5 1 6 3 7 4 8 1/ 2/11 3/10 4/9 5/8 6/7 12/ Árvore de Busca em Profundidade 2 7 8 4 3 1 6 arv arv arv ret ret arv arv ret arv 2 5 1 6 3 7 4 8 1/ 2/11 3/10 4/9 5/8 6/7 12/ 13/ Árvore de Busca em Profundidade 5 2 7 8 4 3 1 6 arv arv arv ret ret arv arv ret arv arv 2 5 1 6 3 7 4 8 1/ 2/11 3/10 4/9 5/8 6/7 12/ 13/14 Árvore de Busca em Profundidade 5 2 7 8 4 3 1 6 arv arv arv ret ret arv arv ret arv arv 2 5 1 6 3 7 4 8 1/ 2/11 3/10 4/9 5/8 6/7 12/15 13/14 Árvore de Busca em Profundidade 5 2 7 8 4 3 1 6 arv arv arv ret ret arv arv ret arv arv 2 5 1 6 3 7 4 8 1/16 2/11 3/10 4/9 5/8 6/7 12/15 13/14 Árvore de Busca em Profundidade 5 2 7 8 4 3 1 6 arv arv arv ret ret arv arv ret arv arv 2 5 1 6 3 7 4 8 1/16 2/11 3/10 4/9 5/8 6/7 12/15 13/14 Árvore de Busca em Profundidade 5 2 7 8 4 3 1 6 arv arv arv ret ret arv arv ret arv arv Em um grafo não orientado todas as arestas são de árvore ou de retorno. Árvore de Busca em Profundidade É importante reparar que a classificação das arestas pode ser diferente se a ordem os vértices adjacentes percorridos dos alterada. Em outras palavras, a classificação das arestas depende da árvore de busca em profundidade. Entretanto, a maioria dos algoritmos que faz uso da classificação das arestas, não depende de um classificação específica, mas sim da existência de um tipode aresta. n Por exemplo, algoritmo de detecção de ciclos requer encontrar uma aresta de retorno. Árvore de Busca em Profundidade O algoritmo de busca em profundidade funciona igualmente bem para grafos direcionados. Nesse caso, podem ocorrer arestas de avanço e de cruzamento. Árvore de Busca em Profundidade 3 2 1 4 5 6 1/ 1 Árvore de Busca em Profundidade 3 2 1 4 5 6 1/ 1 2/ 2 arv Árvore de Busca em Profundidade 3 2 1 4 5 6 1/ 1 2/ 2 3/ 3 arv arv Árvore de Busca em Profundidade 3 2 1 4 5 6 1/ 1 2/ 2 3/ 3 arv arv 6 arv 4/ Árvore de Busca em Profundidade 3 2 1 4 5 6 1/ 1 2/ 2 3/ 3 arv arv 6 arv ret 4/ Árvore de Busca em Profundidade 3 2 1 4 5 6 1/ 2/ 3/ arv arv arv ret 4/5 1 2 3 6 Árvore de Busca em Profundidade 3 2 1 4 5 6 1/ 2/ 3/6 arv arv arv ret 4/5 1 2 3 6 Árvore de Busca em Profundidade 3 2 1 4 5 6 1/ 2/ 3/6 arv arv arv ret 4/5 7/ 1 2 3 6 5 arv Árvore de Busca em Profundidade 3 2 1 4 5 6 1/ 2/ 3/6 arv arv arv ret 4/5 7/8 1 2 3 6 5 arv cruz Árvore de Busca em Profundidade 3 2 1 4 5 6 1/ 2/ 3/6 arv arv arv ret 4/5 7/8 1 2 3 6 5 arv cruz Árvore de Busca em Profundidade 3 2 1 4 5 6 1/ 2/9 3/6 arv arv arv ret 4/5 7/8 1 2 3 6 5 arv cruz Árvore de Busca em Profundidade 3 2 1 4 5 6 1/ 2/9 3/6 arv arv arv ret 4/5 7/8 1 2 3 6 5 arv cruz ava Árvore de Busca em Profundidade 3 2 1 4 5 6 1/10 2/9 3/6 arv arv arv ret 4/5 7/8 1 2 3 6 5 arv cruz ava Árvore de Busca em Profundidade 3 2 1 4 5 6 1/10 2/9 3/6 arv arv arv ret 4/5 7/8 1 2 3 6 5 arv cruz 4 11/ ava Árvore de Busca em Profundidade 3 2 1 4 5 6 1/10 2/9 3/6 arv arv arv ret 4/5 7/8 1 2 3 6 5 arv cruz 4 11/ cruz ava Árvore de Busca em Profundidade 3 2 1 4 5 6 1/10 2/9 3/6 arv arv arv ret 4/5 7/8 1 2 3 6 5 arv cruz 4 11/ cruz cruz ava Árvore de Busca em Profundidade 3 2 1 4 5 6 1/10 2/9 3/6 arv arv arv ret 4/5 7/8 1 2 3 6 5 arv cruz 4 11/12 cruz cruz ava Exercício Mostre como a busca em profundidade funciona para o grafo a seguir. Mostre a seqüência de vértices visitados, a árvore ou floresta de busca em profundidade e o vetor antecessor. 1 2 4 5 7 9 8 6 3
Compartilhar