Algoritmos e complexidade Notas de aula - Arquivo Escolar
Algoritmos e complexidade Notas de aula - Arquivo Escolar Algoritmos e complexidade Notas de aula - Arquivo Escolar
B. Soluções dos exercícios Prova de B.3: Para g ∈ Ω(f) + Ω(f) temos g = h + h ′ com c > 0 e n0 tal que ∀n > n0 h ≥ cf e c ′ > 0 e n ′ 0 tal que ∀n > n0 h ′ ≥ c ′ f. Logo para n > max(n0, n ′ 0) temos g = h + h ′ ≥ (c + c ′ )f. Prova de B.4: Para g ∈ Ω(Ω(f)) temos g ≥ ch com h ≥ c ′ f a partir de índices n0 e n ′ 0, e logo g ≥ cc ′ h a partir de max(n0, n ′ 0). Prova de B.5: h = f ′ g ′ com f ′ ≥ cf f e g ′ ≥ cgg tal que h = f ′ g ′ ≥ cf cgfg. Prova de B.6: h ≥ cfg. Escrevendo h = fg ′ temos que mostrar g ′ ∈ Ω(g). Mas g ′ = h/f ≥ cfg/f = cg. Solução do exercício 1.7. “⇐”: Seja f + c ∈ O(g), logo existem c ′ e n0 tal que ∀n > n0 f + c ≤ c ′ g. Portanto f ≤ f + c ≤ c ′ g também, e temos f ∈ O(g). “⇒”: Essa direção no caso geral não é válida. Um contra-exemplo simples é 0 ∈ O(0) mas 0+c ∈ O(0). O problema é que a função g pode ser 0 um número infinito de vezes. Assim f tem que ser 0 nesses pontos também, mas f + c não é. Mas com a restrição que g ∈ Ω(1), temos uma prova: Seja f ∈ O(g) logo existem c ′ e n ′ 0 tal que ∀n > n ′ 0 f ≤ c ′ g. Como g ∈ Ω(1) também existem c ′′ e n ′′ 0 tal que ∀n > n ′′ 0 g ≥ c ′′ . Logo para n > max(n ′ 0, n ′′ 0) Solução do exercício 1.8. f + c ≤ c ′ g + c ≤ c ′ g + c c ′′ g = (c′ + c )g. c ′′ 1. Para n ≥ 2 temos log 1 + n ≤ log 2n = log 2 + log n ≤ 2 log n. 2. Seja f ∈ log O(n 2 ), i.e. f = log g com g tal que ∃n0, c ∀n > n0 g ≤ cn 2 . Então f = log g ≤ log cn 2 = log c+2 log n ≤ 3 log n para n > max(c, n0). 3. Temos que mostrar que existem c e n0 tal que ∀n > n0 log log n ≤ c log n. Como log n ≤ n para todos n ≥ 1 a inequação acima está correto com c = 1. Solução do exercício 1.9. Para provar fn = O(n) temos que provar que existe um c tal que fn ≤ cn a partir um ponto n0. É importante que a constante c é a mesma para todo n. Na verificação do professor Veloz a constante c muda implicitamente, e por 310
isso ela não é válida. Ele tem que provar que fn ≤ cn para algum c fixo. Uma tentativa leva a fn = 2fn−1 ≤ 2cn ≤ cn Perdido! que mostra que essa prova não funciona. Solução do exercício 1.10. E simples ver que f ∈ ô(g) implica f ∈ o(g). Para mostrar a outra direção suponha que f ∈ o(g). Temos que mostrar que ∀c > 0 : ∃n0 tal que f < cg. Escolhe um c. Como f ∈ o(g) sabemos que existe um n0 tal que f ≤ c/2g para n > n0. Se g = 0 para n > n ′ 0 então c/2g < g também. Logo f ≤ c/2g < cg para n > max(n0, n ′ 0). Solução do exercício 1.11. Primeira verifique-se que Φ satisfaz Φ + 1 = Φ 2 . Prova que fn ∈ O(Φ n ) com indução que fn ≤ cΦ n . Base: f0 = 0 ≤ c e f1 = 1 ≤ cΦ para c ≥ 1/Φ ≈ 0.62. Passo: fn = fn−1 + fn−2 ≤ cΦ n−1 + cΦ n−2 = (cΦ + c)Φ n−2 ≤ cΦ n caso cΦ + c ≤ cΦ 2 . Prova que fn ∈ Ω(Φ n ) com indução que fn ≥ cΦ n . Base: Vamos escolher n0 = 1. f1 = 1 ≥ cΦ e f2 = 1 ≥ cΦ 2 caso c ≤ Φ −2 ≈ 0.38. Passo: fn = fn−1 + fn−2 ≥ cΦ n−1 + cΦ n−2 = (cΦ + c)Φ n−2 ≤ cΦ n caso cΦ + c ≥ cΦ 2 . Solução do exercício [64, p. 2.3]. 1. 3n + 7 ≤ 5n + 2 ⇐⇒ 5 ≤ 2n ⇐⇒ 2.5 ≤ n (equação linear) 2. 5n + 7 ≤ 3n 2 + 1 ⇐⇒ 0 ≤ 3n 2 − 5n − 6 ⇐⇒ 5/6 + √ 97/6 ≤ n (equação quadrática) 3. 5 log 2 n + 7 ≤ 5n + 1 ⇐⇒ 7 5 + 2 7 − 2 ≤ 2 5n ⇐⇒ 16933 ≤ 2 5n ⇐⇒ 2.809 . . . ≤ n 4. Veja item (b) 5. 52 n + 3 ≥ 3n 2 + 5n ⇐⇒ n ≥ 2 n ≥ (3n 2 + 5n − 3)/5 ⇐ 2 n ≥ n 2 . 311
- Page 262 and 263: 13. Teoria de NP-completude • Int
- Page 264 and 265: 13. Teoria de NP-completude C-≤-d
- Page 266 and 267: 13. Teoria de NP-completude Ladrilh
- Page 268 and 269: 13. Teoria de NP-completude (q, a)
- Page 270 and 271: 13. Teoria de NP-completude Sejam c
- Page 272 and 273: 13. Teoria de NP-completude Decisã
- Page 275 and 276: 14. Fora do NP Classes fora do P-NP
- Page 277 and 278: A classe co-NP 14.1. De P até PSPA
- Page 279 and 280: 14.1. De P até PSPACE Para provar
- Page 281 and 282: A hierarquia polinomial Mais exempl
- Page 283 and 284: • Agora, consideramos os seguinte
- Page 285: 14.3. Exercícios The equivalence p
- Page 288 and 289: 15. Complexidade de circuitos x1 ¬
- Page 290 and 291: 15. Complexidade de circuitos Corol
- Page 292 and 293: 15. Complexidade de circuitos Teore
- Page 295 and 296: A. Conceitos matemáticos Nessa se
- Page 297 and 298: Proposição A.3 (Regras para pisos
- Page 299 and 300: 2 1 0 0 1 2 3 4 5 6 7 8 9 10 A.1. F
- Page 301 and 302: A.2. Somatório A última regra é
- Page 303 and 304: Uma aplicação: 1≤i≤n ix i =
- Page 305 and 306: Lema A.1 (Definição alternativa d
- Page 307: A.6. Grafos e ∩ f = ∅. Para um
- Page 310 and 311: B. Soluções dos exercícios Prova
- Page 314 and 315: B. Soluções dos exercícios 6. n
- Page 316 and 317: B. Soluções dos exercícios c fix
- Page 318 and 319: B. Soluções dos exercícios 9 ret
- Page 320 and 321: B. Soluções dos exercícios Anali
- Page 323 and 324: Índice DSPACE, 252 DTIME, 252 NP,
- Page 325 and 326: função concava, 297 convexa, 297
- Page 327: teorema de Savitch, 256 tese de Cob
- Page 330 and 331: Bibliografia [15] Thomas H. Cormen
- Page 332 and 333: Bibliografia [42] Jon Kleinberg e
- Page 334: Bibliografia [72] V. Vassilevska Wi
B. Soluções dos exercícios<br />
Prova <strong>de</strong> B.3: Para g ∈ Ω(f) + Ω(f) temos g = h + h ′ com c > 0 e n0 tal<br />
que ∀n > n0 h ≥ cf e c ′ > 0 e n ′ 0 tal que ∀n > n0 h ′ ≥ c ′ f. Logo para<br />
n > max(n0, n ′ 0) temos g = h + h ′ ≥ (c + c ′ )f.<br />
Prova <strong>de</strong> B.4: Para g ∈ Ω(Ω(f)) temos g ≥ ch com h ≥ c ′ f a partir <strong>de</strong> índices<br />
n0 e n ′ 0, e logo g ≥ cc ′ h a partir <strong>de</strong> max(n0, n ′ 0).<br />
Prova <strong>de</strong> B.5: h = f ′ g ′ com f ′ ≥ cf f e g ′ ≥ cgg tal que h = f ′ g ′ ≥ cf cgfg.<br />
Prova <strong>de</strong> B.6: h ≥ cfg. Escrevendo h = fg ′ temos que mostrar g ′ ∈ Ω(g).<br />
Mas g ′ = h/f ≥ cfg/f = cg. <br />
Solução do exercício 1.7.<br />
“⇐”:<br />
Seja f + c ∈ O(g), logo existem c ′ e n0 tal que ∀n > n0 f + c ≤ c ′ g. Portanto<br />
f ≤ f + c ≤ c ′ g também, e temos f ∈ O(g).<br />
“⇒”:<br />
Essa direção no caso geral não é válida. Um contra-exemplo simples é 0 ∈ O(0)<br />
mas 0+c ∈ O(0). O problema é que a função g po<strong>de</strong> ser 0 um número infinito<br />
<strong>de</strong> vezes. Assim f tem que ser 0 nesses pontos também, mas f + c não é. Mas<br />
com a restrição que g ∈ Ω(1), temos uma prova:<br />
Seja f ∈ O(g) logo existem c ′ e n ′ 0 tal que ∀n > n ′ 0 f ≤ c ′ g. Como g ∈ Ω(1)<br />
também existem c ′′ e n ′′<br />
0 tal que ∀n > n ′′<br />
0 g ≥ c ′′ . Logo para n > max(n ′ 0, n ′′<br />
0)<br />
Solução do exercício 1.8.<br />
f + c ≤ c ′ g + c ≤ c ′ g + c<br />
c ′′ g = (c′ + c<br />
)g.<br />
c ′′<br />
1. Para n ≥ 2 temos log 1 + n ≤ log 2n = log 2 + log n ≤ 2 log n.<br />
2. Seja f ∈ log O(n 2 ), i.e. f = log g com g tal que ∃n0, c ∀n > n0 g ≤ cn 2 .<br />
Então f = log g ≤ log cn 2 = log c+2 log n ≤ 3 log n para n > max(c, n0).<br />
3. Temos que mostrar que existem c e n0 tal que ∀n > n0 log log n ≤ c log n.<br />
Como log n ≤ n para todos n ≥ 1 a inequação acima está correto com<br />
c = 1.<br />
Solução do exercício 1.9.<br />
Para provar fn = O(n) temos que provar que existe um c tal que fn ≤ cn a<br />
partir um ponto n0. É importante que a constante c é a mesma para todo n.<br />
Na verificação do professor Veloz a constante c muda implicitamente, e por<br />
310