即使每个变量都出现正向和负向,三合一SAT仍然保持NP难度吗?


9

标准问题1合3 SAT(或XSAT或X3SAT)是:
实例:一个CNF公式,每个子句正好包含3个文字
:是否有一个令人满意的赋值设置,每个子句正好包含1个文字?

该问题是NP完全的,即使没有否定变量也很难解决。我想知道,是否要求每个变量至少出现一次正向和至少发生一次负向,使这个问题变得容易还是难以解决。

通常从3SAT减少到3表示1合3 SAT很难替代条款 (xyz) 通过条款 (¬xab)(ybc)(¬zcd) 哪里 a,b,c,d每个子句都是新鲜的。因此,这种减少无助于回答我的问题。我很难找到一个显示此变体硬度的小工具,因为如果子句中恰好1个文字为真,那么非对称2个文字为假。如果事实证明很简单,那么考虑子句集的分区可能会做到这一点,但我不知道如何做到。


可以减少到2座吗?
Joshua Herman

4
提示:对于每个变量 Xi,添加子句 (XiX¯iW)(XiX¯iY)(XiX¯iZ) 然后说 (WYZ¯)
Neal Young

哈,那行得通(当然还可以 (W¯YZ)(WY¯Z))。我将开放这个问题,以防任何人都能解决而又不会太过让人不满意XiX¯i特技。
多米尼克·彼得斯

3
我是否可以鼓励您针对自己的问题写出完整的答案,也许是基于尼尔·扬的想法?(顺便说一下,我不确定为什么这是“不满意的”。减少就是减少。)
DW

4
如果您真正关心的是这种特殊情况,那么可能有必要编辑您的问题以反映该额外限制吗?
DW

Answers:


2

在评论中,OP表达了对减少的兴趣,该减少产生了每个子句具有3个不同变量的实例。这是一个简单的方法:

减少是从1合3 SAT进行的,每个子句具有3个不同的变量:

  • 首先,将输入公式中的所有子句包括在输出公式中。
  • 其次,引入三个新变量 F1F2F3 并将以下三个子句添加到输出公式中: (¬F1,F2,F3)(F1,¬F2,F3)(F1,F2,¬F3)
  • 最后,对于每个变量 x 在原始公式中,引入一个新变量 x,并在输出公式中添加以下两个子句: (x,x,F1)(¬x,¬x,F1)

让我们验证一下这种减少是否达到了我们想要的效果。以下是我们想要的属性:

  1. 每个子句始终具有三个不同的变量。
  2. 每个变量在某子句中肯定地出现,而在某子句中相反地出现。
  3. 输入公式等同于输出公式。

属性1很容易检查。属性2也很容易检查:变量F1F2F3 每个变量在第二个项目符号点添加的子句中都出现了正负两个方面,而公式中的每个其他变量在第三个项目符号点添加的子句中都出现了正负两个方面。

至于属性3,这虽然不那么琐碎,但仍然很容易。您可以轻松地说出变量的唯一赋值F1F2F3 从第二个要点开始满足每个子句的是 Fi是错误的。但是然后假设值为falseF1,条款 (x,x,F1)(¬x,¬x,F1) 当且仅当满足 x=¬x。由于没有其他限制x,这意味着始终可以将输入公式的满意分配扩展为输出公式的满意分配:只需设置每个 x 是对应的否定 x 并设置每个 Fi 虚假。

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.