如何证明在多项式时间内可求解的3SAT约束版本(其中没有一个文字可以出现多次)是可解决的?


10

我正在尝试制定一项任务(取材于算法-S. Dasgupta,CH Papadimitriou和UV Vazirani撰写,第8章,问题8.6a),而我的解释是:

鉴于即使限制在每个文字最多出现两次的公式中,3SAT仍然是NP完全的,这表明如果每个文字最多出现一次,那么该问题可以在多项式时间内解决。

我试图通过将子句分成多个组来解决此问题:

  1. 与其余条款没有任何共同点的条款
  2. 仅有1个共同变量的子句
  3. 有两个共同变量的条款
  4. 具有所有三个变量的子句

我的推理是按照这样的思路进行的:此类组的数量是有限的(由于没有文字出现的限制超过一次),我们可以尝试首先满足最严格的组(第4组),然后替换会产生较少的受限制的组(3、2,然后是1),但是我意识到这并不能带我去任何地方,因为这与3SAT受约束版本的情况并没有太大不同,在受约束版本中,每个文字都可以出现最多两次,这已被证明是NP完全的。

我尝试在网上搜索任何提示/解决方案,但我只能获得此链接,其中的提示对我来说没有足够的意义,我在这里逐字复制:

提示:由于每个文字出现最多一次,转换这个问题2SAT问题-因此多项式时间内,如果一个文字显示在条款Ç Ĵ和的补体X (即,¯ X 在子句)Ç ķ,构建体的新子句子句ç Ĵ¯ ç ķxiCjxixi¯CkCjCk¯

无论ç ķ有每次三个文字-我没有得到我应该如何去这样做将其转换为2SAT Ç Ĵ¯ ç ķ(或¯ ç ĴÇ ķ如果我读错的话)。CĴCķCĴCķ¯CĴCķ¯

在解密提示或提供我可以探索的路径方面的任何帮助将不胜感激。

Answers:


12

在不失一般性的前提下,我们可以假设每个变量只出现一次正值和一次出现一次(如果变量只出现一次,则将其值设置为满足该子句并删除该子句)。我们还可以假设一个变量在子句中出现的次数不超过一次(如果一个变量在子句中出现的是肯定的也就是否定的,那么该子句就可以满足并且可以删除)。这些不会改变可满足性。

现在,使用解析规则逐个消除变量(因为每个变量恰好出现一次,一次出现,一次出现,这是确定性过程)。如果在任何时候获得空子句,则子句集将无法满足,否则将是可满足的。这是因为:

  • 解析是一个完整的命题证明系统(即,如果子句在逻辑上隐含在子句集合中,那么仅使用解析规则就可以从子句集合派生该子句),

  • 如果从逻辑上暗示空子句,则不能满足一组子句。

XX¯CC,其子句比解析前少一个。相反,如果将其应用于3SAT公式,而对每个文字的出现次数没有限制,则应用分辨率可能导致子句的数量成倍增加。


3
一个¬一个CC

1
还需要确保在使用分辨率后不变式仍然适用。在此步骤之后,SAT实例(请注意,它不再是3SAT)保留了以下属性:每个文字恰好一次出现一次,一次出现一次。这也表明问题中的3SAT限制是不必要的;单位分辨率适用于任何满足2级限制的SAT实例。简而言之:单位分辨率可在线性时间内解决2级SAT。
安德拉斯·萨拉蒙

我不明白最后一部分。为什么在普通的3SAT中条款会成倍增加?
Parth Tamane
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.