SAT是上下文无关的语言吗?


12

我正在考虑所有可满足的命题逻辑公式SAT的语言(为确保它具有有限的字母,我们将以某种合适的方式对命题字母进行编码[编辑:答复指出,在各种编码,因此需要更具体-参见下面的结论])。我的简单问题是

SAT上下文无关的语言?

我的第一个猜测是,今天(2017年初)的答案应该是“没人知道,因为这与复杂性理论中尚未解决的问题有关”。但是,这也不是真的(请参阅下面的答案),尽管也不是完全错误的。这是我们所知道的事情的简短摘要(从一些显而易见的事情开始)。

  1. SAT不是常规的(由于命中括号,甚至命题逻辑的语法也不常规)
  2. SAT是上下文相关的(不难为其提供LBA)
  3. SAT是NP完全的(Cook / Levin),尤其是由多项式时间内的不确定TM决定。
  4. SAT也可以通过单向非确定性堆栈自动机(1-NSA)进行识别(请参阅WC Rounds,中级语言的识别复杂性,《交换与自动机理论》,1973,145-158 http://dx.doi.org/ 10.1109 / SWAT.1973.5
  5. 与上下文无关的语言的单词问题具有其自己的复杂度类CFL(请参阅https://complexityzoo.uwaterloo.ca/Complexity_Zoo:C#cfl
  6. ,其中 LOGCFL是类的问题LOGSPACE还原为 CFL(见https://complexityzoo.uwaterloo.ca/Complexity_Zoo:L#logcfl)。据了解, NLLOGCFLCFLLOGCFLAC1LOGCFLCFLNLLOGCFL
  7. NLNPNC 1PH NP LOGCFL LOGCFLNL=NPNC1PHNPLOGCFLLOGCFL

但是,最后一点仍然可能使SAT不在。通常,我对与层次结构之间的关系了解不多,这可能有助于阐明我的问题的认知状态。节能NCCFLCFLNC

备注(在看到一些初始答案之后):我并不期望该公式为合取范式(这不会对答案的本质造成影响,并且由于CNF也是一个公式,因此通常仍然适用论点。但是声称问题的常量数版本是常规的失败,因为语法需要括号。)

结论:与我的复杂性理论启发的猜测相反,我们可以直接证明SAT不是上下文无关的。因此,情况是:

  1. 众所周知,SAT不是上下文无关的(换句话说:SAT不在),这种假设是假设人们使用公式的“直接”编码,其中命题变量由二进制数字标识(还有一些进一步的符号用于运算符和分隔符)。CFL
  2. 尚不知道SAT是否位于,但“大多数专家认为”并非如此,因为这意味着。这也意味着未知SAT的其他“合理”编码是否与上下文无关(假设对于NP难题,我们认为logspace是可接受的编码工作)。P = NPLOGCFLP=NP

请注意,这两点并不意味着。这可以通过显示中的语言(因此在)不是上下文无关的语言(例如)直接显示出来。大号LOGCFL 一个Ñ b Ñ Ç ÑCFLLOGCFLLLOGCFLanbncn


如果是,则P = NP。
Ryan

1
如果SAT是没有上下文的,则动态编程(CYK算法)将提供用于测试SAT成员资格的多项式时间算法,从而得出P = NP。即使P = NP也不意味着SAT是无上下文的。变量的这种编码似乎比您认为的重要得多。我还没有弄清楚细节,但是如果您将一元或二进制“下标”添加到变量中,我认为对于足够大的索引,很难将(x和y)与(x而不是x)区分开。
亚当F

在声明P = NP结论之前,您必须对表示形式有把握。例如,将数N分解为N的多项式时间(有趣的问题是关于以二进制形式写N所需要的位数,或者是对数N)。
Aryeh

我知道P = NP的结论,因此预期答案不会是“是”(很抱歉,我对这句话的看法有些挑衅;-)。我仍然想知道这是否是真正已知的,还是仅仅是“大多数专家都相信”的东西(答案现在清楚地表明前者是真的;我会在适当的时候选择一个)。

Answers:


7

只是使用多种已知结果的替代证明。

假设:

  • 变量用正则表达式d=(+|)1(0|1)
  • 并且用于表示CNF公式的(常规)语言(超过为: ; 请注意,所有有效的CNF公式,直到变量重命名为止。小号= { d +d + *d +d + ** } 小号Σ={0,1,+,,,})S={d+(d+)((d+(d+)))}S

例如编写为:(运算符的优先级高于) 。小号φ = + 1 + 10 - 11 小号φ=(x1x2)x3sφ=+1+1011S

假设 st对应的公式是可满足的是CF。φ }L={sφSφ}

如果我们将其与常规语言相交:我们仍然会获得CF语言。我们还可以应用同态:,并且语言仍然是CF。R={+1a1b1ca,b,c>0}h(+)=ϵh()=ϵ

但是我们得到的语言是:,因为如果则“源”公式为这是满足的(与相似)。但是是一种众所周知的非CF语言矛盾。L={1a1b1cab,ac}a=b+xaxaxba=cL


我现在接受了这个答案,因为其他方法仍然存在一个未解决的问题(请参阅评论),我喜欢一些更基本的论点。需要强调的是,该参数特定于所选择的编码,并且是否可以找到导致上下文无关的语言的另一种简单(logspace)编码确实是未知的。
mak

1
@mak:我怀疑可以通过类似的技术将SAT的任何其他“合理”编码证明为非CF。也许另一个有趣的方向是研究是否可以应用某种对角线化以获得更通用的证明:SAT公式对一个计算进行编码,该计算模拟给定输入上的下推自动机,并且当且仅当它满足时,才可满足要求。不接受。但这只是一个模糊的主意……
Marzio De Biasi

检查字符串是否为普通语言为P。假定SAT为Reg。然后,NP = coNP。让L在Reg中。如果不在L中,则考虑为真的公式。在NP中,因此可以将其表示为SAT公式。如果不是,则使用语言。
卡夫

5

如果变量的数量是有限的,那么可满足的连词的数量也是有限的,因此您的SAT语言是有限的(因此是规则的)。[编辑:此声明采用CNFSAT表格。]

否则,让我们同意编码式诸如由。我们将使用奥格登引理 证明所有可满足的连接词的语言不是上下文无关的。(x17¬x21)(x1x2x3)(17+~21)(1+2+3)

令为奥格登引理中的“标记”常量,并考虑一个饱和表达式其第一个子句由 -即的编码,其中是由组成的十进制数那些。我们纪念的那些,然后要求的适当分解所有的泵酒(见奥格登引理的结论)也是满足的。但是我们可以通过要求不包含子句来轻松地阻止此,其中是比短的序列w 1 px NN p p 1 p w x q q 1 p w x q wpw(1p)(xN)Npp1pwxqq1p是可满足的-例如,通过确保所有其他子句对每个取。这意味着失去了“负泵浦”属性,并且我们得出该语言不是上下文无关的结论。[注意:我忽略了泵送产生格式错误的字符串的琐碎情况。]wxqw


注意:在我的说法中,对于有限数量的变量,语言是有限的,我隐式地不允许在子句或子句中无限制地重复多次变量
Aryeh,2017年

...但是我认为该语言仍然是正规的,因为人们只接受有限数量的“基本上不同的”(即没有琐碎的重复)公式,然后允许进行各种重复。
Aryeh

有规律的索赔仅适用于CNFSAT(我在问题中做了澄清)。
mak

4
即使在有限的多个变量中使用任意的非CNF公式,也很容易看出可满足性(以及无法在此问题上区分两个逻辑等效公式的任何语言)。但是,我看不到这一点的相关性。有限多个变量中公式的可满足性是一个琐碎的问题,与SAT的复杂性无关。
埃米尔·杰拉贝克(EmilJeřábek),

1
好的,我看到了问题-我隐式地假设可以限制长度(如经典的抽运引理一样),同时还可以指定其在字符串中的位置。我认为,可以通过从头开始重新做激进的引理来解决争论。我们将第一个变量设置为一个非常长的1序列-足够长,以至于某些子树生成那些1的连续子串必须足够深才能应用pidgeonhole原理。|xyz|
Aryeh
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.