Você está na página 1de 2

Esses exerc cios so essencialmente do livro do Cormen. a 1.

Qual o tempo de execuo de BFS se representarmos sua entrada por e ca uma matriz de adjacncias e modicarmos o algoritmo adequadamente? e 2. Reescreva o procedimento DFS usando uma pilha para eliminar recurso. a 3. Suponha que o comprimento mximo de um caminho em um grafo oriena tado G menor ou igual a k, isto , todo caminho orientado de G tem no e e mximo k arestas. Considere agora sua implementao no-recursiva de a ca a DFS. Prove ou desprove que a pilha nunca ter mais que k + 1 elementos a na execuo da chamada DFS(G). ca 4. Seja G um grafo orientado ac clico em que todos os vrtices so alcanveis e a ca a partir de v. Colocando os vrtices de G em ordem inversa do tempo de e nalizao denido por uma numa busca a partir de v, obtemos uma ca ordenao topolgica para G? ca o 5. Uma forma de fazer uma ordenao topolgica de um grafo orientado ca o G = (V, E) repetidamente (i) encontrar um vrtice de grau de entrada e e 0, (ii) imprimir esse vrtice e (iii) remov-lo juntamente com os arcos e e saindo dele. Descreva um algoritmo que implementa essa idia e que roda e em tempo O(V + E). O que acontece com o algoritmo se G tem ciclos? 6. Seja T uma rvore binria enraizada completa com n ns. Calcule o a a o nmero de ordenaes topolgicas distintas dos vrtices de T . u co o e 7. Suponha que todos os pesos das arestas de um grafo so inteiros no intera valo [1, |V |]. Quo rpido pode ser o algoritmo de Kruskal? E se os pesos a a das arestas so inteiros no intervalo [1, W ] para alguma constante W ? a 8. Suponha que todos os pesos das arestas de um grafo so inteiros no intera valo [1, |V |]. Quo rpido pode ser o algoritmo de Prim? E se os pesos a a das arestas so inteiros no intervalo [1, W ] para alguma constante W ? a 9. Seja G = (V, E) um grafo no orientado e conexo com pesos nas arestas a dados por w : E R e suponha que |E| |V | e que os pesos das arestas so distintos. a Seja T o conjunto de todas as rvores geradoras de G e seja T1 uma rvore a a geradora m nima de G. A segunda rvore geradora m a nima uma rvore e a T2 tal que w(T2 ) = minT T \T1 (w(T )). e (a) Mostre que T1 unica, mas T2 no necessariamente unica. e a e (d) Escreva um algoritmo eciente para encontrar T2 10. Uma rvore geradora com gargalo de um grafo no orientado G uma a a e a rvore geradora de G cuja aresta de maior peso m e nima dentre todas as a rvores geradoras de G. O valor do gargalo o peso dessa aresta. e

(a) Argumente que uma rvore geradora com gargalo uma rvore gera e a adora m nima. (b) Escreva um algoritmo linear que dados G e um inteiro b determina se o valor do gargalo no mximo b. e a 11. D um exemplo simples de um grafo orientado com arestas de peso negae tivo em que o algoritmo de Dijkstra falha. 12. Fulano escreveu um programa que ele arma que implementa o algoritmo de Dijkstra. O programa produz u.d e u. para todo vrtice u V . e Escreva um algoritmo linear para vericar a sa do programa do Fulano da e determinar se os atributos d e esto corretos. Assuma que o grafo no a a tem arestas de peso negativo. 13. Seja G = (V, E) um grafo orientado com pesos nas arestas dados por w : E {1, . . . , W } para algum inteiro no negativo W . Modique o a algoritmo de Dijkstra para computar os caminhos m nimos a partir de um vrtice s em tempo O(W V + E). e 14. Como podemos usar a sa do algoritmo Floyd-Warshall para detectar a da presena de ciclos de custo negativo? c

Você também pode gostar