PUC-Rio
Departamento de Informática
Prof. Marcus Vinicius S. Poggi de Aragão
Período: 2004.2
Horário: 3as-feiras e 5as-feiras de 13 às 15 horas - Sala 422L
PROJETO E ANÁLISE DE ALGORITMOS (INF 2926)
Lista 1
-
Considere as seguintes funções:
-
10.np
- log n
- log ( n2 )
- 0.005 . n0.00001
- 1000. (log n)2
- 30.n3.log n
- 50.n.log2 n
- (log n)log n
- n/log n
- 70.n
- log log n
- (1.5)(log n)2
- 90.n2.log n + n3. log n
-
Coloque as funoeacima em ordem de
crescimento assintótico, i.e. valor
quando n ¾® ¥.
- Utilize pelo menos três vezes cada um dos símbolos O,
W, Q, o, e w para indicar a
relação existente entre pares das funoeacima (não vale recíprocos).
- Verdadeiro ou Falso. Justifique.
-
(log n)100 = O(ne), " e > 0.
- 2n+1 = O (2n).
- Se g(n,m) = m logd n onde d = [ m/n + 2] ( [x] é o menor inteiro maior que x),
m = O(n2), então g(n,m) = O(m(1 + e)) " e > 0.
- Encontre contra-exemplos para as proposições abaixo.
-
Se f(n) = O(s(n)) e g(n) = O(r(n)), então f(n) - g(n) = O(s(n)-r(n))
- Se f(n) = O(s(n)) e g(n) = O(r(n)), então f(n)/g(n) = O(s(n)/r(n))
- Sejam P1, P2 e P3 três problemas tais que
P1 an P2 an3logn P3 (i.e.,
P1 é redutível a P2 em tempo
linear e P2 a P3 em tempo n3 log n). Assuma a hipótese
de que P1 é W(n log n). Assuma também que você conhece um
algoritmo O (n3) para resolver P3.
Discuta as afirmações abaixo, considerando que somente o conhecimento acima está disponível.
-
O que você pode dizer sobre a complexidade de resolução de
P2 ? Qual a complexidade do melhor algoritmo que você conhece
para P2 ?
- Todo algoritmo que resolve P2 tem que gastar pelo menos
tempo quadrático (P2 é W(n2)).
- W(n log n) é um limite inferior para a
complexidade de P3.
- Todo algoritmo que resolve P1 pode ser usado para resolver P2.
- Todo algoritmo que resolve P3 pode ser usado para resolver
P2.
- P2 pode ser resolvido no pior caso em tempo O(n log n).
- Seja P o conjunto dos problemas para os quais existem
algoritmos determinísticos polinomias para a sua resolução .
Seja NP o conjunto dos problemas para os quais existem
algoritmos não-determinísticos polinomias para a sua
resolução . Naturalmente P está contido em NP. Considere os
problemas P1 Î P e P2 Î NP-completo.
Indique se cada afirmação abaixo é verdadeira, falsa ou se não se
sabe.
-
Conhece-se uma redução de P1 para P2 que toma tempo
polinomial (O(nk)).
- Se existe um algoritmo determinístico polinomial para a
resolução de P2 então podemos afirmar que P1 Î NP-completo
assim como P2 Î P.
- P2 é pelo menos tão difícil quanto 3-SAT.
- 3-SAT é pelo menos tão difícil quanto P2.
- Existe uma redução de P2 para P1 que toma tempo polinomial.
- Defina as classes de problemas P, NP e NP-completo
Relacione estas classes e dê um exemplo de problema para cada classe.
- Dado que você conhece um algoritmo determinístico
polinomial para a resolução do problema (CMC) abaixo, USE ESTE
CONHECIMENTO para provar que você também conhece um algoritmo
determinístico polinomial para a resolução do problema (VMC)
apresentado em seguida.
(CMC) Dado um grafo orientado G=(V,A) com comprimentos positivos
associados aos arcos (i,j) Î A, dois vértices i,j Î V e
uma constante K. Pergunta-se se existe um caminho do vértice i ao
vértice j que possua comprimento menor ou igual à K.
(VMC) Dado um grafo orientado G=(V,A), com comprimentos positivos
associados aos arcos (i,j) Î A, e uma constante K. Pergunta-se se
existe um par de vértices (i,j) para o qual exista um caminho de i a
j e de j a i que tenha comprimento menor ou igual à K.
This document was translated from LATEX by HEVEA.