(完整word版)算法分析与设计知识点总结(word文档良心出品)_第1页
(完整word版)算法分析与设计知识点总结(word文档良心出品)_第2页
(完整word版)算法分析与设计知识点总结(word文档良心出品)_第3页
(完整word版)算法分析与设计知识点总结(word文档良心出品)_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章概述算法的概念:算法是指解决问题的一种方法或过程,是由若干条指令组成的有穷序列。 算法的特征:可终止性:算法必须在有限时间内终止; 正确性:算法必须正确描述问题的求解过程; 可行性:算法必须是可实施的;算法可以有0个或0个以上的输入;算法必须有1个或1个以上的输出。算法与程序的关系:区别:程序可以不一定满足可终止性。但算法必须在有限时间内结束;程序可以没有输出,而算法则必须有输出;算法是面向问题求解的过程描述,程序则是算法的实现。联系:程序是算法用某种程序设计语言的具体实现;程序可以不满足算法的有限性性质。算法描述方式:自然语言,流程图,伪代码,高级语言。 算法复杂性分析:算法复杂性的高

2、低体现运行该算法所需计算机资源(时间,空间)的多少。算法复杂性度量:期望反映算法本身性能,与环境无关。理论上不能用算法在机器上真正的运行开销作为标准(硬件性能、代码质量影响)。一般是针对问题选择基本运算和基本存储单位,用算法针对 基本运算与基本存储单位的开销作为标准。算法复杂性C依赖于问题规模N算法输入I和算法本身A。即C=F(N, I, A)。第二章递归与分治分治法的基本思想:求解问题算法的复杂性一般都与问题规模相关,问题规模越小越容易处理。分治法的基本思想是,将一个难以直接解决的大问题,分解为规模较小的相同子问题, 直至这些子问题容易直接求解,并且可以利用这些子问题的解求出原问题的解。各个

3、击破, 分而治之。这就为使用递归技术提供了方便。递归分治法产生的子问题一般是原问题的较小模式, 是分治法中最常用的技术。(bala ncing)子问题的思想,它几乎总是比使子问题规模大致相等的做法是出自一种平衡 子问题规模不等的做法要好。分治法所能解决的问题一般具有以下几个特征: 该问题的规模缩小到一定的程度就可以容易地解决; 该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质; 禾U用该问题分解出的子问题的解可以合并为该问题的解; 该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题。(这条特征涉及到分治法的效率,如果各子问题是不独立的,则分治法要做许多不

4、必要的工作,重复地解公共的子问题,此时虽然也可用分治法,但一般用动态规划较好。) 递归的概念:直接或间接地调用自身的算法称为递归算法,用函数自身给出定义的函数称为递归函 数。最终使子问反复应用分治手段,可以使子问题与原问题类型一致而其规模却不断缩小, 题缩小到很容易直接求出其解。这自然导致递归过程的产生。才能在边界条件与递归方程是递归函数的二个要素,递归函数只有具备了这两个要素,有限次计算后得出结果。第三章动态规划动态规划的基本思想:然后按动态规划算法与分治法类似,其思想把求解的问题分成许多阶段或多个子问题,顺序求解各子问题。最后一个阶段或子问题的解就是初始问题的解。分治法求解时,子问题数目太

5、多,从而导致解决原问题需要耗费指数级时间。 与分治法不同的是,动态规划中分解得到的子问题往往不是互相独立的。但不同子问题的数目常常只有多项式级。用分治法求解时,有些子问题被重复计算了许多次。动态规划的适用条件:动态规划法解所能解决的问题一般具有以下两个基本因素:一、最优子结构性质当问题的最优解包含着其子问题的最优解时,称该问题具有最优子结构性质。二、重叠子问题性质递归算法求解问题时, 每次产生的子问题并不总是新问题,有些子问题被反复计算多次。这种性质称为子问题的重叠性质。其它同分治法。动态规划问题的特征:求解的问题是组合优化问题;求解过程需要多步判断,从小到大依次求解;子问题目标函数最优解之间

