{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

72 uma propriedade da busca em profundidade o

Info iconThis preview shows pages 29–32. Sign up to view the full content.

View Full Document Right Arrow Icon
7.2 Uma Propriedade da Busca em Profundidade O Algoritmo de busca em profundidade pode construir uma árvore com as arestas que ele percorre na busca. Esta árvore é chamada árvore de DFS. r Grafo exemplo r v w Árvore de DFS do grafo acima Vértice (v) será um ancestral de w em uma árvore t com raiz r se v estiver no único caminho entre w e r em t. r Lema: seja T uma árvore de DFS de um grafo G. Então cada aresta de G: 1. pertence a T ou; 2. conecta dois vértices em G, um dos quais é ancestral do outro em T. Prova: seja (v,z) uma aresta de G. Suponha que v seja visitado por DFS antes de z. Então uma de duas coisas ocorre: 1. a partir de v, visita-se z. Então (v,z) pertence à arvore de DFS. 2. z não é visitado pois, a partir de v, visitamos outros vértices que visitaram z: 29
Background image of page 29

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
v1 2 4 5 z 3 Então v é ancestral de z. Prova de que o algoritmo HaCiclo funciona: Se, partindo de v, encontramos um vértice z já marcado, então v é ancestral de z na árvore de DFS. Isto implica que existe um caminho entre v e z que, juntamente com a aresta (v, z), formam um ciclo: v z 7.3 Caminhos Definição: Um grafo G não dirigido é Eureliano se existe um caminho fechado (circuito) que inclui cada aresta de G. Este caminho é chamado de “caminho Eureliano”. Arestas em um circuito não se repetem. Assim, um caminho Eureliano contém cada aresta do grafo exatamente uma vez. Exemplo: 4 1 G: Caminho 8 5 3 2 Eureliano: 7 6 Teorema: Um grafo conectado G é Eureliano se e somente se o grau de cada vértice de G é par. A prova é feita por contradição: admita que um vértice possui grau ímpar. O caminho Eureliano passará por ele um certo número de vezes e, a cada vez, utilizará duas arestas (uma para entrar e outra para sair). Então sobrará uma única aresta que não poderá ser utilizada no caminho: contradição, o que prova que a hipótese está 30
Background image of page 30
correta. A prova é dada pelo algoritmo para encontrar um caminho Eureliano, que é dado a seguir. A partir de um vértice v qualquer, comece a percorrer o grafo sem passar por nenhuma aresta duas vezes. Como o grau de cada vértice é par, podemos sempre entrar em um novo vértice por uma aresta e sair por outra: Como o número de vértices de G é finito, em algum momento retornaremos a v. Como nenhuma aresta foi usada duas vezes, temos um circuito P. Note que este circuito pode não conter todos os vértices do grafo: • • • 1 • • G: Circuito: 4 P 2 3 Agora construímos G’ retirando de G as arestas do circuito encontrado acima. O grau de cada vértice em G’ é par pois o número de arestas removidas de cada vértice é par. G’ pode não ser conectado. Sejam G’ 1 , G’ 2 , … G’ k os componentes conexos de G’.
Background image of page 31

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Image of page 32
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}