Você está na página 1de 3

Lista de exerccios

IF672 Algoritmos e Estruturas de Dados


Liliane Salgado e Digo Joo Costa Santiago
ATENO: Complemente essa lista com a lista de Ordenao e Grafos.
1- Explique de forma concisa e objetiva limite inferior de computao, modelo de
rvore de deciso e como podemos estabelecer o limite inferior para ordenao por
comparao de chaves.
2- Escreva a sequencia de heaps obtidos aps cada operao de HEAPIFY durante a
execuo do algoritmo de ordenao heapsort quando a entrada contm as seguintes
chaves nessa ordem:
a) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17.
b) 45, 28, 50, 90, 60, 14, 49, 33, 80, 7, 70, 23.
3- Mostre a configurao do array aps cada troca de chaves efetuada pelo Algoritmo
Quicksort quando executado com entrada:
a) 12, 10, 13, 27, 15, 8, 4, 11, 5, 21.
b) 60, 45, 80, 40, 10, 70, 90, 15, 35, 20, 85, 55, 30, 75.
c) 13, 19, 9, 5, 12, 8, 7, 4, 11, 2, 6, 21.
d) 66, 20, 98, 87, 42, 126, 112, 12, 4, 32, 30, 6, 38, 10.
4- Desenhe a sequencia de rvores geradas na construo das rvores de Busca em
Profundidade e de Busca em Largura seguindo o algoritmo apresentado em sala de aula,
quando a entrada dada pelas seguintes listas de incidncias, onde cada par representa o
outro extremo e o peso da aresta correspondente, nesta ordem:
a) 1 (3,9), (5,5), (4,1)
2 (3,2), (4,2), (5,2)
3 (1,9), (2,2), (5,3)
4 (1,1), (2,2), (5,2)
5 (1,5), (3,3), (4,2), (2,2)
b) 1 (2,8), (3,5), (4,3), (5,2)
2 (1,8), (3,2), (4,3)
3 (1,5), (2,2), (5,2)
4 (1,3), (2,3), (5,1)
5 (1,2), (3,2), (4,1)
c) 1 (2,12), (3,6), (4,5), (5,10) 2 (1,12), (3,7), (4,9), (5,4)
3 (1,6), (2,7), (4,4)
4 (1,5), (2,9), (3,4), (5,3)
5 (1,10), (2,4), (4,3)
d) 1 (2,14), (3,6), (4,12), (5,15) 2 (1,14), (3,7), (4,4), (5,1)
3 (1,6), (2,7), (4,2)
4 (1,12), (2,4), (3,2), (5,2)
5 (1,15), (2,1), (4,2)
e) 1 7, 5, 4, 3
2 7, 6, 5
3 1, 4
4 1, 3, 5, 6
5 1, 2, 4, 6
6 2, 4, 5
7 1, 2
f) 1 2, 3, 4, 5
2 1, 3, 4, 5, 6, 7
3 1, 2, 4
4 1, 2, 3, 5
5 1, 2, 4, 6, 7
6 2, 7, 5
7 6, 2, 5
5- D a sequencia de valores dos dados de controle ao final de cada iterao durante a
execuo do algoritmo de Prim e Kruskal para encontrar a rvore Geradora de Peso
Mnimo quando a entrada dada pelas mesmas listas de incidncias dos grafos com
peso da questo anterior.

6- D a sequencia de valores dos dados de controle ao final de cada iterao durante a


