题目:

8.8. In the EXACT 4SAT problem, the input is a set of clauses, each of is a disjunction of exactly four literals, and such that each variables occurs at most once in each clause. The goal is to find a satisfying assignment, if one exists. Prove the EXACT 4SAT is NP-complete.

 

解答:

这道题要求我们证明精确4SAT问题是NP完全的,精确4SAT和SAT是类似的,但是多了约束条件,我们都知道SAT是由多个子句组成的,每个子句里有若干个文字,而精确4SAT要求每个子句必须包含4个文字,且这4个文字不能重复。

 

通过上课知道要证明一个问题是NP-完全问题,需要证明以下两点:

1. 它是一个NP问题,且

2. 其他属于NP的问题都可归约成它。

 

先证明精确4SAT是NP的。首先,给出一个精确4SAT可能的解,我们可以在多项式时间验证这个解是否正确,所以精确4SAT是NP的。

 

后证明精确4SAT是NP完全的。要证明精确4SAT是NP完全,可以通过将一个已知的NP完全问题归约成精确4SAT。

 

我们都知道3SAT是NP完全的,在3SAT中,每个子句最多有3个文字,而且是可以重复的。

 

我们可以通过以下2步将3SAT问题转换成精确4SAT问题:

1. 对于3SAT的每个子句,如果存在重复的文字,我们可以只保留其中一个;如果同时存在x和x¯这两种文字,那么这两个文字必定有一个为true,所以这一子句必定为true,这一子句不会影响最终结果,可以直接去掉。

2. 这时候在剩下的子句中,每个子句包含的文字数量可以是1、2或者3。我们需要加入无关变量来将其扩充到4个文字。

对于包含3个文字的子句,如:

(x⋁y⋁z) (式1)

 

我们可以加入无关变量n,得到:

(x⋁y⋁z⋁n)(x⋁y⋁z⋁n¯) (式2)

 

因为n和n¯之间必定有一个为false,所以要使得式2为true,式1也必须为true。所以精确4SAT的解也满足3SAT。

而对于包含2个文字的子句,可以用类似的方法先扩充到3个文字,再扩充到4个文字;对于只有1个文字的子句也类似。

这个从3SAT到精确4SAT的问题转换过程也是多项式时间内可以完成的。

当在精确4SAT中找到合适的解之后,我们去掉无关变量剩下的解就是3SAT的解,这也是可以在多项式时间内完成的。

所以,3SAT问题可以转化成精确4SAT问题。

 

综上所述,3SAT问题可以归约为精确4SAT问题,由于3SAT是NP完全的,所以精确4SAT。也是NP完全的。

