J'examine le langage de toutes les formules logiques propositionnelles satisfaisantes, SAT (pour garantir qu'il ait un alphabet fini, nous encoderions les lettres propositionnelles d'une manière appropriée [modifier: les réponses ont souligné que la réponse à la question peut ne pas être robuste sous différents encodages, il faut donc être plus précis - voir mes conclusions ci-dessous] ). Ma simple question est
SAT est -il un langage sans contexte?
Ma première supposition était que la réponse d'aujourd'hui (début 2017) devrait être "Personne ne sait, car cela concerne des questions non résolues dans la théorie de la complexité." Cependant, ce n'est pas vraiment vrai (voir la réponse ci-dessous), mais pas complètement faux non plus. Voici un bref résumé des choses que nous savons (en commençant par des choses évidentes).
- SAT n'est pas régulier (car même la syntaxe de la logique propositionnelle n'est pas régulière, en raison des parenthèses correspondantes)
- SAT est contextuel (il n'est pas difficile de lui donner un LBA)
- SAT est NP-complet (Cook / Levin), et en particulier décidé par des MT non déterministes en temps polynomial.
- SAT peut également être reconnu par des automates de pile non déterministes unidirectionnels (1-NSA) (voir WC Rounds, Complexity of Recognition in Intermediate Level Languages , Switching and Automata Theory, 1973, 145-158 http://dx.doi.org/ 10.1109 / SWAT.1973.5 )
- Le problème de mot pour les langues sans contexte a sa propre classe de complexité (voir https://complexityzoo.uwaterloo.ca/Complexity_Zoo:C#cfl )
- , où LOGCFL est la classe d'espace de journalisation des problèmes réductible à CFL (voirhttps://complexityzoo.uwaterloo.ca/Complexity_Zoo:L#logcfl). Il est connu que NL ⊆ LOGCFL .
- NL = NP NC 1 ⊊ PH NP LOGCFL LOGCFL
Cependant, ce dernier point laisse toujours la possibilité que SAT ne soit pas dans . En général, je n'ai pas pu trouver grand-chose sur la relation de avec la hiérarchie qui pourrait aider à clarifier le statut épistémique de ma question.CFL NC
Remarque (après avoir vu quelques réponses initiales): Je ne m'attends pas à ce que la formule soit sous une forme normale conjonctive (cela ne changera rien à l'essence de la réponse, et généralement les arguments s'appliquent toujours car un CNF est aussi une formule. Mais le prétendre que la version à nombre de variables constant du problème est régulière échoue, car il faut des parenthèses pour la syntaxe.).
Conclusion: Contrairement à ma supposition inspirée de la théorie de la complexité, on peut montrer directement que SAT n'est pas sans contexte. La situation est donc:
- On sait que SAT n'est pas sans contexte (en d'autres termes: SAT n'est pas dans ), en supposant que l'on utilise un codage "direct" de formules où les variables propositionnelles sont identifiées par des nombres binaires (et certains d'autres symboles sont utilisés pour les opérateurs et les séparateurs).
- On ne sait pas si SAT est dans , mais "la plupart des experts pensent" que ce n'est pas le cas, car cela impliquerait . Cela signifie également qu'il est inconnu si d'autres codages "raisonnables" de SAT sont hors contexte (en supposant que nous considérions l'espace de journalisation comme un effort de codage acceptable pour un problème NP-difficile).P = NP
Notez que ces deux points n'impliquent pas . Cela peut être montré directement en montrant qu'il y a des langues dans (donc dans ) qui ne sont pas sans contexte (par exemple, ).L LOGCFL a n b n c n
Réponses:
Juste une preuve alternative utilisant un mélange de résultats bien connus.
Supposer que:
Par exemple s'écrit: (l' opérateur a la priorité sur ) .φ=(x1∨x2)∧−x3 sφ=+1∨+10∧−11∈S ∨ ∧
Supposons que st la formule correspondante est satisfiable est CF.L={sφ∈S∣ φ }
Si nous l'intersectons avec le langage régulier: nous obtenons toujours un langage CF. On peut également appliquer l'homomorphisme: , et le langage reste CF.R={+1a∧−1b∧−1c∣a,b,c>0} h(+)=ϵ h(−)=ϵ
Mais le langage que nous obtenons est: , car si alors la formule "source" est ce qui n'est pas satisfaisant (de même si ). Mais est une contradiction bien connue du langage non CF .L′={1a∧1b∧1c∣a≠b,a≠c} a=b +xa∧−xa∧−xb a=c L′ ⇒
la source
Si le nombre de variables est fini, alors le nombre de conjonctions satisfaisables l'est aussi, donc votre langage SAT est fini (et donc régulier). [Modifier: cette revendication prend la forme CNFSAT.]
Sinon, acceptons de coder des formules telles que par . Nous utiliserons le lemme d' Ogden pour prouver que le langage de toutes les conjonctions satisfaisables n'est pas sans contexte.(x17∨¬x21)∧(x1∨x2∨x3) (17+~21)(1+2+3)
Soit la constante de "marquage" dans le lemme d'Ogden, et considérons une formule sat dont la première clause consiste en - c'est-à-dire l'encodage de , où est le nombre décimal composé de ceux. Nous marquons les de et exigeons ensuite que tous les pompages de la décomposition appropriée de (voir la conclusion du lemme d'Ogden) soient également satisfaisables. Mais nous pouvons facilement bloquer cela en exigeant qu'aucune clause contenant , où est une séquence de plus courte quew ( 1 p ) ( x N ) N p p 1 p w x q q 1 p w x q wp w (1p) (xN) N p p 1p w xq q 1 p , soyez satisfiable - par exemple, en vous assurant que chaque autre clause de a une négation de chacun de ces . Cela signifie que échoue à la propriété de "pompage négatif" et nous concluons que le langage n'est pas sans contexte. [Remarque: j'ai ignoré les cas triviaux où le pompage produit des chaînes mal formées.]w xq w
la source