CNF-SAT是否有不确定的线性时间算法?


19

决策问题CNF-SAT可以描述如下:

输入:逻辑合取形式的布尔公式。ϕ

问题:是否存在满足的变量赋值?ϕ

我正在考虑使用非确定性两带图灵机解决CNF-SAT的几种不同方法。

我相信有一个NTM可以在步骤中解决CNF-SAT 。npoly(log(n))

问题:是否有一个NTM可以在步骤中解决CNF-SAT ?O(n)

即使任何相关参考文献仅提供接近线性时间的不确定性方法,也应赞赏。


5
Santhanam在2001年写道:“SAT n时间( polylog),从事实SAT可以在接受如下结果 polylog时间上的NRAM,并且有由NRAMs的有效模拟NTM,归功于Gurevich和Shelah。” 因此,对我来说, NTIME()中知道SAT似乎不太可能。(参考的是1989n(n)n(n)n
LNCS363

5
@Boson,假设您不仅获得了令人满意的分配,而且还对公式进行了完整的计算。您如何检查线性时间是否有效?甚至对于3CNF-SAT都无法做到,因为您必须跳来跳去查找变量的分配。
卡夫

4
@Boson尚不清楚您是否可以使用两带TM来验证分配是否满足线性时间公式。您可能不得不多次前后移动磁带。如果您有有效的验证方法,请告诉我。:)
Michael Wehar 2015年

5
只是注意:如果变量是在一元(SAT仍然是NPC)表示,再有就是双带NTM识别一个一元可满足公式在步骤φ2|φ|
Marzio De Biasi 2015年

3
@MichaelWehar如果使用计数排序,则可以在合理的随机访问模型(例如,随机访问图灵机中,可以在O(n n)写下索引的时间,然后可以在1步中跳到磁带的该索引)。如果将每个文字编码为(log n + 1)位字符串,则子句和变量的总数最多为O(n / log n),在这种情况下,对所有文字进行O(log n)次运算没事。扩展到两个磁带TM并非易事,至少在计数排序上是如此。
瑞安·威廉姆斯

Answers:


5

这只是扩展注释。几次前,我问(我自己:-)接受(完全编码的)NP完整语言的多带NTM有多快。我想到了这个主意:

即使变量以一元表示,3-SAT仍保持NP完整。特别地,我们可以将一个条款-假设 -任意的3-SAT式上变量和以上字母表子句中的字符序列,其中每个变量出现均以一元表示:φ Ñ Σ = { + - 1 }(xi¬xjxk)φnmΣ={+,,1}

+1i0,1j,+1k

例如,可以转换为:(x2x3+4)

+110-1110+11110

因此,我们可以将3-SAT公式转换为等效的字符串连接其子句。语言是NP完全的。 ù φ 大号Ù = { ù φ | φ 3 - 小号Ť }φiU(φi)LU={U(φi)φi3SAT}

2磁带NTM可以在时间中的字符串通过这种方式。 2 | x |xLU2|x|

  • 第一个头部从左到右扫描输入,并使用内部逻辑跟踪进入或退出子句或到达公式末尾的情况。每当它找到或,第二个头就开始在代表的上向右移动。在的末尾,如果第二个磁头在那么它将猜测一个真值或(它进行赋值)并将其写入第二个磁带;如果找到或则该变量已被分配一个值;1 i x i 1 i 0 + + +1ixi1i0++
  • 在这两种情况下,NTM都使用内部逻辑将第二个标题(赋值)下的真值与最后看到的或相匹配;如果它们匹配,则满足该子句;-+
  • 然后第二个头可以返回最右边的单元格;
  • 通过内部逻辑,当第一个头移到输入的末尾时,NTM可以跟踪所有子句是否得到满足。

例:

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)

时间可以减少到如果我们在子句表示中添加一些冗余符号:|x|

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

(标记公式的结尾)+++

这样,第二个头可以返回到最左边的单元格,而第一个头则扫描部分。使用作为子句定界符,使用作为公式结尾的标记,我们可以对CNF公式使用相同的表示形式,每个子句具有任意数量的文字。 ++ +++0i+++++


1
一元表示形式是明确的,因此可以将0/1用作+/-,第一个示例为011011110111110。然后将00用作子句结尾标记,因为否则不能发生000(如果发生00,则它是变量和下一个符号的结尾标记,因此下一个符号必须为1)。单个工作带包含对变量的猜测位分配。读取变量时,工作带头会向前移动,然后在看到0时又移回到起点,因此输入的每个位最多步骤。v 2vv2
安德拉斯·萨拉蒙

2
换句话说,即使是带有单向输入磁带和单个工作带的NDTM,使用布尔字母编码的一元SAT也最多使用步。2n
安德拉斯·萨拉蒙

1
为了使事情更加整洁,可以进一步要求输入首先包含一个前缀,该前缀带有一元中指定的变量的数量。这允许在读取前缀时建立猜测。然后,这是一种“一元SATLIB”编码,在标准SAT实例中,其大小最多为平方,只要每个变量在公式中至少出现一次且变量的编号为0到。这些似乎是合理的要求。v 1vv1
安德拉斯·萨拉蒙

1
@AndrásSalamon:很好!修复编码和模型(单向读取磁带+ 2向工作磁带)后,在大小为输入上,我们得到了的最差运行时间,其中可以任意大,将一些固定存储嵌入TM内部逻辑中。研究是否可以使用输入磁带的单向性和横截面参数来证明某些事情可能会很有趣。n c2ncnc
Marzio De Biasi 2015年

1
是的,据我所知,一元SAT的时空积通过标准参数类似于。变量的一元表示避免了最著名的下界与简单的上限CNF-SAT(尽管在这种情况下,更好的算法也可能会缩小间隔)。Ωn2/logn 1 + εOn3/logn ε 'Θ(nn)Ω(n2/(logn)1+ε)O(n3/(logn)ε)
安德拉斯·萨拉蒙

2

对于1磁带NTM,这不完全是您要寻找的东西,答案似乎是否定的:1磁带NTM在不确定的线性时间内无法解决SAT问题。

根据本文(定理4.1),常规语言的类别恰好是1-tape NTM在时间识别的语言类别。因此,如果在时间存在一个解决SAT的1-tape NTM ,则SAT(更确切地说是CNF中可满足的公式集)将是一种常规语言,因此可以在确定性恒定空间中求解。o n log n o n log n REG o(nlog(n))o(nlog(n))


5
该定理仅涉及单头图灵机。(例如,两个头图灵机可以很容易地决定回文语言线性时间和恒定的空间。)

这很棒!非常感谢你。但是,我对两盘式磁带案最感兴趣。:)
Michael Wehar 2015年

2
正如@Ricky所写。AFAIK仍然与我们知道SAT在确定性线性时间内一致。为了证明否则,您将需要SAT的超线性时间下界,而我们没有一个(似乎不接近1)。
卡夫
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.