Existe um algoritmo de tempo linear não determinístico para CNF-SAT?


19

O problema de decisão CNF-SAT pode ser descrito da seguinte maneira:

Entrada: uma fórmula booleana na forma normal conjuntiva.ϕ

Pergunta: Existe uma atribuição de variável que satisfaça ?ϕ

Estou considerando várias abordagens diferentes para resolver o CNF-SAT com uma máquina de Turing de duas fitas não determinística .

Eu acredito que existe um NTM que resolve CNF-SAT nas .npoly(log(n))

Pergunta: Existe um NTM que resolva CNF-SAT nas etapas ?O(n)

Quaisquer referências relevantes são apreciadas, mesmo que apenas forneçam abordagens não determinísticas no tempo quase linear.


5
Santhanam escreveu em 2001: "SAT NTIME ( polylog ), resultado que resulta dos fatos de que SAT pode ser aceito em polylog em uma NRAM e que existe uma simulação eficiente de NRAMs por MNTs, devido a Gurevich e Selá. " Portanto, parece-me improvável que SAT NTIME ( ) seja conhecido. (A referência é a LNCS 363 de 1989.)n ( n ) n ( n ) nn(n)n(n)n
András Salamon

5
@Boson, suponha que você receba não apenas uma tarefa satisfatória, mas também um cálculo completo da fórmula. Como você verificaria se é um cálculo válido em tempo linear? Não está claro, mesmo que você possa fazê-lo no 3CNF-SAT, porque você precisa pular para procurar a atribuição das variáveis.
Kaveh

4
@Boson Não está claro se você pode verificar se a atribuição satisfaz a fórmula em tempo linear com uma TM de duas fitas. Você provavelmente teria que mover a cabeça da fita para frente e para trás várias vezes. Se você tiver uma abordagem eficiente para esta verificação, entre em contato. :)
Michael Wehar

5
Apenas uma observação: se as variáveis ​​são representadas em unário (SAT ainda é NPC), existe um NTM de duas fitas que reconhece uma fórmula satisfatória unária em 2 | & Phi; | stepsφ2|φ|
Marzio De Biasi

3
@MichaelWehar, se você usar uma classificação de contagem, poderá classificar n chaves no intervalo [0, k] no tempo O (n + k) em um modelo de acesso aleatório razoável (por exemplo, Máquina de Turing de acesso aleatório, onde você pode usar O (log n) tempo para anotar um índice e depois pular para esse índice da fita em uma etapa). Se você codificar cada literal como uma sequência de bits (log n + 1), o número total de cláusulas e variáveis ​​será no máximo O (n / log n); nesse caso, operações de tempo O (log n) em todos os literais Estão bem. A extensão para duas fitas TM não é simples, pelo menos com a classificação de contagem.
Ryan Williams

Respostas:


5

Este é apenas um comentário estendido. Algumas vezes atrás eu perguntei (eu :-) quão rápido um NTM multitape que aceita uma linguagem NP completa (razoavelmente codificada) pode ser. Eu tive essa ideia:

O 3-SAT permanece NP-completo, mesmo que as variáveis ​​sejam representadas em unárias. Em particular, pode converter uma cláusula - suponha que - de uma fórmula arbitrária 3-SAT φ em n variáveis e m cláusulas em uma sequência de caracteres através alfabeto Σ = { + , - , 1 } em que cada ocorrência variável é representada em unário:(xi¬xjxk)φnmΣ={+,,1}

+1i0,1j,+1k

Por exemplo, pode ser convertido em:(x2x3+4)

+110-1110+11110

Assim, podemos converter uma fórmula 3-SAT em uma seqüência equivalente U ( φ i ) concatenação de suas cláusulas. A linguagem L U = { U ( φ i ) | φ i3 - S A T } é NP-completo.φiU(φi)LU={U(φi)φi3SAT}

Um NTM de 2 fitas pode decidir se uma sequência no tempo 2 | x | nesse caminho.xLU2|x|

  • o primeiro cabeçalho verifica a entrada da esquerda para a direita e, com a lógica interna, mantém o controle quando entra ou sai de uma cláusula ou chega ao final da fórmula. Sempre que encontra um ou - , o segundo cabeçote começa a se mover com ele no 1 i que representa x i . No final de 1 i , se o segundo cabeçalho estiver em 0 , ele adivinha um valor de verdade + ou - (faz uma atribuição) e o grava na segunda fita; se encontrar um + ou - , essa variável já recebeu um valor;+1ixi1i0++
  • nos dois casos, usando a lógica interna, o NTM corresponde ao valor de verdade sob o segundo cabeçalho (a atribuição) com o último visto ou - ; se eles correspondem, a cláusula é satisfeita;+
  • então a segunda cabeça pode retornar à célula mais à direita;
  • com a lógica interna, o NTM pode acompanhar se todas as cláusulas são satisfeitas enquanto o primeiro cabeçalho se move para o final da entrada.

Exemplo:

Tape 1 (formula)    Tape 2 (variable assignments)
+110-1110+11110...  0000000000000...
^                   ^
+110-1110+11110...  0000000000000...
 ^                  ^
+110-1110+11110...  0000000000000...
  ^                  ^
+110-1110+11110...  0+00000000000... first guess set x2=T; matches +
  ^                  ^               so remember that current clause is satisfied
+110-1110+11110...  0+00000000000... 
  ^                  ^
...
+110-1110+11110...  0+00000000000... 
    ^               ^
...
+110-1110+11110...  0++0000000000... second guess set x3=T
       ^              ^              don't reject because current
                                     clause is satisfied (and in every
                                     case another literal must be parsed)

O tempo pode ser reduzido para se adicionarmos alguns símbolos redundantes à representação da cláusula:|x|

+1i0i,1j0j,+1k0k...+++

( marca o final da fórmula)+++

Dessa maneira, o segundo cabeçote pode retornar à célula mais à esquerda, enquanto o primeiro verifica a parte . Usando ++ como delimitador de cláusula e +++ como marcador para o final da fórmula, podemos usar a mesma representação para fórmulas CNF com um número arbitrário de literais por cláusula.0i+++++


1
vv2

2
2n

1
vv1

1
2ncnc

1
Θ(nn)Ω(n2/(logn)1+ε)O(n3/(logn)ε)

2

Não é exatamente o que você está procurando, mas para o NTM de 1 fita, a resposta parece ser negativa: o SAT não é solucionável por um NTM de 1 fita em tempo linear não determinístico.

REG o(nlog(n))o(nlog(n))


5
Esse teorema é apenas sobre máquinas de Turing de uma cabeça .(Por exemplo, máquinas de Turing de duas cabeças podem facilmente decidir a linguagem do palíndromo em tempo linear e espaço constante.)

Isso é ótimo! Muito obrigado. Mas, eu estou mais interessado no caso de duas fitas. :)
Michael Wehar

2
Como escreveu o @Ricky. AFAIK ainda é consistente com o que sabemos que o SAT está no tempo linear determinístico. Para provar o contrário, você precisaria de um limite inferior de tempo superlinear para o SAT e não temos um (não parece estar perto de um).
Kaveh
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.