第2章NP完全理论.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如果Π是NP完全问题,Π’是NP难问题,那么,他们之间的差别在于Π必定是NP类问题,而Π’不一定在NP类问题中。 一般而言,若判定问题属于NP完全问题,则相应的最优化问题属于NP难问题。 NP完全问题和NP难问题的区别: 2.4.3 基本的NP完全问题 证明一个判定问题Π是NP完全问题需要经过两步: (1)证明问题Π属于NP类问题,也就是说,可以在多项式时间以确定性算法验证一个任意生成的串,以确定它是不是问题的一个解; (2)证明NP类问题中的每一个问题都能在多项式时间变换为问题Π。由于多项式问题变换具有传递性,所以,只需证明一个已知的NP完全问题能够在多项式时间变换为问题Π。 NP完全问题的证明思想 NP类问题 已知的NP 完全问题 要证明的 NP完全问题 一些基本的NP完全问题: 1.SAT问题(Boolean Satisfiability Problem) 2.最大团问题(Maximum Clique Problem) 3.图着色问题(Graph Coloring Problem) 4. 哈密顿回路问题(Hamiltonian Cycle Problem) 5.TSP问题(Traveling Salsman Problem) 6.顶点覆盖问题(Vertex Cover Problem) 7.最长路径问题(Longest Path Problem) 8.子集和问题(Sum of Subset Problem) 2.4.4 NP完全问题的计算机处理 1.采用先进的算法设计技术 2.充分利用限制条件 3.近似算法 4.概率算法 5.并行计算 6.智能算法 2.5 实验项目——SAT问题 1. 实验题目 SAT问题也称为合取范式的可满足问题,一个合取范式形如:A1∧A2∧…∧An,子句Ai(1≤i≤n)形如:a1∨a2∨…∨ak,其中,ai称为文字,为某一布尔变量或该布尔变量的非。SAT问题是指:是否存在一组对所有布尔变量的赋值(TRUE或FALSE),使得整个合取范式取值为真。 2. 实验目的 (1)掌握NP完全问题的特点; (2)理解这样一个观点:NP完全问题的算法具有指数时间,而指数时间算法的计算时间随着问题规模的增长而快速增长。 3. 实验要求 (1)设计算法求解SAT问题; (2)设定问题规模为3、5、10、20、50,设计实验程序考察算法的时间性能。 算法设计与分析 清华大学出版社 第2章 NP完全理论 2.1 下界 2.2 算法的极限 2.3 P类问题和NP类问题 2.4 NP完全问题 2.5 实验项目——SAT问题 2.1 下界 对于任何待求解的问题,如果能找到一个尽可能大的函数g(n)(n为问题规模),使得求解该问题的所有算法都可以在Ω(g(n))的时间内完成,则函数g(n)称为该问题计算复杂性的下界(Lower Bound)。 如果已经知道一个和下界的效率类型相同的算法,则称该下界是紧密(Close)的。 意义:评价算法;改进算法。 对问题的输入中必须要处理的元素进行计数,同时,对必须要输出的元素进行计数。这种计数方法产生的是一个平凡下界(Ordinary Lower Bound). 2.1.1 平凡下界 例 :生成 n 个元素的所有排列对象的算法属于Ω(n!) 平凡下界往往过小而失去意义。 例:TSP问题的平凡下界是Ω(n2) 2.1.2 判定树模型 判定树(Decision Trees)是这样一棵二叉树:它的每一个内部结点对应一个形如x≤y的比较,如果关系成立,则控制转移到该结点的左子树,否则,控制转移到该结点的右子树,它的每一个叶子结点表示问题的一个结果。 在用判定树模型建立问题的时间下界时,通常忽略求解问题的所有算术运算,只考虑分支执行时的转移次数。 a1a2 a1a2a3 是 是 是 否 否 否 a1a3 a2a3 a2a1a3 a2a3 a3a2a1 a2a3a1 a1a3 a3a1a2 a1a3a2 否 否 是 是 例:对三个数进行排序的判定树 2.1.3 最优算法 所谓最优算法(Optimality Algorithm)是指在某一种度量标准下,优于该问题的所有(可能的)算法。 如果能够证明求解问题Π的任何算法的运行时间下界是Ω(g(n)),那么,对以时间O(g(n))来求解问题Π的任何算法,都认为是最优算法。 2.2 算法的极限 2.2.1 易解问题与难解问题 2.2.2 实际问题难以求解的原因 2.2.3 不可解问题 2.2.1 易解问

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档