算法期末复习整理.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法期末复习整理

算法期末复习整理 一、算法问题整理 1、课本上提到的算法有: ①递归与分治策略:a.二分搜索、b.大整数的乘法、c.Strassen矩阵乘法、d.棋盘覆盖、e.合并排序、f.快速排序、g.线性时间选择、h.最接近点对问题、i.循环赛日程表 ②动态规划:a.矩阵连乘问题、b.最长公共子序列、c.凸多边形最优三角剖分、d.多边形游戏、e.图像压缩、f.电路布线、g.流水作业调度、h.0-1背包问题、i.最优二叉搜索树 ③贪心算法:a.活动安排问题、b.最优装载、c.单源最短路径、d.最小生成树、e.多机调度问题 ④回溯法:a.装载问题、b.批处理作业调度、c.符号三角形问题、d.n后问题、e.0-1背包问题、f.最大团问题、g.图的m着色问题、h.旅行售货员问题、i.圆排列问题、j.电路板排列问题、k.连续邮资问题 ⑤分支限界法:a.单源最短路径问题、b.装载问题、c.布线问题、d.0-1背包问题、e.最大团问题、f.旅行售货员问题、g.电路板排列问题、h.批处理作业调度 ⑥概论算法:a.数值概率算法、b.舍伍德算法、c.拉斯维加斯算法、d.蒙特卡罗算法 ⑦暴力算法:基本上大部分问题都可以用暴力算法 ⑧近似算法:a.顶点覆盖问题的近似算法、b.旅行销售员问题近似算法、c.集合覆盖问题的近似算法、d.子集和问题的近似算法 问题的计算复杂性可以用过解决该问题所需计算量的多少来度量。人们通常将可在多项式时间内解决的问题看做是“易”解问题,而将需要指数函数时间解决的问题看做是“难”问题。这里所说的多项式时间和指数函数时间是针对问题的规模而已而言,即解决问题所需的时间是问题规模的多项式还是指数函数。 所有可以在多项式时间内求解的问题构成P类问题(P是多项式的英文单词polynomial的首字母)。NP问题不是非P类问题,它是指可以在多项式的时间里验证一个解的问题(或者说猜出一个解的问题)。NP类问题的计算复杂性状况至今是未知的,在NP类问题中有一类问题构成了NP类问题的核心,它们也许是NP类中最难的问题,这就是NP完全问题类。NP完全问题的困难性体现在任何一个NP类问题可以在多项式时间内变换为一个NP完全问题。换言之,NPC问题必须满足以下两个条件:①NPC问题是一个NP问题;②所有NP问题都可以约化(归约)到NPC问题。而NP-Hard问题是不一定满足上述的①问题但满足②问题,可见NP-Hard问题要比NPC问题的范围广。 重要的3个计算模型:①随机存取机RAM、②随机存取存储程序机RASP、③图灵机。 5、多项式时间:在计算复杂度理论中,指的是一个问题的计算时间m(n)不大于问题大小n的多项式倍数。通俗点来说,多项式时间就是指时间复杂度是个多项式,或者说,就是这个程序运行的时间随着数据规模n变化的函数为f(n),那么,f(n)是个多项式函数,那么就可以说是控制在多项式之内。举个例子,现在从n阶图中找两点的最短路径,复杂度为n^2级别(即O(n^2),O是大写欧),而n^2对于n是多项式(单项式当然也算),这就称为是多项式复杂度,或者多项式时间,其中问题(算法)的规模是n。如果某一个算法的规模是n,但是复杂度比如是2^n,写不成n的多项式,那就不是多项式时间。 算法是指解决问题的方法或过程,严格来讲,算法是满足以下五大性质特征的指令序列:①有穷性;②确定性;③可行性;④有零个或多个输入;⑤至少有一个输出。而程序是算法用某种程序设计语言的具体实现,即有程序=语言+数据结构+算法。 可操作性最好且最有实际价值的是最坏情况下的时间复杂度。 分治法的设计思想是,将一个难以直接解决的大问题分割成一些规模较小的相同问题,以便各个击破,分而治之。 动态规划算法与分治法类似,基本思想也是将待求解问题分解成若干个子问题,先求子问题,然后从这些子问题的解得到原问题的解。动态规划用一个表记录所有已经解决的子问题的答案,不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中。与分治法不同的是,适合于用动态规划法求解的问题,经分解得到的子问题往往不是互相独立的,适用于最优化问题。设计动态规划的步骤如下: 找出最优解的性质,并刻画其结构特征; 递归地定义最优值; 以自底向上的方式计算出最优值; 根据计算最优值时得到的信息,构造最优解。 动态规划算法的基本要素:①最优子结构;②重叠子问题。 备忘录方法是动态规划算法的变形。与动态规划算法不同的是,备忘录方法的递归方式是自顶向下的,而动态规划算法则是自底向上的递归。因此,备忘录法的控制结构与直接递归方法的控制结构相同,区别在于备忘录方法为每个解过的子问题建立了备忘录以备需要时查看,避免了相同子问题重复求解。 12、典型的NPC问题:

文档评论(0)

docindpp + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档