O SAT é uma linguagem livre de contexto?

12

Estou considerando a linguagem de todas as fórmulas lógicas proposicionais satisfatórias, SAT (para garantir que esse alfabeto seja finito, codificaríamos letras proposicionais de alguma maneira adequada [editar: as respostas apontaram que a resposta à pergunta pode não ser robusta em codificações variadas, então é preciso ser mais específico - veja minhas conclusões abaixo] ). Minha pergunta simples é

O SAT é uma linguagem livre de contexto?

Meu primeiro palpite foi que a resposta de hoje (início de 2017) deveria ser "Ninguém sabe, pois isso se refere a perguntas não resolvidas na teoria da complexidade". No entanto, isso não é realmente verdade (veja a resposta abaixo), embora também não seja completamente falso. Aqui está um breve resumo das coisas que sabemos (começando com algumas coisas óbvias).

  1. SAT não é regular (porque mesmo a sintaxe da lógica proposicional não é regular, devido a parênteses correspondentes)
  2. O SAT é sensível ao contexto (não é difícil fornecer um LBA para ele)
  3. SAT é NP-completo (Cook / Levin) e, em particular, decidido por TMs não determinísticas em tempo polinomial.
  4. O SAT também pode ser reconhecido por autômatos não-determinísticos de pilha unidirecional (1-NSA) (consulte WC Rounds, Complexidade de reconhecimento em idiomas de nível intermediário , Switching and Automata Theory, 1973, 145-158 http://dx.doi.org/ 10.1109 / SWAT.1973.5 )
  5. O problema da palavra para linguagens sem contexto tem sua própria classe de complexidade CFL (consulte https://complexityzoo.uwaterloo.ca/Complexity_Zoo:C#cfl )
  6. , em que LOGCFL é a classe de problemas no espaço de log redutível a CFL (consultehttps://complexityzoo.uwaterloo.ca/Complexity_Zoo:L#logcfl). Sabe-se que NLLOGCFL .CFLLOGCFLAC1LOGCFLCFLNLLOGCFL
  7. NLNPNC 1PH NP LOGCFL LOGCFLNL=NPNC1PHNPLOGCFLLOGCFL

No entanto, esse último ponto ainda deixa a possibilidade de que o SAT não esteja em . Em geral, não consegui encontrar muito sobre o relacionamento de com a hierarquia que possa ajudar a esclarecer o status epistêmico da minha pergunta.CFL NCCFLCFLNC

Observação (depois de ver algumas respostas iniciais): Não estou esperando que a fórmula esteja na forma normal conjuntiva (isso não fará diferença na essência da resposta e, geralmente, os argumentos ainda se aplicam, pois um CNF também é uma fórmula. alegar que a versão do número constante de variáveis ​​do problema é regular falha, pois é necessário parênteses para a sintaxe.).

Conclusão: Ao contrário do meu palpite inspirado na teoria da complexidade, pode-se mostrar diretamente que o SAT não é livre de contexto. A situação, portanto, é:

  1. Sabe-se que o SAT não é livre de contexto (em outras palavras: SAT não está em ), sob a suposição de que se use uma codificação "direta" de fórmulas nas quais variáveis ​​proposicionais são identificadas por números binários (e alguns outros símbolos são usados ​​para operadores e separadores).CFL
  2. Não se sabe se o SAT está em , mas "a maioria dos especialistas pensa" que não, pois isso implicaria . Isso também significa que não se sabe se outras codificações "razoáveis" do SAT são livres de contexto (supondo que consideremos o espaço de log um esforço de codificação aceitável para um problema difícil de NP).P = NPLOGCFLP=NP

Observe que esses dois pontos não implicam . Isso pode ser mostrado diretamente, mostrando que existem idiomas em (portanto, em ) que não são livres de contexto (por exemplo, ).L LOGCFL a n b n c nCFLLOGCFLLLOGCFLanbncn

mak
fonte
Se fosse, então P = NP.
Ryan
1
Se o SAT fosse livre de contexto, a programação dinâmica (o algoritmo CYK) forneceria um algoritmo de tempo polinomial para testar a associação no SAT, fornecendo P = NP. Mesmo P = NP não significaria que o SAT era livre de contexto. Essa codificação de variáveis ​​parece ser mais importante do que você está dando crédito. Eu não resolvi os detalhes, mas se você adicionou "subscritos" unários ou binários às variáveis, acho que você terá problemas para distinguir (x e y) de (x e não x) para índices suficientemente grandes.
AdamF 17/01
Você precisa ser preciso sobre a representação antes de reivindicar P = NP conclusões. Por exemplo, fatorar um número N é polinomial em N (a pergunta interessante é sobre o número de bits necessários para escrever N em binário ou sobre o log N).
Aryeh
Eu estava ciente da conclusão P = NP e, portanto, não era esperado que a resposta fosse "sim" (desculpe por ser um pouco provocante na maneira como eu expressei isso ;-). Eu ainda estava pensando se isso é realmente conhecido ou apenas algo que "a maioria dos especialistas acredita" (as respostas agora indicam claramente que a primeira é verdadeira; selecionarei uma no devido tempo).
mak

Respostas:

7

Apenas uma prova alternativa usando uma mistura de resultados conhecidos.

Suponha que:

  • variáveis ​​são expressas com a expressão regulard=(+|)1(0|1)
  • e que o idioma ( regular ) (acima de usado para representar fórmulas de CNF é: ; observe que pega todas as fórmulas válidas de CNF até renomear variáveis.S = { d + ( d + ) * ( ( d + ( d + ) * ) ) * } SΣ={0,1,+,,,})S={d+(d+)((d+(d+)))}S

Por exemplo, é escrito como: (o operador tem precedência sobre ) .φ=(x1x2)x3sφ=+1+1011S

Suponha que da fórmula correspondente seja satisfatória seja CF.L={sφSφ}

Se o interceptarmos com o idioma regular: , ainda temos um idioma CF. Também podemos aplicar o homomorfismo: , e o idioma permanece CF.R={+1a1b1ca,b,c>0}h(+)=ϵh()=ϵ

Mas a linguagem que obtemos é: , porque se , a fórmula "source" é que não é satisfatório (da mesma forma se ). Mas é uma contradição bem conhecida da linguagem não CF .L={1a1b1cab,ac}a=b+xaxaxba=cL

Marzio De Biasi
fonte
Aceitei esta resposta agora, pois ainda há um problema em aberto com a outra abordagem (veja os comentários) e gosto do argumento um pouco mais básico. Pode ser bom enfatizar que o argumento é específico para a codificação escolhida e é realmente desconhecido se alguém poderia encontrar outra codificação simples (espaço de log) que leve a uma linguagem livre de contexto.
mak
1
@mak: Eu suspeito que qualquer outra codificação "razoável" do SAT possa ser provada como não CF com uma técnica semelhante. Talvez outra direção interessante seria estudar se podemos aplicar algum tipo de diagonalização para obter uma prova mais geral: a fórmula SAT codifica uma computação que simula um autômato pushdown em uma determinada entrada e é satisfatória se, e somente se, não '' Não aceite. Mas é apenas uma idéia difusa ...
Marzio De Biasi
Verificar se uma string está em um idioma normal está em P. Suponha que SAT estava em Reg. Então NP = coNP. Seja L no Reg. Considere a fórmula que é verdadeira se não estiver em L. Ela está em NP para que possa ser expressa como uma fórmula SAT. Está no idioma se não estiver.
precisa saber é
5

Se o número de variáveis ​​é finito, o mesmo ocorre com o número de conjunções satisfatórias; portanto, sua linguagem SAT é finita (e, portanto, regular). [Editar: esta reivindicação assume o formulário CNFSAT.]

Caso contrário, vamos concordar em codificar fórmulas como por . Usaremos o lema de Ogden para provar que a linguagem de todas as conjunções satisfatórias não é livre de contexto.(x17¬x21)(x1x2x3)(17+~21)(1+2+3)

Seja a constante de "marcação" no lema de Ogden e considere uma fórmula sat cuja primeira cláusula consiste em - ou seja, a codificação de , onde é o número decimal que consiste em uns. Marcamos os de e exigimos que todos os bombeamentos da decomposição apropriada de (veja a conclusão do lema de Ogden) também sejam satisfatórios. Mas podemos facilmente bloquear isso exigindo que nenhuma cláusula contenha , onde é uma sequência de menor quew ( 1 p ) ( x N ) N p p 1 p w x q q 1 p w x q wpw(1p)(xN)Npp1pwxqq1p, seja satisfatório - por exemplo, garantindo que todas as outras cláusulas de tenham uma negação de cada um desses . Isso significa que falha na propriedade "bombeamento negativo" e concluímos que o idioma não é livre de contexto. [Nota: eu ignorei os casos triviais em que o bombeamento produz cordas mal formadas.]wxqw

Aryeh
fonte
Nota: Na minha afirmação de que para um número finito de variáveis a linguagem é finito, estou proibindo implicitamente repetindo uma variável dentro de uma cláusula ou uma cláusula Unboundedly muitas vezes
Aryeh
... Mas acho que a linguagem ainda é regular, porque se pega a coleção finita de fórmulas "essencialmente distintas" (isto é, sem repetições triviais) e depois permite as várias repetições.
Aryeh
A alegação com regularidade funciona apenas para o CNFSAT (adicionei um esclarecimento à minha pergunta).
mak
4
Mesmo com fórmulas arbitrárias que não sejam CNF em muitas variáveis ​​finitas, a satisfação (e qualquer linguagem que não possa distinguir duas fórmulas logicamente equivalentes para esse assunto) é facilmente vista como livre de contexto. No entanto, não vejo a relevância disso. A satisfação das fórmulas em muitas variáveis ​​finitas é um problema trivial que nada tem a ver com a complexidade do SAT.
Emil Jeřábek 3.0
1
OK, eu vejo o problema - eu estava implicitamente assumindo quepode ter um comprimento delimitado (como no lema clássico de bombeamento), além de poder especificar algo sobre sua localização na string. Penso que o argumento pode ser corrigido refazendo o lema de bombeamento do zero. Tornaremos essa primeira variável uma sequência realmente longa de 1's - tempo suficiente para que uma subárvore que gera uma substring contígua desses 1s tenha que ser suficientemente profunda para que o princípio pidgeonhole se aplique. |xyz|
precisa