您的位置:首页 > 其它

算法概论第八章课后习题

2017-01-01 21:54 225 查看

8.3

题目:

吝啬SAT问题是这样的:给定一组子句(每个子句都是其中文字的析取)和整数k,求一个最多有k个变量为true的满足赋值——如果该赋值存在。证明吝啬SAT是NP-完全问题。

解答:

证明吝啬SAT问题为NP问题。

若已知某个与吝啬SAT问题变量对应的真值集合,可在多项式时间内将该集合带入吝啬SAT问题验证是否为解。故吝啬SAT问题为NP问题。

证明吝啬SAT为NP-完全问题。

SAT -> 吝啬SAT

令SAT问题中变量个数为k即得到吝啬SAT问题,此归约过程需要多项式时间。又因为SAT问题为已知的NP-完全问题,则吝啬SAT问题亦为NP-完全问题。

8.8

题目:

在精确的4SAT(EXACT 4SAT)问题中,输入为一组子句,每个子句都是恰好4个文字的析取,且每个变量最多在每个子句中出现一次。目标是求它的满足赋值——如果该赋值存在。证明精确的4SAT是NP-完全问题。

解答:

证明4SAT问题为NP问题。

若已知与4SAT问题变量对应的某个真值集合,可在多项式时间内将该集合带入4SAT问题验证是否为解。故4SAT问题为NP问题。

证明4SAT问题为NP-完全问题。

3SAT -> 4SAT

对于一个3SAT问题的实例,若存在子句的某变量出现了超过一次,则可将该变量删减到出现一次;若存在子句既出现某变量又出现该变量的非,则可消去该两个文字;最后往子句中新添加变量直至4个文字。此归约过程需要多项式时间。此时可得到4SAT问题。又因为3SAT问题是已知的NP-完全问题。故4SAT问题为NP-完全问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法概论