算法概论第八章部分习题解答
来源:互联网 发布:淘宝买手机不给我发票 编辑:程序博客网 时间:2024/05/21 17:54
8.3 吝啬SAT问题是这样的:给定一组子句(每个子句都是其中文字的析取)和整数k,求一个最多有k各变量为true的满足赋值 —— 如果该赋值存在。证明吝啬SAT是NP完全问题。
1.证明吝啬SAT是NP问题。
2.证明吝啬SAT是NP完全问题。
1.证明吝啬SAT是NP问题。
2.证明吝啬SAT是NP完全问题。
解:
1.若存在一组对应于吝啬SAT问题子句变量的值,将这组值代入该问题中,可以在多项式时间内验证问题的解是否为真。因此吝啬SAT问题是NP问题。
2.将所有变量的总个数设为k,可以将SAT问题归约为吝啬SAT问题,此归约过程需要多项式时间,又因为SAT问题为NP完全问题,则吝啬SAT问题为NP完全问题。
8.8 在精准的4SAT(EXACT 4SAT)问题中,输入为一组子句,每个子句都是恰为4个文字的析取,且每个变量最多在每个子句中出现一次。目标是求它的满足赋值——如果赋值存在的话。证明EXACT 4SAT问题为NP完全问题。
解:
先证明EXACT 4SAT问题为NP问题:
若存在一组对应于EXACT 4SAT问题子句变量的值,将这组值代入该问题中,可以在多项式时间内验证问题的解是否为真。则EXACT 4SAT问题是NP问题。
再EXACT 4SAT问题为NP完全问题:
将3SAT问题归约到EXACT 4SAT问题上。对于任何一个3SAT问题,我们可以对每一个子句进行一系列操作,首先就是将子句中重复的文字进行删减,因为都是析取,所以删除重复的文字是不会影响结果的。接下来,如果一个文字出现了其否定和肯定在同一子句中,则将这个文字删除即可。最后一步就是,添加一些无关紧要的哑变量,将每个子句得文字数目扩充到4。
此归约过程需要多项式时间。又因为3SAT问题是NP完全问题,则EXACT 4SAT问题为NP完全问题。
阅读全文
0 0
- 算法概论第八章部分习题解答
- 算法设计 《算法概论》第八章 8.10 习题解答
- 《算法概论》第八章NP完全问题部分习题解
- 《算法概论》第八章习题 8-15
- 算法概论第八章课后习题
- 算法概论第八章课后习题
- 算法概论第八章课后习题8.8
- 算法概论第八章课后习题8.3
- 《算法概论》习题解答 8.10
- 算法概论习题解答8.22
- 【算法概论习题】8.8解答
- 算法概论8章,部分习题证明
- C++primer第五版第八章部分习题解答
- 算法概论第八章 NP完全问题 习题证明
- 算法概论课本第八章习题作业 8.8
- 《算法概论》习题8.14解答
- 算法导论第二章部分习题自我解答
- 算法导论 第7章部分习题解答
- 阿里云上安装mysql遇到的坑
- 分享十条nmap实用命令行技巧
- python模块 相关笔记
- window.onload = init 与window.onload = init()的差别
- iOS中如何打包一个.dylib静态库以及设置静态库通用
- 算法概论第八章部分习题解答
- PHP文件上传类
- IntelliJ IDEA 2017 注册方法
- monkey知识大放送
- poj1905 Expanding Rods
- 简单的404页面
- js 随机选取颜色
- Windows7下安装IntelliJ IDEA
- Linux命令详解