Você está na página 1de 3

Lista 2 de Projeto e Analise de algoritmos

Prof. Leonardo Sampaio 13 de maio de 2013

da corretude das respostas sera Pontuac ao: 1,0 ponto por questao. Alem a clareza e o n levado em considerac ao vel de detalhes apresentados em sua escrita. Para todos os efeitos praticos escreva as respostas como se fosse publica-las em um livro. do problema do corte da haste (visto em sala, 1. Considere uma modicac ao de um prec cap tulo 15.1 do Cormen) no qual, alem o pi para cada haste, cada corte agora e a soma dos prec incorre em um custo xo c. A receita associada a soluc ao os dos cortes. De um algoritmo de programac das pec as menos os custos da execuc ao ao dinamica para resolver esse problema modicado. 2. Mostre como calcular o comprimento de uma Subsequencia Comum mais Longa (visto em sala, cap tulo 15.4 do Cormen) usando apenas 2 min(m, n) entradas na tabela c mais um espac o adicional O(1). Em seguida mostre como fazer a mesma coisa, utilizando apenas min(m, n) entradas na tabela c mais um espac porem o adicional O(1). uma cadeia nao vazia em algum alfabeto que e lida do 3. Um pal ndromo e mesmo modo da esquerda para a direita ou da direita para a esquerda. Exemplos todas as cadeias de tamanho 1, radar, asa, reter e oco. De um alde pal ndromo sao uma subsequencia goritmo eciente para encontrar o pal ndromo mais longo que e de uma cadeia de entrada dada. Por exemplo, dada a entrada character nosso algoritmo o tempo de execuc do seu algoritmo? retornaria carac. Qual e ao um algoritmo de tempo O(n2 ) para encontrar a subsequencia 4. De nao-decrescente mais longa de uma sequencia de n numeros. (por exemplo, se s =< 1, 5, 3, 3, 10, 7, 9 >, uma tal sequencia seria < 1, 3, 3, 7, 9 >.) de atividades (visto em sala, cap 5. Considere o problema de selec ao tulo 16.1 do Cormen). Suponha que em vez de sempre selecionar a primeira atividade a terminar, selecionamos a ultima atividade a comec ar que seja compat vel com todas as ativi1

um algoritmo dades selecionadas anteriormente. Descreva como essa abordagem e otima. guloso e prove que ela produz uma soluc ao e qualquer abordagem gulosa para o problema de selec de atividades 6. Nao ao que produz um conjunto de tamanho maximo de atividades mutuamente compat veis. um exemplo para mostrar que a abordagem de selecionar a atividade de menor De entre aquelas que sao compat durac ao veis com atividades selecionadas anterior mente nao funciona. Fac a o mesmo para a abordagem de sempre selecionar a ativi ao menor numero dade que se sobrepoe de outras atividades e para a abordagem de sempre selecionar a atividade restante compat vel com o tempo de in cio mais cedo. 7. Considere o problema de dar troco para n centavos usando o menor numero de moedas. Suponha que o valor de cada moeda seja um inteiro. (a) Descreva um algoritmo guloso para dar um troco utilizando moedas de 25 centavos, 10 centavos, 5 centavos e 1 centavo. Prove que seu algoritmo produz uma otima. soluc ao que sao potencias (b) Suponha que as moedas dispon veis estejam nas denominac oes as denominac sao c0 , c1 , . . . , ck para alguns inteiros c > 1 e k 1. de c, isto e, oes otima. Mostre que o algoritmo guloso sempre produz uma soluc ao um conjunto de denominac de moedas para o qual o algoritmo guloso nao (c) De oes otima. produz uma soluc ao Seu conjunto deve incluir um centavo, de modo que para todo valor de n. exista uma soluc ao um algoritmo de tempo O(nk) que de o troco utilizando o m (d) De nimo de moedas, diferentes de moeda, considerando para qualquer conjunto de k denominac oes 1 centavo. que uma das moedas e um novo algoritmo de divisao e conquista para calcular 8. Um professor propoe arvores geradoras m nimas (veja o cap tulo 23 do Cormen), que apresentamos a se guir. Dado um grafo G = (V, E ), particione o conjunto V de vertices em dois conjuntos V1 e V2 tais que a diferenc a entre |V1 | e |V2 | seja no maximo 1. Seja E1 o conjunto de arestas incidentes somente em vertices de V1 e seja E2 o conjunto de arestas in cidentes somente em vertices de V2 . Resolva recursivamente o problema de arvore geradora m nima para ca um dos subgrafos G1 = (V1 , E1 ) e G2 = (V2 , E2 ). Finalmente, selecione a aresta de peso m nimo em E que cruza o corte (V1 , V2 ) e use essa aresta para unir as duas arvores geradoras m nimas resultantes em uma unica arvore gera dora. Demonstre que o algoritmo calcula corretamente uma arvore geradora m nima um contra-exemplo para o qual o algoritmo nao funciona. de G ou de 9. Suponha que cada fonte si em uma rede de uxo com varias fontes e varios sorvedouros produza exatamente pi unidades de uxo, de modo que vV f (si , v ) = 2

que cada sorvedouro tj consuma exatamente qj unidades, de pi . Suponha tambem modo que vV f (v, tj ) = qj , onde i pi = j qj . Mostre como converter o problema de encontrar um uxo f que obedec a a essas restric oes adicionais no problema de encontrar um uxo maximo em uma rede de uxo com fonte unica e sorvedouro unico. um subconjunto de arestas 10. Dado um grafo G = (V, E ), um emparelhamento e incidente M E tal que, para todos os vertices v V , no maximo uma aresta de M e em v . De maneira equivalente, o conjunto M e tal que para todo par de arestas e1 , e2 possuem nenhuma extremidade em comum. Um emparelhamento M , e1 e e2 nao um emparelhamento M tal que para qualquer outro emparelhamento M maximo e bipartido se V = A B e todas as tenhamos |M | |M |. Um grafo G = (V, E ) e possuem uma extremidade em A e a outra em arestas de E cruzam A e B , isto e, B . Apresente um algoritmo eciente para encontrar um emparelhamento maximo em um grafo bipartido. (Dica: modele este problema como um problema de uxo maximo, estudado no cap tulo 26 do Cormen).

Você também pode gostar