Algoritmos e complexidade Notas de aula - Arquivo Escolar
Algoritmos e complexidade Notas de aula - Arquivo Escolar Algoritmos e complexidade Notas de aula - Arquivo Escolar
13. Teoria de NP-completude • Intuição: Uma relação é a especificação de um problema de busca: para entrada x queremos achar alguma solução y tal que (x, y) ∈ R. • Nosso interesse são soluções que podem ser “escritas” em tempo polinomial: Definição 13.1 Uma relação binária R é polinomialmente limitada se P e NP em termos de busca ∃p ∈ poly : ∀(x, y) ∈ R : |y| ≤ p(|x|) • A definição de P e NP é como classes de problemas de decisão. • A linguagem correspondente com uma relação R é LR = {x | ∃y : (x, y) ∈ R} • A classe P: Linguagens LR tal que existe uma MTD que, com entrada x ∈ LR, em tempo polinomial, busque (x, y) ∈ R ou responda, que não tem. • Essa definição do P às vezes é chamado FP ou PF. • A classe NP: Linguagens LR tal que existe MTD que, com entrada (x, y), decide se (x, y) ∈ R em tempo polinomial. y se chama um certificado. A restrição para problemas de decisão facilita o tratamento teórico, mas não é importante para a tratabilidade de problemas. Teorema 13.2 ([65, Th. 2],[6, Th. 2.18]) Para cada problema de busca definido por uma relação polinomialmente limitada R, existe um problema de decisão tal que, caso o problema de decisão pode ser resolvido em tempo t(n), o problema de busca pode ser resolvido em tempo n O(1) t(n). Em particular, P = NP sse cada problema de busca possui solução em tempo polinomial. Prova. Para a relação R, considera o problema de decidir, para entrada x, w, se existe um z tal que (x, w ◦ z) ∈ R. Supõe que temos um algoritmo A que resolve este problema em tempo t(n). Então podemos construir o seguinte algoritmo, para entrada x 260
13.2. Reduções 1 i f A(x, ɛ) = não then 2 return ‘ ‘ não e x i s t e solução ’ ’ 3 end i f 4 w := ɛ 5 while (x, w) ∈ R do 6 i f A(x, w ◦ 0) = sim then 7 w := w ◦ 0 8 else 9 w := w ◦ 1 10 end i f 11 end while 12 return w É simples de ver que este algoritmo acha uma solução para o problema de busca, caso existe uma, construindo-a símbolo por símbolo. Como R é polinomialmente limitado, uma solução possui no máximo um número polinomial de símbolos, e por isso o algoritmo o número de chamadas de A é não mais que polinomial no tamanho da entrada. Exemplos de problemas em NP CLIQUE = {〈G, k〉 | Grafo não-direcionado G com clique de tamanho k} SAT = {〈φ〉 | φ fórmula satisfatível da lógica proposicional em FNC} TSP = {〈M, b〉 | Matriz simétrica de distâncias M que tem TSP-cíclo ≤ b} COMPOSITE = {〈n〉 | n = m1m2 com m1, m2 > 1} 13.2. Reduções Reduções Definição 13.2 (Redução em tempo polinomial) Uma (many-one) redução entre duas linguagens L, L ′ com alfabetos Σ e Σ ′ é um função total f : Σ ∗ → Σ ′∗ tal que x ∈ L ⇐⇒ f(x) ∈ L ′ . Se f é computável em tempo polinomial, se chama uma redução em tempo polinomial; escrevemos L ≤P L ′ . Definição 13.3 (Problemas difíceis e completos) Dado uma classe de problemas C e um tipo de redução ≤, um problema L é 261
- Page 211 and 212: V ′ = V ∪ {s ∗ , t ∗ } 9.1.
- Page 213 and 214: s 30 19 12 i 10 10 j 10 10 10 1010
- Page 215 and 216: Solução Um fluxo s-t f com valor
- Page 217 and 218: Objetivo Minimiza o valor c(M) de M
- Page 219 and 220: 9.2. Emparelhamentos Teorema 9.4 (B
- Page 221 and 222: 9.2. Emparelhamentos V1 e V2 com fl
- Page 223 and 224: 9.2. Emparelhamentos não sabemos c
- Page 225 and 226: 9.2. Emparelhamentos Sobre a implem
- Page 227 and 228: 9.2. Emparelhamentos reduzir o prob
- Page 229 and 230: v10 v9 v1 v8 v2 v3 v7 v6 v4 v5 v10
- Page 231 and 232: 10. Algoritmos de aproximação (As
- Page 233 and 234: 2 2 10.2. Aproximações para o PCV
- Page 235 and 236: 10.3. Algoritmos de aproximação p
- Page 237 and 238: 10.3. Algoritmos de aproximação p
- Page 239: Parte IV. Teoria de complexidade 23
- Page 242 and 243: 11. Do algoritmo ao problema Modelo
- Page 244 and 245: 11. Do algoritmo ao problema - entr
- Page 246 and 247: 11. Do algoritmo ao problema Lingua
- Page 248 and 249: 11. Do algoritmo ao problema Observ
- Page 250 and 251: 11. Do algoritmo ao problema Decibi
- Page 253 and 254: 12. Classes de complexidade 12.1. D
- Page 255 and 256: 12.2. Hierarquias básicas Prova. (
- Page 257 and 258: 12.2. Hierarquias básicas 1. Temos
- Page 259: 12.3. Exercícios 12.3. Exercícios
- 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
13.2. Reduções<br />
1 i f A(x, ɛ) = não then<br />
2 return ‘ ‘ não e x i s t e solução ’ ’<br />
3 end i f<br />
4 w := ɛ<br />
5 while (x, w) ∈ R do<br />
6 i f A(x, w ◦ 0) = sim then<br />
7 w := w ◦ 0<br />
8 else<br />
9 w := w ◦ 1<br />
10 end i f<br />
11 end while<br />
12 return w<br />
É simples <strong>de</strong> ver que este algoritmo acha uma solução para o problema <strong>de</strong><br />
busca, caso existe uma, construindo-a símbolo por símbolo. Como R é polinomialmente<br />
limitado, uma solução possui no máximo um número polinomial<br />
<strong>de</strong> símbolos, e por isso o algoritmo o número <strong>de</strong> chamadas <strong>de</strong> A é não mais<br />
que polinomial no tamanho da entrada. <br />
Exemplos <strong>de</strong> problemas em NP<br />
CLIQUE = {〈G, k〉 | Grafo não-direcionado G com clique <strong>de</strong> tamanho k}<br />
SAT = {〈φ〉 | φ fórmula satisfatível da lógica proposicional em FNC}<br />
TSP = {〈M, b〉 | Matriz simétrica <strong>de</strong> distâncias M que tem TSP-cíclo ≤ b}<br />
COMPOSITE = {〈n〉 | n = m1m2 com m1, m2 > 1}<br />
13.2. Reduções<br />
Reduções<br />
Definição 13.2 (Redução em tempo polinomial)<br />
Uma (many-one) redução entre duas linguagens L, L ′ com alfabetos Σ e Σ ′ é<br />
um função total f : Σ ∗ → Σ ′∗ tal que x ∈ L ⇐⇒ f(x) ∈ L ′ . Se f é computável<br />
em tempo polinomial, se chama uma redução em tempo polinomial;<br />
escrevemos L ≤P L ′ .<br />
Definição 13.3 (Problemas difíceis e completos)<br />
Dado uma classe <strong>de</strong> problemas C e um tipo <strong>de</strong> redução ≤, um problema L é<br />
261