Hierarquia polinomial

Fonte: testwiki
Saltar para a navegação Saltar para a pesquisa

Predefinição:Sem-fontes

No ramo da Complexidade computacional a hierarquia polinomial é a hierarquia das Classes de complexidade que generaliza as classes P, NP e Co-NP para Máquinas oráculo. É uma contrapartida limitada de recursos para a Hierarquia aritmética e Hierarquia analítica da Lógica matemática.

Definições

Existem várias definições equivalentes para as classes de hierarquia polinomial.

1. Para a definição do oráculo da hierarquia polinomial, defina:

:Δ0P:=Σ0P:=Π0P:=P,

onde P é o conjunto de problemas de decisão que podem ser resolvidos em tempo polinomial. Então, para i ≥ 0 defina:

:Δi+1P:=PΣiP :Σi+1P:=NPΣiP :Πi+1P:=coNPΣiP

tal que AB é o conjunto de problemas de decisão solucionável por uma maquina de Turing na classe A aumentada por um oráculo para um problema completo na classe B. Por exemplo, </math>, and Δ2P=PNP é a classe de problemas solucionáveis em tempo polinomial por um oráculo para um dado problema NP-Completo.

2. Para a definição existencial/universal da definição de hierarquia polinomial, assuma que L seja uma linguagem ( i.e. um problema de decisão, como o sub-conjunto de {0,1}* ), seja P um polinômio e defina:

: pL:={x{0,1}* | (w{0,1}p(|x|))x,wL},

Tal que x,w{0,1}* é algum padrão de codificação para o par de strings binárias x e y como uma única string binária. L representa o conjunto de pares ordenados de strings, onde a primeira string x é um membro de pL e a segunda string w sendo "short" ( |w|p(|x|) ) que diz que x é membro de pL. Em outras palavras, xpL se e somente se existe uma testemunha w "short" tal que x,winL. Da mesma forma, define:

: pL:={x{0,1}* | (w{0,1}p(|x|))x,wL}

Note que osteoremas de De Morgan permanecem válidos. (pL)c=pLc e (pL)c=pLc, onde Lc é o complemento de L.

Considere 𝒞 como a classe das linguagens. Extenda esses operadores para trabalhar em classes inteiras de linguagens pela definição:

:P𝒞:={pL | p é polinomial e L𝒞} :P𝒞:={pL | p é polinomial e L𝒞}

Novamente, os teoremas de De Morgan permanece válidos. coP𝒞=Pco𝒞 e coP𝒞=Pco𝒞, onde co𝒞={Lc|L𝒞}.

As classes NP e Co-NP podem ser definidas como NP=PP e coNP=PP, onde P é a classe de todas as linguagens decidíveis viáveis ( Tempo polinomial ). A hierarquia polinomial pode ser definida recursivamente como:

:Σ0P:=Π0P:=P :Σk+1P:=PΠkP :Πk+1P:=PΣkP

Note que NP=Σ1P e coNP=Π1P.

Essa definição reflete a conexão forte entre hierarquia polinomial e a Hierarquia aritmética, onde R e RE são análogas a P e NP, respectivamente. A Hierarquia analítica também é definida de forma parecida para dar hierarquia para sub-conjuntos dos números reais.

3. Uma definição equivalente em termos de uma Máquina de Turing alternada define ΣkP ( respectivamente, ΠkP ) como o conjunto de problemas de decisão solvíveis em tempo polinomial em uma máquina de Turing alternada com K alternações, iniciando em um estado inicial.

Relações entre as classes na hierarquia polinomial

Representação pictorial da hierarquia polinomial. As setas denotam inclusão.

As definições implicam nas relações:

ΣiPΔi+1PΣi+1P
ΠiPΔi+1PΠi+1P
ΣiP=coΠiP

Diferentemente das hierarquias aritimétrica e analitica, as quais tem inclusões certas, é uma questão aberta se qualquer uma dessas inclusões é certa, embora acredita-se que elas sejam todas verdade. Se qualquer ΣkP=Σk+1P ou ΣkP=ΠkP, então a hierarquia desmorona para o nível k: Para todo i>k, ΣiP=ΣkP. Em particular, se P = NP a hierarquia desmorona completamente.

A união de todas as classes na hierarquia polinomial tem como complexidade a classe PH.

Propriedades

A hierarquia polinomial é análoga ( em uma complexidade bem menor )a Hierarquia exponencial e Hierarquia aritmética.

Sabemos que PH está contido em PSPACE, mas não se sabe se as duas classes são iguais. Uma reformulação útil desse problema é que PH = PSPACE se e somente se estruturas de lógica de segunda ordem não ganham nenhuma força da adição da operação Fechamento sobre transitividade.

Se a hierarquia polinomial possuir algum problema completo, então ela possui um número finito de niveis. Já que temos PSPACE-completude problemas, sabemos que se PSPACE = PH, então a hierarquia polinomial irá desmoronar, uma vez que se um problema completo de PSPACE seria ΣkP-completo para algum k.

Cada classe na hierarquia polinomial contem problemas mP-completo ( Problemas completo sobre um tempo polinomial de redução muitos para um ). Além do mais, cada classe na hierarquia polinomial é fechada sob mP-reduções: Signifcando que para a classe 𝒞 na hierarquia e uma linguagem L𝒞, se AmPL então A𝒞 também. Juntos, esses dois fatos implicam em que se Ki é um problema completo para ΣiP, então Σi+1P=(ΣiP)Ki e Πi+1P=(ΠiP)Kic. Em outras palavras, se uma linguagem é definida em algum oráculo em 𝒞, então podemos assumir que é definido baseado em um problema completo para 𝒞. Problemas completos então atuam como "representantes" das classes para as quais eles são completos.

O Teorema de Sipser–Lautemann afirma que a classe BPP está contida em um segundo nível da hierarquia polinomial.

O Teorema de Karp–Lipton afirma que para qualquer k, Σ2 não está contido em SIZE(nk).

O Teorema de Toda afirma que a hierarquia polinomial está contida em P#P.

Problemas na hierarquia polinomial

Um exemplo de um problema natural em Σ2P é a minimização de circuitos. Dado um número k e um circuito A computando uma Função booleana f, determina se existe um circuito com pelo menos K chaves que computa a mesma função f. Seja 𝒞 o conjunto de todos os circuitos booleanos, a linguagem:

L={A,k,B,x𝒞××𝒞×{0,1}*|B tem no máximo k chaves, e A(x)=B(x)}

É dicidivel em tempo polinomial. A linguagem:

𝐶𝑀={A,k𝒞×|existe um circuito B com no máximo k chaves  tal que A e B computam a mesma função }

É a linguagem de minimização de circuitos. 𝐶𝑀Σ2P(=PPP) pois é decidivel em tempo polinomial e porque, dados A,k, A,k𝐶𝑀 se e somente se existe um circuito tal que para todas as entradas x, A,k,B,xL.

Um problema completo para ΣkP é a satisfatibilidade para formulas booleanas com k alterações de quantificadores ( Abreviando, QBFk ou QSATk ). Essa é a versão do Problema de satisfatibilidade booliana para ΣkP. Nesse problema, nos recebemos uma formula booleana f com variaveis particionadas em k conjuntos, X1, ..., Xk. Temos que determinar a veracidade de:

X1X2X3f

Isso é, existe uma valoração para as variáveis em X1 tal que, para todas as valorações em X2, existe uma valoração de valores para as variaveis em X3, ... f é verdade? A variação do problema acima é completa para ΣkP. A variante na qual o primeiro quantificador é para todos, o segundo Existe', etc., é completa para ΠkP.

Ver também

Exptime

Bibliografia

  • A. R. Meyer and L. J. Stockmeyer. The Equivalence Problem for Regular Expressions with Squaring Requires Exponential Space. In Proceedings of the 13th IEEE Symposium on Switching and Automata Theory, pp. 125–129, 1972. O artigo que introduziu hierarquia polinomial.
  • L. J. Stockmeyer. The polynomial-time hierarchy. Theoretical Computer Science, vol.3, pp. 1–22, 1976.
  • C. Papadimitriou. Computational Complexity. Addison-Wesley, 1994. Chapter 17. Polynomial hierarchy, pp. 409–438.
  • Michael R. Garey and David S. Johnson , Computers and Intractability: A Guide to the Theory of NP-Completeness. Section 7.2: The Polynomial Hierarchy, pp. 161–167.

Predefinição:Classes de complexidade