You are on page 1of 1

2ª Lista de Exercícios de Introdução à Análise de Algoritmos

Prof. Glauber Cintra – Entrega: 10/jun/2019


Esta lista deve ser feita por grupos de no mínimo 4 e no máximo 5 alunos.

1) (2 pontos) Escreva uma função baseada em divisão-e-conquista que receba números os a e b (b


natural) e devolva ab. Determine a complexidade de tempo e de espaço da sua função e prove
sua corretude.

2) (2 pontos) Usando o algoritmo de programação dinâmica vista em sala de aula, encontre uma
subsequência crescente máxima da sequência (4, 1, 6, 2, 4, 3, 5, 2).

3) (2 pontos) O problema da 3-partição consiste em, dado um conjunto C, determinar se é possível


particionar C em 3 subconjuntos de tal forma que a soma dos elementos de cada subconjunto
seja igual. Por exemplo, para o conjunto C = {1, 2, 3, 4, 5, 6} a resposta é Sim, pois podemos
particionar C nos subconjuntos {1, 6}, {2, 5} e {3, 4} cuja soma dos elementos é 7. Já para o
conjunto C = {1, 2, 3, 4, 5, 12} a resposta é Não, pois não é possível particionar C em 3
subconjuntos cuja soma dos elementos seja 9. Escreva um algoritmo baseado em enumeração
explícita que resolva o problema da 3-partição. Determine a complexidade de tempo do seu
algoritmo.

4) (3 pontos) Seja a1, a2, ..., an uma sequência de números. Dizemos que c1a1 + c2a2 + ... + cnan é
uma combinação linear inteira de a1, a2, ..., an se c1, c2, ..., cn são números naturais. Escreva uma
função baseada em enumeração implícita que receba uma sequência de números e um valor M e
devolva verdadeiro se existe uma combinação linear inteira da sequência cujo valor seja
exatamente M; falso, caso contrário. Por exemplo, para a sequência 5, 8, 3 e M = 11, a função
deve devolver verdadeiro, pois a 1.5 + 0.8 + 2.3 tem valor 11. Para M = 7, a função deve devolver
falso. (sugestão: adapte o algoritmo de branch-and-bound para o problema da mochila zero-um).

5) (2 pontos) Utilize ao Algoritmo de Kruskal para obter uma árvore geradora de custo mínimo do
grafo abaixo. Exiba a árvore obtida enraizada no vértice 1 e indique o custo da árvore.

v3 e4 v9
v1 e1
e9
e11
e2 e3 e14
v8
e12 e8
v4
e13
e5
v2 e16 v7
e6
e10
e7 v6
v5

Aresta e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 e11 e12 e13 e14 e15 e16


Custo 11 7 12 10 1 14 8 4 3 15 9 2 6 5 16 13

You might also like