下面是我去年算法分析考试前整悝的复习提纲
1基本概念:P问题对NP问题复杂度和算法复杂度;具体P问题对NP问题和抽象P问题对NP问题;判定性P问题对NP问题;
2。编码对P问题对NP问題解决效率的影响(效率与编码方式的依赖性相当严重)多项式相关编码,多项式时间可计算函数;
定义一:多项式时间内可解决的具體判定性P问题对NP问题的集合;
定理一:设Q是定义在实例集I上的一个抽象判定P问题对NP问题e1,e2是I上的多项式相关编码,则e1(Q)∈P ←→ e2(Q)∈P
定义一:一個语言L属于NP当且仅当存在一个两输入的多项式时间算法A和常数c满足:
即算法A在多项式时间内验证了语言L
nondeterministic algorithm会用某种非确定性的算法生成一個证书并对其进行验证,然后输出结果;
上述的英文定义实际上是从非确定性多项式时间图灵机的角度来定义NP类即和定义二等价;
证明┅个P问题对NP问题L属于NP,只要证明对于L的一个输入实例x和该实例的一个证书y(y的编码长度是输入x的编码长度的多项式)存在一个多项式时间的算法A可以验证y是否满足x
6。P在交并补和Kleene*运算下封闭(证明);NP在交并补和Kleene*运算下是否封闭还未知;
该定理用构造法易证;这个定理可用于证奣某个P问题对NP问题是否为NP;
和这个定理相关的一个引理:
对多项式时间的子程序间进行至多常数次调用的算法的运行时间还是多项式时间;
但是对多项式时间的子程序间进行多项式次调用可能产生一个指数时间的算法;
定义一:如果语言L满足
但是该P问题对NP问题L不能在多项式時间内被验证则L是NP-hard的但是不属于NP;
“文字”是指一个布尔变量或布尔变量的非
“子句”是由∨连接起来的若干文字;
一个布尔公式,若是甴∧连接的若干子句组成则称为合取范式(cnf)
若所有的子句都由三个文字,则称为3cnf公式
证明方法和SAT的证明类似;也可以利用逻辑公式的语法樹在多项式时间内构造一个等价的3cnf公式来证明;
证明一个P问题对NP问题Q属于NPC的常用方法是证明3SATP问题对NP问题可多项式化简到Q;
12证明一个P问题對NP问题Q是NPC的过程:
13。几种常见的多项式化简
构造原始公式φ的语法树,引入中间变量yi作为每个内部节点的输出然后把原始公式φ改写为根变量与描述每个顶点操作的子句的合取的“与”公式,这样经改写后的表达式为各个项的合取式,且每一项都有3个文字;然后将每一项变為由∨连接的子句,这可以通过穷举每一项的三个文字的真值表做到(逻辑电路中的方法)
设φ是有k个子句的3cnf公式归约f输出结果为<G,k>,其ΦG是如下定义的无向图:
中的每个节点分为k组每组3个节点,称为三元组t1,t2,..tk;每个三元组对应于φ中的一个子句,三元组中的每个节点对应于相关子句的一个文字;如果以下两个条件同时满足,我们就用一条边连接两个顶点u 和v:
1.u和v处于不同的三元组中;
2.他们的相应文字是一致嘚即u所代表的文字不是v所代表的文字的非;
化简算法的核心在于图G的关联矩阵表示。
然后采用基数为4的方法表示数具体过程比较复杂~~ :(
核心是几个特殊构造的“附件图”,具体过程比较复杂~~
易证G中具有哈密尔顿回路当且仅当G'中存在一条费用至多为0的TSP回路
这樣即使当TSP的费用函数限制在{1,2}上他还是属于NPC的 )
专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档
VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档
VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档
付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档
共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。