execuo do algoritmo de Dijkstra para encontrar a rvore de Distncias a partir do
vrtice 1 quando a entrada dada pelas mesmas listas de incidncias dos grafos com
peso da questo anterior.
7- Que modificaes precisam ser feitas no Algoritmo Dijskstra para encontrar TODOS
os caminhos mais curtos entre um vrtice origem v V e os demais vrtices do grafo
com peso nas arestas G = (V, E)? Ilustre o funcionamento do algoritmo para um grafo
com quatro vrtices e com pelo menos trs caminhos mais curtos distintos entre o
vrtice original v e um outro vrtice.
8- Explique de forma concisa e objetiva as tcnicas Programao Dinmica e
Backtracking.
9- Preencha uma tabela indicando claramente TODA sequncia de decises sobre a cor
de um vrtice para cada passo adiante at cada retrocesso (cada retrocesso uma linha
da tabela) no processo de procurar uma 3-colorao do grafo descrito abaixo usando a
tcnica backtracking, dando prioridade a pintar os vrtices por ordem de numerao, e
tentando usar as cores 1, 2 e 3 nessa ordem. O grafo dado pela lista de incidncias:
a)
1 2, 5, 6
2 1, 3, 5, 6
3 2, 4
4 3, 5
5 1, 2, 4, 6
6 1, 2, 5
b)
16
2 3, 5
3 2, 4, 5, 6
43
5 2, 3, 6
6 1, 3, 5
10- Exemplifique o uso da tcnica, apresentando uma soluo tima para o problema
Distncia-deEdio (abbab, babaa) e Distncia-deEdio (abbab, bbbaa), quando
I=R=2, M=1, S=3 e quando M=0, I=R=S=1 (distncia de Levenshtein).
11- Imagine que voc possui um continer de certo tamanho e vrios produtos com seus
valores para serem colocados dentro dele. Porm os produtos devem ser colocados de
um jeito que caiba no continer e que esse tenha o maior valor possvel. Suponha que o
continer tenha 70 m e que estejam disposio cinco produtos: (40 m e R$ 20,00),
(20 m e R$ 10,00), (10 m e R$ 30,00), (20 m e R$ 30,00) e (20 m e R$ 10,00).
Usando duas abordagens (dividir para conquistar, algoritmos gulosos, programao
dinmica ou backtracking), mostre como resolver o problema atravs da execuo de
dois algoritmos eficientes para o exemplo citado, um algoritmo por abordagem. Indique
a abordagem usada em cada algoritmo.
12- Suponha que voc tenha em sua mquina uma pasta cheia de arquivos e deseja
grav-los em disco. Como proceder para encaixar o mximo nmero de arquivos em
disco? Suponha que tenha um disco de 9 MB e que queira gravar quatro arquivos com
os seguintes tamanhos: 4 MB, 3 MB, 5 MB e 1 MB. Usando trs abordagens (dividir
para conquistar, algoritmos gulosos, programao dinmica ou backtracking), mostre
como resolver o problema atravs da execuo de trs algoritmos eficientes para o
exemplo citado, um algoritmo por abordagem. Indique a abordagem usada em cada
algoritmo.
13- Suponha que voc tem um saco de moedas e deve dividi-las com o seu irmo. A
diviso deve ser o mais justa possvel, ou seja, a diferena entre as quantias recebidas

por cada um deve ser a mnima possvel. Suponha que o saco tenha 4 moedas de 1, 2, 4
e 6 centavos. Usando duas abordagens (dividir para conquistar, algoritmos gulosos,
programao dinmica ou backtracking), mostre como resolver o problema atravs da
execuo de trs algoritmos eficientes para o exemplo citado, um algoritmo por
abordagem. Indique a abordagem usada em cada algoritmo.
14- Como modificamos o algoritmo da mochila de programao dinmica sem que se
altere o custo de forma que seja possvel adicionar cada item mltiplas vezes, o
problema da mochila ilimitada?
15- O problema Isomorfismo de Grafos consiste em: dados dois grafos no
direcionados G= (V, E) e H=(V, E), decidir se existe uma bijeo f: V V, tal que,
para todo par de vrtices (u,v), com u, v V, a aresta (u, v) E sse (f(u), f(v)) E.
Prove que o problema Isomorfismo de Grafos pertence classe NP.
16- Defina os seguintes conceitos:
P
NP
No-determinismo
Reduo polinomial
NP-completo
NP-difcil
17- Para cada afirmao, diga se verdadeiro (V), falso (F), ou se no se sabe (NS),
dando uma justificativa clara e objetiva.
a) Se A um problema NP-completo e existe um algoritmo determinstico
exponencial para resolver A, ento fica provado que P NP.
b) O conjunto P est contido propriamente no conjunto NP.
c) P NP-difcil = .
d) Se um problema A polinomialmente redutvel a um problema B, ento ou A e
B so ambos polinomiais ou ambos NP-difcil.
e) Se um problema A polinomialmente redutvel a um problema B, ento ou A e
B so ambos polinomiais ou so ambos exponenciais.
f) Existem problemas na classe NP que no esto na classe NP-completo.
g) A classe NP-completo contm todos os problemas NP-difceis.
h) A classe NP-completo contm todos os problemas da classe P.
i) Se houver uma soluo polinomial para o problema SAT, ento P = NP.
j) NP-completo a classe dos problemas computacionais para os quais no existe
um algoritmo polinomial.

Você também pode gostar