Algoritmos e complexidade Notas de aula - Arquivo Escolar
Algoritmos e complexidade Notas de aula - Arquivo Escolar Algoritmos e complexidade Notas de aula - Arquivo Escolar
12. Classes de complexidade Observação 12.1 A restrição para funções tempo- ou espaço-construtíveis exclui funções nãocomputáveis ou difíceis de computar e assim permite uma simulação eficiente por outras MT. Existem funções que não são espaço-construtíveis; um exemplo simples é uma função que não é computável; um outro exemplo é ⌈log log n⌉. ♦ Classes de complexidade fundamentais • Uma classe de complexidade é um conjunto de linguagens. • Classes fundamentais: Para t, s : N → N e um problema L ⊆ Σ ∗ – L ∈ DTIME[t(n)] se existe uma máquina Turing determinística tal que aceita L com complexidade de tempo t(n). – L ∈ NTIME[t(n)] se existe uma máquina Turing não-determinística que aceita L com complexidade de tempo t(n). – L ∈ DSPACE[s(n)] se existe uma máquina Turing determinística que aceita L com complexidade de espaço s(n). – L ∈ NSPACE[s(n)] se existe uma máquina Turing não-determinística que aceita L com complexidade de espaço s(n). Hierarquia básica 252 • Observação DTIME[F (n)] ⊆ NTIME[F (n)] ⊆ DSPACE[F (n)] ⊆ NSPACE[F (n)] • Definições conhecidas: P = k≥0 DTIME[n k ]; NP = NTIME[n k ] • Definições similares para espaço: PSPACE = DSPACE[n k ]; NSPACE = NSPACE[n k ] k≥0 • Com a observação acima, temos k≥0 k≥0 P ⊆ NP ⊆ DSPACE ⊆ NSPACE .
12.2. Hierarquias básicas Prova. (Da observação.) Como uma máquina não-determinística é uma extensão da uma máquina determinística, temos obviamente DTIME[F (n)] ⊆ NTIME[F (n)] e DSPACE[F (n)] ⊆ NSPACE[F (n)]. A inclusão NTIME[F (n)] ⊆ DSPACE[F (n)] segue, porque todas computações que precisam menos que F (n) passos, precisam menos que F (n) espaço também. Classes de complexidade 12.2. Hierarquias básicas Aceleração Zoológico de complexidade Teorema 12.1 Podemos comprimir ou acelerar computações por um fator constante. Para todos c > 0 no caso de espaço temos L ∈ DSPACE[s(n)] ⇒ L ∈ DSPACE[cs(n)] L ∈ NSPACE[s(n)] ⇒ L ∈ NSPACE[cs(n)] e no caso do tempo, para máquinas de Turing com k > 1 fitas e t(n) = ω(n) L ∈ DTIME[s(n)] ⇒ L ∈ DTIME[cs(n)] L ∈ NTIME[s(n)] ⇒ L ∈ NTIME[cs(n)] Prova. (Rascunho.) A idéia é construir uma MT M ′ que simula uma MT M executando m passos em um passo. M ′ inicialmente copia a entrada para uma outra fita, codificando cada m símbolos em um símbolo em tempo n + ⌈n/m⌉. Depois, em cada passo da simulação, M ′ leia os símbolos na esquerda e direta e na posição atual em tempo 4. Depois ela calcula os novos estados no controle finito, e escreve os três símbolos novos em tempo 4. Logo, cada m passos podem ser simulados em 8 passos em tempo n + ⌈n/m⌉ + ⌈8t(n)/m⌉ ≤ n + n/m + 8t(n)/m + 2 ≤ 3n + 8t(n)/m que para cm ≥ 16 ⇔ 8/m ≤ c/2 e n suficientemente grande não ultrapassa ct(n). O número finito de palavras que não satisfazem esse limite superior é reconhecido diretamente no controle finito. 253
- Page 203 and 204: + + − + Figura 9.3.: Manter a con
- Page 205 and 206: Prova. Seja f um fluxo s-t. Temos 9
- Page 207 and 208: 9.1. Fluxos em redes aumentou nessa
- Page 209 and 210: 9.1. Fluxos em redes Figura 9.5.: R
- 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: 12. Classes de complexidade 12.1. D
- Page 257 and 258: 12.2. Hierarquias básicas 1. Temos
- Page 259: 12.3. Exercícios 12.3. Exercícios
- 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 =
12. Classes <strong>de</strong> <strong>complexida<strong>de</strong></strong><br />
Observação 12.1<br />
A restrição para funções tempo- ou espaço-construtíveis exclui funções nãocomputáveis<br />
ou difíceis <strong>de</strong> computar e assim permite uma simulação eficiente<br />
por outras MT. Existem funções que não são espaço-construtíveis; um exemplo<br />
simples é uma função que não é computável; um outro exemplo é ⌈log log n⌉.<br />
♦<br />
Classes <strong>de</strong> <strong>complexida<strong>de</strong></strong> fundamentais<br />
• Uma classe <strong>de</strong> <strong>complexida<strong>de</strong></strong> é um conjunto <strong>de</strong> linguagens.<br />
• Classes fundamentais: Para t, s : N → N e um problema L ⊆ Σ ∗<br />
– L ∈ DTIME[t(n)] se existe uma máquina Turing <strong>de</strong>terminística tal<br />
que aceita L com <strong>complexida<strong>de</strong></strong> <strong>de</strong> tempo t(n).<br />
– L ∈ NTIME[t(n)] se existe uma máquina Turing não-<strong>de</strong>terminística<br />
que aceita L com <strong>complexida<strong>de</strong></strong> <strong>de</strong> tempo t(n).<br />
– L ∈ DSPACE[s(n)] se existe uma máquina Turing <strong>de</strong>terminística<br />
que aceita L com <strong>complexida<strong>de</strong></strong> <strong>de</strong> espaço s(n).<br />
– L ∈ NSPACE[s(n)] se existe uma máquina Turing não-<strong>de</strong>terminística<br />
que aceita L com <strong>complexida<strong>de</strong></strong> <strong>de</strong> espaço s(n).<br />
Hierarquia básica<br />
252<br />
• Observação<br />
DTIME[F (n)] ⊆ NTIME[F (n)] ⊆ DSPACE[F (n)] ⊆ NSPACE[F (n)]<br />
• Definições conhecidas:<br />
P = <br />
k≥0<br />
DTIME[n k ]; NP = <br />
NTIME[n k ]<br />
• Definições similares para espaço:<br />
PSPACE = <br />
DSPACE[n k ]; NSPACE = <br />
NSPACE[n k ]<br />
k≥0<br />
• Com a observação acima, temos<br />
k≥0<br />
k≥0<br />
P ⊆ NP ⊆ DSPACE ⊆ NSPACE .