Exercício 1
A) Caminho 3 – 4 -3
B) Caminho
100 – 1 – 1 – 100
C) OPT(i) solução ótima considerando os i primeiros nós
OPT(i) = 0, se i=0
OPT(i) = w(i), se i=1
OPT(i) = max{ w(i)+OPT(i-2), OPT(i-1) }, se i>1
Exercício 2
B)
OPT(j) = max { h(j), l(j)}, se j=1
OPT(j) = max { h(j)+OPT(j-2), l(j)+OPT(j-1) }, se j > 1
Tamannho da Tabela é O(n) e cada chamada gasta O(1) 
complexidade O(n)
Exercício 3
A) Arestas 1-2 , 1-3, 3-4, 3-5, 2-5.
Algoritmo computa 1-2-5 e o ótimo é 1-3-4-5
B) OPT(i), caminho mais longo até n partindo de i
OPT (i )  1  max {OPT ( j )}, para i  n
i  j e ( i , j )E
OPT (n)  0
Complexidade O(m+n)
Exercício 5
q(i,j): como a qualidade da string que começa na posição i e termina na j
OPT(j) é o valor da solução ótima para o prefixo que termina na posição j
OPT ( j )  max{q(i, j )  OPT (i  1)}, se j  0
i j
OPT ( j )  0, caso contrário
Tamanho da Tabela é O(n) e cada chamada gasta O(n)  complexidade O(n2)
Exercício 6
f(i,j): quadrado da folga de uma linha que contem as palavras w(i),..,w(j).
j


 L  ( j  i )   ci 
k i


2
OPT(j): solução ótima considerando as j primeiras palavras
OPT ( j )  max{ f (i, j )  OPT (i  1)}, se j  0
i j
OPT ( j )  0, caso contrário
Tamanho da Tabela é O(n) e cada chamada gasta O(n2)  complexidade O(n3)
Pode ser melhorado para O(n2) se a tabela f(i,j) for preprocessada
Exercício 7
MIN (j): valor mínimo da ação nos j primeiros dias
OPT(j) é o lucro máximo que pode ser obtido considerando os j priemrios dias
OPT(j)= max { p(j)-Min(j-1), OPT(j-1) }, se j>0
OPT(j)=0 , caso contrário
MIN( j ) = min { p(j) , MIN(j-1) }
Tamanho da Tabela é O(n) e cada chamada gasta O(1)  complexidade O(n)
Exercício 9
OPT(j): Número máximo de terabytes que podem ser processados até o dia j
 j

OPT( j )  max  min{sk i , xk }  OPT(i  1), se j  0
i j
k i 1

OPT( j )  0, caso contrário
Tamanho da Tabela é O(n) e cada chamada gasta O(n)  complexidade O(n2)
Exercício 20
OPT(i,h): Maior soma de notas possível considerando somente os i primeiros
projetos e h horas disponíveis
OPT (i, h)  max f i (t )  OPT (i  1, h  t ), se j  0
t h
OPT ( j )  0, caso contrário
Tamanho da Tabela é O(Hn) e cada chamada gasta O(H)  complexidade O(nH2)
Nota. Pode ser melhorado para O(n.g.H)
Exercício 28
a)
É fácil ver que existe uma solução S onde todos os jobs escalonáveis aparecem
antes dos não escalonáveis.
Assuma que j e i são dois jobs consecutivos invertidos dentre os escalonáveis
Trocando j e i mantemos o mesmo número de jobs esconáveis
Download

Exercícios Resolvidos - PUC-Rio