算法概论 8,16

问题描述:



思路:

问题的核心在于如何把3sat问题规约到烹调实验问题,若成功规约,那么易得:如果烹调实验问题能够在多项式时间内解决,则3sat也可以。


证明:

假设我们现在面对的是n个variable(以下简称V),m个clausees(以下简称C)的3SAT问题,那么我们构建一个(2n+3m)*(2n+3m)的和谐度矩阵:每个variable都可以产生两种配料:true和false,每个clause可以产生三种配料:第一个变量符合、第二个变量符合和第三个变量符合。

现在我们来定义不和谐度:先全部初始化为0,接下来把以下情况的pair设为1:

1、V之间互斥值:比如variable x,它不可能既为true又为false,所以(x=true,x=false)的值为1

2、C之间互斥值:比如c1(第一个变量符合)与c2(第一个变量不符合)互斥,(c1,c2)的值为1

3、VC互斥值:比如对于C(u or not-v or w),他的c1(u=true,vw随意)与v(u=false)互斥,(c1 ,v)的值为1

现在我们设置好了和谐度矩阵。

接下来定义p,很简单,如果要满足3SAT要求,那么只需要把p设为0即可,也就是组合中任意元素之间的相斥度都要为0

这样我们就把3SAT规约为了烹调问题,也就是说,只要能在多项式时间内求解烹饪问题,则一定可以在多项式时间内求解3SAT问题。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
序言 Preface 方框目录 0Prologue(序论) 0.1Booksandalgorithms(书和算法) 0.2EnterFibonacci(斐波那契数列) 0.3Big-Onotation(大O记号) Exercises(习题) 1Algorithmswithnumbers(数的算法) 1.1Basicarithmetic(基本算术) 1.2Modulararithmetic(模运算) 1.3Primalitytesting(素性测试) 1.4Cryptography(密码学) 1.5Universalhashing(全域散列) Exercises(习题) Randomizedalgorithms:avirtualchapter(虚拟章:随机化算法) 2Divide-and-conqueralgorithms(分而治之算法) 2.1Multiplication(乘法) 2.2Recurrencerelations(递归关系) 2.3Mergesort(合并排序) 2.4Medians(中位数) 2.5Matrixmultiplication(矩阵乘法) 2.6ThefastFouriertransform(快速傅里叶变换) Exercises(习题) 3Decompositionsofgraphs(图的分解) 3.1Whygraphs?(图论) 3.2Depth-firstsearchinundirectedgraphs(无向图中的深度优先搜索) 3.3Depth-firstsearchindirectedgraphs(有向图中的深度优先搜索) 3.4Stronglyconnectedcomponents(强连通分量) Exercises(习题)—— 4Pathsingraphs(图的路径) 4.1Distances(距离) 4.2Breadth-firstsearch(广度优先搜索) 4.3Lengthsonedges(边的长度) 4.4Dijkstra’salgorithm(Dijkstra算法) 4.5Priorityqueueimplementations(实现优先队列) 4.6Shortestpathsinthepresenceofnegativeedges(带负权的边的图中的最短路径) 4.7Shortestpathsindags(有向无环图中的最短路径) Exercises(习题) 5Greedyalgorithms(贪婪算法) 5.1Minimumspanningtrees(最小生成树) 5.2Huffmanencoding(赫夫曼编码) 5.3Hornformulas(Horn公式) 5.4Setcover(集合覆盖) Exercises(习题) 6Dynamicprogramming(动态规划) 6.1Shortestpathsindags,revisited(回顾:有向无环图中的最短路径) 6.2Longestincreasingsubsequences(最长 递增子序列) 6.3Editdistance(编辑距离) 6.4Knapsack(背包问题) 6.5Chainmatrixmultiplication(链式矩阵乘法) 6.6Shortestpaths(最短路径) 6.7Independentsetsintrees(树中的独立集) Exercises(习题) 7Linearprogrammingandreductions(线性规划与归约) 7.1Anintroductiontolinearprogramming(线性规划入门) 7.2Flowsinnetworks(网络流) 7.3Bipartitematching(二部图匹配) 7.4Duality(对偶性) 7.5Zero-sumgames(零和游戏) 7.6Thesimplexalgorithm(单纯形算法) 7.7Postscript:circuitevaluation(附录:电路求值) Exercises(习题) 8NP-completeproblems(NP完全问题) 8.1Searchproblems(搜索问题) 8.2NP-completeproblems(NP完全问题) 8.3Thereductions(归约) Exercises(习题) 9CopingwithNP-completeness(处理NP完全问题) 9.1Intelligentexhaustivesearch(智能穷举搜索) 9.2Approximationalgorithms(近似算法) 9.3Localsearchheuristics(局部启发式搜索) Exercises(习题) 10Quantumalgorithms(量子算法) 10.1Qubits,

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值