Logo Passei Direto
Buscar

Design

UNIVESP
A programação dinâmica é uma técnica interessante de ser empregada em problemas de otimização com subestrutura ótima, por exemplo, como é o caso do problema dos cortes e o problema da escolha da melhor forma de associada uma multiplicação de cadeia de matrizes. Uma de suas vantagens é reduzir a complexidade (tempo computacional) de soluções força bruta. Um determinado programador implementou uma versão do problema dos cortes da seguinte forma. Linha Código 1 2 3 4 5 6 7 CORTA-HASTE(p, n) if n == 0 return 0 q = –∞ for i = 1 to n q = máx{q, p[i] + CORTA-HASTE(p, n – i)} return q Neste contexto analise as afirmativas a seguir: I. Este algoritmo quando for invocado para um valor do parâmetro n=4, realizará 16 chamadas para CORTA-HASTE. II. O algoritmo está usando uma versão top-down da programação dinâmica que pode ser constada na linha 6. III. Para o problema de corte de hastes, para uma haste de 3,0 m com cortes de 0,5m, tem-se 32 possibilidades de cortes. IV. Ao realizar uma análise de complexidade do algoritmo em questão percebe-se que seu tempo computacional é exponencial. Está correto o que se afirma em: Questão 6Resposta a. III, apenas. b. IV, apenas. c. II e IV, apenas. d. I, III e IV, apenas. e. I e II, apenas.
User badge image
Reginaldo Matioli

semana passada

Respostas

User badge image

Ed Verified user icon

semana passada

Vamos analisar cada afirmativa: I. Este algoritmo quando for invocado para um valor do parâmetro n=4, realizará 16 chamadas para CORTA-HASTE. Falso. O número de chamadas não é simplesmente 16, pois o algoritmo faz chamadas recursivas que se sobrepõem, resultando em um número maior de chamadas devido à repetição de subproblemas. II. O algoritmo está usando uma versão top-down da programação dinâmica que pode ser constatada na linha 6. Verdadeiro. O algoritmo utiliza a abordagem top-down, pois faz chamadas recursivas e armazena resultados intermediários, embora não esteja implementando a memorização. III. Para o problema de corte de hastes, para uma haste de 3,0 m com cortes de 0,5m, tem-se 32 possibilidades de cortes. Falso. Para uma haste de 3,0 m com cortes de 0,5 m, as combinações de cortes não resultam em 32 possibilidades, pois isso depende da forma como os cortes são feitos e não é simplesmente uma questão de permutações. IV. Ao realizar uma análise de complexidade do algoritmo em questão percebe-se que seu tempo computacional é exponencial. Verdadeiro. O algoritmo tem complexidade exponencial devido à natureza das chamadas recursivas que não reutilizam resultados, levando a um número exponencial de chamadas. Com base nas análises, as afirmativas corretas são II e IV. Portanto, a alternativa correta é: c) II e IV, apenas.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina