NPPSPA CE
PSPA CENPQBFPSPACESATNPPSPACENP
Deixe-me ser um advogado do diabo e dê um exemplo em que um problema é "mais difícil" que o outro, mas acaba sendo "mais tratável" que o outro também.
F(x1,…,xn)nn
Φ1=(∃x1)(∃x2)⋯(∃xn−1)(∃xn)F(x1,…,xn)
Φ2=(∃x1)(∀x2)⋯(∃xn−1(∀xn)F(x1,…,xn)
Φ2
Φ1Φ2
Φ1NPΦ2PSPACEΦ2Φ1F2nΦ2FO(2.793n)
A intuição é que a adição de quantificadores universais na verdade restringe o problema , tornando mais fácil a solução, em vez de mais difícil. O algoritmo de busca em árvore de jogo depende muito de ter quantificadores alternados e não pode lidar com quantificações arbitrárias. Ainda assim, permanece o argumento de que os problemas às vezes podem ficar "mais simples" em uma medida de complexidade, mesmo que pareçam "mais difíceis" em outra medida.
Importa, porque há mais em jogo do que encontrar ou não soluções. Também é interessante saber se podemos verificar soluções. Outras distinções qualitativas podem ser feitas entre a dificuldade dos problemas, mas para PN versus classes de complexidade maiores, essa seria a que eu identificaria como mais importante.
Para problemas de decisão - problemas para os quais cada instância tem uma resposta ' SIM ' ou ' NÃO ' - NP é precisamente a classe de problemas para os quais podemos verificar com eficiência uma prova de que uma determinada instância é uma instância ' SIM ', deterministicamente, se somos apresentados a um. Por exemplo, se você tiver uma atribuição satisfatória de variáveis para uma instância do 3-SAT, essa atribuição permitirá que você prove com eficiência que a instância é satisfatória. Pode ser difícil encontrar uma tarefa tão satisfatória, mas uma vez que você tenha uma, você pode facilmente provar a outras pessoas que a instância é satisfatória apenas solicitando que elas verifiquem a solução encontrada.
Da mesma forma, para o coNP , existem provas eficientemente verificáveis para instâncias de ' NÃO '; e para problemas no NP ∩ coNP , você pode fazer os dois. Mas, para problemas completos do PSPACE , não existem procedimentos desse tipo - a menos que você possa provar algumas igualidades espetaculares das classes de complexidade.
fonte
Não sabemos como criar problemas difíceis de casos médios a partir de problemas completos de NP (pior caso), mas podemos fazer isso com o PSPACE (consulte Köbler & Schuler (1998) ) para criar problemas mesmo com a distribuição uniforme que não pode ser resolvido na maioria das entradas, a menos que todo o PSPACE seja fácil de calcular.
fonte
Do lado prático, é importante lembrar que a NP-Completeness não é uma barreira para muitos problemas na prática. As ferramentas gêmeas dos solucionadores SAT e do CPLEX (para programação linear inteira) são poderosas e bem projetadas o suficiente para que muitas vezes seja possível resolver grandes instâncias de problemas completos de NP, enquadrando o problema como um ILP adequado ou reduzindo o SAT.
Não conheço solucionadores da mesma forma bem projetados para problemas no PSPACE.
fonte
Você pode pensar desta maneira: um problema de matemática tem uma prova legível por humanos ou requer inerentemente uma "prova de computador"? Exemplos: a posição inicial dos damas é um empate? (Resposta: sim.) A posição inicial do xadrez é uma vitória para as brancas? (Resposta: desconhecida, mas a maioria dos formandos acha que é um empate.)
A prova de que a posição inicial das damas é um empate exige que se aceite que o computador realmente verificou com precisão muitos casos especiais. Se alguma prova sobre xadrez existir, provavelmente será necessário que os leitores humanos aceitem que um computador tenha verificado corretamente casos ainda mais especiais. E pode ser que não exista um método mais curto para comprovar essas declarações. Esses são problemas no PSPACE. Se um problema é "apenas" em NP, então (intuitivamente) um ser humano pode ter toda a prova em sua cabeça. Esse humano pode precisar ser um matemático muito especializado, é claro.
fonte
Além do comentário de Suresh, parece haver uma grande diferença na prática. Existem heurísticas que conseguem explorar a estrutura de instâncias práticas de SAT e obtêm excelente desempenho (refiro-me aos solucionadores de aprendizado de cláusulas orientadas a conflitos aqui). As mesmas heurísticas não produzem melhorias de desempenho semelhantes nos solucionadores de QBF.
A diferença entre prova e verificação também aparece. Alguns solucionadores SAT (como o MiniSAT 1.14 e vários outros) produzem provas. A produção de provas nos solucionadores de QBF atuais não é trivial. (A próxima declaração é de boatos). Existem grandes instâncias na competição QBF em que os solucionadores aparentemente produzem resultados diferentes. Na ausência de solucionadores geradores de provas, não sabemos qual resultado está correto.
fonte
Se você observar o desempenho prático no SAT e no xadrez, haverá uma diferença - os problemas completos de NP são mais tratáveis que os problemas completos de PSPACE. Hoje, os solucionadores de SAT podem lidar com mais de mil variáveis, mas o melhor mecanismo de xadrez, na mesma quantidade de tempo, só pode calcular menos de 20 movimentos.
Eu acho que isso é por causa da estrutura dos problemas. Sim, se você apenas enumerar soluções, a solução SAT é super lenta. Mas, como não possui a alternância quantificadora, as pessoas descobrem estruturas na fórmula e, portanto, evitam grande parte da enumeração. Acho que Ryan Williams ignorou esse ponto.
Com a alternância do quantificador, sim, existem métodos inteligentes de poda, mas ainda assim a estrutura não é tão rica quanto a de uma fórmula CNF.
Deixe-me prever o futuro. A solução de SAT chegará a P examinando a fórmula e, essencialmente, evitando a pesquisa, enquanto o xadrez chegará a P ao capitalizar a pesquisa na árvore do jogo.
fonte