Os problemas completos

66

Actualmente, a solução quer uma problema -completo ou um P S P A C E problema -completo é inviável no caso geral, para as grandes entradas. No entanto, ambos são solucionáveis ​​no tempo exponencial e no espaço polinomial.NPPSPACE

Como somos incapazes de construir computadores não determinísticos ou com "sorte", isso faz alguma diferença para nós se um problema é completo ou P S P A C- E ?NPPSPACE

Alex ten Brink
fonte

Respostas:

82

NPPSPACE

PSPACENPQBFPSPACESATNPPSPACENP

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)(xn1)(xn)F(x1,,xn)

Φ2=(x1)(x2)(xn1(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.

Ryan Williams
fonte
16
Boa resposta e uma visão interessante.
Suresh Venkat
Ocorre-me que o exposto acima é um bom exemplo do que entendemos por "complexidade refinada" (um programa do outono de 2015 no Instituto Simons). Uma das idéias principais é que a teoria da complexidade pode parecer bem diferente quando, em vez de tentar encontrar para cada problema um modelo computacional (potencialmente bizarro) para o qual esse problema é "completo", simplesmente se concentra em entender qual é o melhor tempo de execução possível expoente para o problema.
Ryan Williams
37

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.

Niel de Beaudrap
fonte
Eu acho que a pergunta é sobre a versão "otimização" dos problemas NP-complete e PSPACE-complete. Por exemplo, existe alguma diferença (em termos de complexidade) entre encontrar uma solução para SAT e QBF? E, de maneira mais geral, existe uma caracterização de problemas de otimização cuja versão de decisão é NP-completa ou PSPACE-completa?
Lamine
@Lamine: Eu não detecto a distinção que você está fazendo na pergunta (pelo menos entre mera decisão e otimização total). Talvez você queira dizer que o solicitante está interessado apenas na questão dos recursos necessários para encontrar a resposta e não está interessado em outras medidas de dificuldade do problema; nesse caso, eu concordo que minha resposta não responde a isso. De qualquer forma, acima é minha resposta para a pergunta como está.
Niel de Beaudrap 07/03
5
Resposta muito boa.
Dave Clarke
A capacidade de verificar com eficiência não ajuda no cálculo de uma solução (a menos que P = NP). NP e co-NP permitem atacar o problema através de adivinhação e verificação. Essa abordagem é fácil de implementar e pode até ser mais eficiente, mas não ajuda no pior dos casos.
András Salamon
@ András: verdadeiro - portanto, minha ênfase em encontrar soluções não é a única coisa importante no prefácio da minha resposta.
Niel de Beaudrap 15/03
36

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.

Lance Fortnow
fonte
20

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.

Suresh Venkat
fonte
11
Há uma competição anual projetada para melhorar os solucionadores de QBF . Eu não os usei muito.
Radu GRIGore #
7

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.

n1000000

Aaron Sterling
fonte
Alguém poderia argumentar também que os problemas de coNP-completos têm esse problema de (algumas vezes) exigir uma "prova de computador?"
Philip
@ Philip White: Eu não acho que é o mesmo. Digamos que "um sorteio de xadrez" esteja no coNP. Para dizer não, tudo o que tenho a fazer é demonstrar uma única linha de força que é facilmente verificável. No entanto, esperamos que, mesmo que essa linha exista, provavelmente será muito difícil provar que ela está realmente "forçando". Portanto, o problema não oferece garantia de simplicidade se for solucionável em uma direção específica. "O xadrez é um empate" provavelmente requer inerentemente que um computador prove, seja verdadeiro ou falso.
Aaron Sterling
5

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.

Vijay D
fonte
0

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.

Zirui Wang
fonte