Prove the EXACT 4SAT is NP-complete.相关推荐

  1. P vs NP vs NP Complete vs NP Hard

    目录 1.写在前面 2.千禧年世纪难题 3.P类和NP类问题特征 4.NPC问题 5.NP-Hard问题 6.总结 1.写在前面 我们看到一个问题,经常会说:"这个没法做,是一个NP问题&q ...

  2. 【释义】NP complete概念浅析(涵盖:P问题,NP问题,NP完全问题,NP难问题)

    文章目录 前言 正文 1.P问题 2.NP问题 3.NP-complete问题(即:NP完全问题) 4.NP完全问题可能不会长久存在 5.示例 6.NP-Hard问题(即:NP难问题) 7.关系 小结 ...

  3. 【Math】P=NP问题

    文章目录 **P vs NP** **0 P=NP基本定义** 0.1 Definition of NP-Completeness 0.2 NP-Complete Problems 0.3 NP-Ha ...

  4. 模拟退火算法解决np_P和NP问题与解决方案| 演算法

    模拟退火算法解决np P问题 (P Problems) P is the set of all the decision problems solvable by deterministic algo ...

  5. P、NP、NPC问题

    转自:http://blog.csdn.net/wwy851/article/details/6082007 最近看了很多关于P.NP和NPC问题的文章,但是都不是很系统全面,很多叙述的也不太清楚,有 ...

  6. NP-Hard?大白话学习P问题、NP问题、NP完全问题和NP难问题

    ## 该笔记自用为主,记录一些日常学习过程中看到的不熟悉的知识和从未接触过的知识,用于回看和记录.其中有一些个人理解,如有错误请讨论指正. 前言 在讨论这一串问题之前,我们需要复习两个概念. 1.多项 ...

  7. 算法中的P问题、NP问题、NP难问题和NP完全问题

    P问题:该问题存在一个可以在多项式时间内解决该问题的算法.(P:polynominal,多项式) 为什么我们要研究这个?因为计算机处理的输入常常不是那么几十个几千个那么一点点,想象一下,当计算机处理的 ...

  8. 【算法】P问题 NP问题 NPC问题 NPH问题的定义与理解

    一.前言 二.多项式 三.时间复杂度 四.P问题 五.NP问题 六.NPH问题,NPC问题 七.已经被证明的NPC问题 八.一些具体问题的总结 九.总结 一.前言 在讨论算法的时候,常常会说到这个问题 ...

  9. (数学)P、NP、NPC、NP hard问题

    概念定义: http://m.elecfans.com/article/757041.html https://www.cnblogs.com/AndyJee/p/5048556.html P问题:能 ...

  10. NP Problem

    摘自太傻BBS:<第一个 NP-complete 问题> NP 是 Non-deterministic Polynomial 的缩写,NP 问题通俗来说是其解的正确性能够被很容易检查的问题 ...

最新文章

  1. 【转】monkeyrunner学习总结二:连接、安装、启动
  2. python装饰器类-python装饰器2:类装饰器
  3. skimage.io.imread vs caffe.io.load_image
  4. 如何用DW设计界面 结合 VS设计后台代码
  5. windows server 2008 r2 jar包后台启动_Sharing-Proxy部署amp;启动(4.0.0-RC3)
  6. 《规范敏捷交付:企业级敏捷软件交付的方法与实践》——3.11 观点总结
  7. Lock锁的简单使用
  8. 为啥用计算机分析模拟,模拟电路的计算机分析与设计——Pspice程序应用
  9. 第1章 数据库系统概论---数据库原理及应用
  10. 通达信手机版分时图指标大全_通达信手机版指标源码公式:海底捞主图指标
  11. Java根据模板生成excel并下载
  12. BZOJ 3717: [PA2014]Pakowanie 状压dp
  13. 呼吸运动减肥法-可以加快新陈代谢
  14. oracle批量查询更新,Oracle批量查询、删除、更新使用BULK COLLECT提高效率
  15. 【ACWing】2715. 后缀数组
  16. [QT_041]Qt学习之通用对话框:QErrorMessage、QFileDialog、QProgressDialog
  17. 如何屏蔽UC强制嵌入到你网站页面上的垃圾广告
  18. 未对文件 C:\Users\Administrator\Documents\WindowsPowerShell\profile.ps1 进行数字签名。无法在当前系统上运行该脚本。
  19. PTA题目 抓老鼠啊~亏了还是赚了?
  20. springboot出现 Access denied for user ‘‘@‘localhost‘ (using password: YES)

热门文章

  1. CenterNet( Keypoint Triplets for Object Detection) 学习笔记
  2. linux7设置广播,中标麒麟Linux7 如何关闭广播消息
  3. /usr/bin/xauth: file /home/wj/.Xauthority does not exist
  4. [Python] 从ip138网站爬取ip所处地点
  5. 十分钟开发出神经网络五子棋(三)
  6. [USACO] Team Tic Tac Toe
  7. 苹果手机换了屏显示无服务器,苹果手机出现“无法验证此 iPhone 屏幕是正品”怎么办...
  8. 新学期新FLAG,我与你共青春
  9. 【Day3.3】美攻铁道市场零距离接触行驶中的火车
  10. 深信服php面经,深信服面经