Conceitos Fundamentais de Complexidade Computacional

Classificado em Língua e literatura

Escrito em em com um tamanho de 3,1 KB

Definições Básicas

  • Comp: Todo problema computável por uma MT. Não há garantia sobre decidibilidade ou complexidade de tempo.
  • Dec: Problemas decidíveis por uma MT, independentemente da complexidade de tempo.
  • Tratável: Problema decidível por uma MT em tempo polinomial em relação à entrada.
  • Tratabilidade Teórica: Envolve problemas tratáveis tanto por MTD quanto por MTND.
  • Tratabilidade Prática: Envolve apenas problemas tratáveis por uma MTD.

Uma MTND é uma extensão de uma MTD, e sua simulação possui complexidade O(2^n). Portanto, problemas tratáveis por MTND existem apenas do ponto de vista teórico.

Hierarquia de Complexidade

2. log n, √n, n/2, n, n log n, n² log n, n³, 2ⁿ, n!

3. O(n) + O(n²/3) + O(n) = O(n²)

4. V, F, V, F, V, V, F, F, V, F

Classes de Complexidade

  • Classe P: Problemas decidíveis em tempo polinomial por uma MTD.
  • Classe co-P: Complemento dos problemas de P. Possui a mesma complexidade de tempo de P.
  • Classe NP: Problemas decidíveis em tempo polinomial por uma MTND.
  • Classe NP-Completo: Problemas "mais difíceis" em NP. Se um problema em NP pode ser reduzido polinomialmente a um problema NP-Completo, ele também é NP-Completo.
  • Classe co-NP: Complemento dos problemas NP.
  • Exp: Problemas decidíveis em tempo exponencial por uma MTND.
  • NP-Hard: Problemas pelo menos tão difíceis quanto os mais difíceis em NP.

Relações entre Classes

  • a) P = co-P: O complemento de um problema P possui a mesma complexidade de tempo que P.
  • b) P ⊆ NP: A classe P está contida em NP. P é um caso particular de NP sem não determinismo.
  • c) NP ≠ co-NP: Implica que o complemento de NP não é necessariamente decidível na mesma complexidade de tempo de NP.

Exemplo de Verificação (SAT)

a. Seja M uma MTD, L={w | M aceita w sse <w,c>}, sendo w o conjunto de cláusulas e c um certificado válido contendo os valores verdade de cada variável lógica.

w, c ∈ Σ={(,), ,, 0, 1, V, ^, ¬, V, F}*

Codifique cada variável lógica em binário. Em w, coloque cada cláusula com suas variáveis codificadas; em c, armazene o certificado com cada variável seguida de seu valor verdade.

b. Funcionamento da MT:

  • Fita 1: Armazena a entrada w.
  • Fita 2: Armazena o certificado c.
  • Fita 3: Armazena as cláusulas com variáveis substituídas pelos valores verdade.

Para cada cláusula, substitua as variáveis pelos valores da Fita 2 na Fita 3. Se o símbolo ¬ preceder uma variável, inverta seu valor. Se, após a varredura, alguma cláusula resultar em F, rejeite; caso contrário, aceite.

Exemplo: W=(1 V ¬10 V 11) ^ (10 V ¬11 V 100) / C= 1V, 10F, 11F, 100V

Entradas relacionadas: