PSPACE-completudeEm teoria da complexidade computacional, um problema de decisão é PSPACE-completo se pertence à classe de complexidade PSPACE e todos os problemas em PSPACE podem ser reduzidos a ele em tempo polinomial. Os problemas PSPACE-completos podem ser vistos como os problemas mais difíceis em PSPACE, porque uma solução para qualquer problema PSPACE-completo pode ser facilmente utilizada para resolver qualquer outro problema em PSPACE. Em geral, acredita-se que tais problemas não pertencem às famosas classes de complexidade P e NP, mas isso ainda é desconhecido. Sabe-se que eles estão fora da pequena classe de problemas NC, já que NC está contido em PolyL = DSPACE((log n)O(1))), que está estritamente contido em PSPACE pelo teorema da hierarquia de espaço. DiscussãoO primeiro problema conhecido PSPACE-completo foi o problema de decisão para gramáticas determinística sensíveis ao contexto. No problema de decisão para gramáticas sensíveis ao contexto, é dado um conjunto de transformações gramaticais que podem aumentar, mas não diminuir, o comprimento de uma sentença, e visa determinar se uma dada sentença pode ser produzida por essas transformações. A condição técnica de "determinismo" (implicando, basicamente, que toda transformação deixa claro que ela foi utilizada) garante que esse processo é solúvel em espaço polinomial e o trabalho de S.-Y. Kuroda em 1964 "Classes de linguagens e autômatos linearmente limitados"[1] mostrou que qualquer programa computável (possivelmente não-determinístico) em espaço linear pode ser convertido em análise sintática de gramáticas sensíveis ao contexto, de maneira a preservar o determinismo. Em 1970, o teorema de Savitch mostrou que PSPACE é fechado sob não-determinismo, implicando que até gramáticas não-determinísticas sensíveis ao contexto estão em PSPACE. Mas o problema arquetípico PSPACE-completo é geralmente considerado como sendo o problema da fórmula booleana completamente quantificada (usualmente abreviado para QBF ou TQBF), uma generalização do primeiro problema NP-completo conhecido, o problema da satisfatibilidade de fórmulas booleanas (SAT). O problema da satisfatibilidade é o problema de determinar se há valorações-verdade para variáveis que tornam uma expressão booleana verdadeira. Por exemplo, uma instância de SAT seria a questão de se determinar se a sentença seguinte é verdadeira: O problema de fórmulas booleanas quantificadas difere no sentido de que permite tanto o quantificador universal quanto o existencial sobre os valores das variáveis, como por exemplo:
A prova de que QBF é um problema PSPACE-completo é essencialmente uma reestruturação da prova do teorema de Savitch na linguagem da lógica, e é um pouco mais técnica. Note que um problema NP-completo lembra um quebra-cabeças: há uma maneira de encaixar os valores para solucionar o problema? Os problemas PSPACE-completos lembram um jogo: há algum movimento que eu possa fazer de tal forma que, para todos os movimentos que meu oponente possa fazer, haverá algum outro movimento que eu possa fazer para vencer? Essa questão utiliza tanto quantificadores existenciais quanto universais. Não é surpresa que muitos quebra-cabeças se revelam NP-completos e muitos jogos se mostram PSPACE-completos. Exemplos de jogos PSPACE-completos (quando generalizados de tal maneira que possam ser jogados num tabuleiro n × n) são os jogos Hex, Reversi, Mahjong, Atomix e Sokoban. Alguns outros jogos como xadrez, damas e Go são EXPTIME-completos porque um jogo entre dois jogadores perfeitos pode ser muito longo, então é improvável que estejam em PSPACE. Entretanto, eles se tornam PSPACE-completos se há um limite polinomial no número de movimentos. Note que a definição de PSPACE-completude é baseada em uma complexidade assintótica: o tempo necessário para resolver um problema de tamanho n, com o limite sendo n, cresce sem limitações. Isso significa que jogos como damas (que é jogado num tabuleiro 8 × 8) nunca poderia ser PSPACE-completo (de fato, eles podem ser resolvidos em tempo e espaço constantes utilizando uma tabela de símbolos extremamente grande). Esse é o motivo pelo qual todos os jogos foram modificados para serem jogados em tabuleiros n × n. Outro problema PSPACE-completo é o problema de se decidir se uma dada cadeia é membro de uma linguagem definida por uma gramática sensível ao contexto. Exemplos de problemas PSPACE-completosOs seguintes problemas PSPACE-completos serão mostrados junto com seus algoritmos demonstrando que estão em PSPACE. TQBF
Geografia generalizada
Determinar se uma linguagem regular gera todas as cadeiasDada uma expressão regular R, determinar se ela gera todas as cadeias (i.e., L(R) = Σ*) é um problema PSPACE-completo. Referências
Bibliografia
Ligações externas |