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