我正在尝试制定一项任务(取材于算法-S. Dasgupta,CH Papadimitriou和UV Vazirani撰写,第8章,问题8.6a),而我的解释是:
鉴于即使限制在每个文字最多出现两次的公式中,3SAT仍然是NP完全的,这表明如果每个文字最多出现一次,那么该问题可以在多项式时间内解决。
我试图通过将子句分成多个组来解决此问题:
- 与其余条款没有任何共同点的条款
- 仅有1个共同变量的子句
- 有两个共同变量的条款
- 具有所有三个变量的子句
我的推理是按照这样的思路进行的:此类组的数量是有限的(由于没有文字出现的限制超过一次),我们可以尝试首先满足最严格的组(第4组),然后替换会产生较少的受限制的组(3、2,然后是1),但是我意识到这并不能带我去任何地方,因为这与3SAT受约束版本的情况并没有太大不同,在受约束版本中,每个文字都可以出现最多两次,这已被证明是NP完全的。
我尝试在网上搜索任何提示/解决方案,但我只能获得此链接,其中的提示对我来说没有足够的意义,我在这里逐字复制:
提示:由于每个文字出现最多一次,转换这个问题2SAT问题-因此多项式时间内,如果一个文字显示在条款Ç Ĵ和的补体X 我(即,¯ X 我在子句)Ç ķ,构建体的新子句子句ç Ĵ ∨ ¯ ç ķ。
无论和ç ķ有每次三个文字-我没有得到我应该如何去这样做将其转换为2SAT Ç Ĵ ∨ ¯ ç ķ(或¯ ç Ĵ ∨ Ç ķ如果我读错的话)。
在解密提示或提供我可以探索的路径方面的任何帮助将不胜感激。