6、存在依赖关系;动态规划算法设计的基本步骤和要素:找出最优解的性质,并刻画其结构特征。(考察是否适合采用动态规划法。)递归地定义最优值。(建立递归式或动态规划方程 )以自底向上的方式(或以自顶向下的备忘录方法)计算出最优值。根据计算最优值时得到的信息,构造最优解。基本步骤:(1)(2)(3)(4)要素:最优子结构重叠子问题备忘录(表格)应用实例分析:1、矩阵连乘问题:(1)分析最优解结构:计算Ai:j的最优次序所包含的计算矩阵子链Ai:k和Ak+1:j的次序也是最优的。矩阵连乘计算次序问题的最优解包含着其子问题的最优解,满足最优子结构性质。 问题的最优子结构性质是该问题可用动态规划算法求解的显著

7、特征。(2) 建立递归关系;(3) 计算最优值一递归求解(递归求解最优值复杂度较高的原因是:子问题重复度高); 计算最优值一迭代查表求解计算最优值一备忘录求解(4) 构造最优解第四章贪心法贪心算法的基本思想:当一个问题具有最优子结构性质时,可用动态规划方法求解,但有时会有更简单有效的 方法。顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。 贪心算法中,较大子问题的解

8、恰好包含了较小子问题的解作为子集,这与动态规划算法设计中的优化原则本质上是一致的。动态规划算法在某一步决定优化函数的最大或最小值时,需要考虑到它的所有子问题的优化函数值,然后从中选出最优的结果; 贪心算法的每步判断时, 不考虑子问题的计算结果, 而是根据当时情况采取“只顾眼前”的贪心策略决定取舍。贪心算法的设计要素:可以用贪心算法求解的问题一般具有2个重要的性质:1最优子结构性质:当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。问题的最优子结构性质是该问题可用动态规划算法或贪心算法求解的关键特征2、贪心选择性质:即贪心贪心选择性质是指所求问题的整体最优解可以通过一系列局部

9、最优的选择, 选择来达到。这是贪心算法与动态规划算法的主要区别。动态规划算法通常以自底向上的方式求解各子问题, 而贪心算法则通常以自顶向下 的方式进行,以迭代的方式作出相继的贪心选择, 每作一次贪心选择就将所求问题简化 为规模更小的子问题。对于一个具体问题,要确定它是否具有贪心选择性质,必须证明每一步所作的贪心选择最终导致问题的整体最优解。应用实例:1、活动安排问题:第五章回溯法回溯法的基本思想:回溯法的使用条件:回溯法适用于搜索问题和优化问题。 回溯法的设计要素:针对问题定义解空间:问题解向量解向量分量取值集合 构造解空间树两类典型的解空间树: 子集树:当所给的问题是从 相应的解空间树称为子

10、集树。子集树通常有排列树:当所给的问题是确定树称为排列树。排列树通常有n!个叶结点。判断问题是否满足多米诺性质。 搜索解空间树,确定剪枝函数。 确定存储搜索路径的数据结构。n个元素的集合S中找出满足某种性质的子集时, 2n个叶结点n个元素满足某种性质的排列时,相应的解空间第六章分支限界法分支限界法的基本思想:分支界限法类似与回溯法,也是在问题解空间中搜索问题解的一种算法。分支界限法与回溯法思想对比:求解目标:回溯法的求解目标是找出解空间树中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。搜索方式的不同:回溯法以深度优先的方式搜索解空间树,而分支限界法则以广度优先或以最小耗费优先的方式搜索解空间树。活结点一旦成为扩展导致不可行解或导致非最优解的在分支限界法中,每一个活结点只有一次机会成为扩展结点。结点,就一次性产生其所有儿子结点。在这些儿子结点中,儿子结点被舍弃,其余儿子结点被加入活结点表中。并重复上述结点扩展过程。这此后

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论