算法与优化复习题补充

上传人:宝路 文档编号:23378777 上传时间:2017-12-01 格式:DOC 页数:6 大小:176KB
返回 下载 相关 举报
算法与优化复习题补充_第1页
第1页 / 共6页
算法与优化复习题补充_第2页
第2页 / 共6页
算法与优化复习题补充_第3页
第3页 / 共6页
算法与优化复习题补充_第4页
第4页 / 共6页
算法与优化复习题补充_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《算法与优化复习题补充》由会员分享,可在线阅读,更多相关《算法与优化复习题补充(6页珍藏版)》请在金锄头文库上搜索。

1、1. 设 X 和 Y 都是 n 位二进制整数,若按普通乘法规则计算,要进行 O(n2)步运算才能得到 XY 的乘积,若用分治法来计算,可有效地降低其复杂性。简述采用分治法求解 XY 乘积的基本过程。解:即为大整数的乘法(参照书上 2.4 节 P29):2. 扩展 Hanoi 塔问题:设 a,b,c,d 是 4 个塔座。开始时,在塔座 a 上有一叠共 n个圆盘,这些圆盘自下而上,由大到小地叠在一起。各圆盘从小到大编号为1,2,n,现要求采用递归算法将塔座 a 上的这一叠圆盘移到塔座 d 上,并仍按同样顺序叠置。在移动圆盘时应遵守以下移动规则:规则 1:每次只能移动 1 个圆盘;规则 2:任何时刻

2、都不允许将较大的圆盘压在较小的圆盘之上;规则 3:在满足移动规则 1 和 2 的前提下,可将圆盘移至 a,b,c,d 中任一塔座上。设计算法实现一种移动方案,并分析算法的时间复杂度。解:书 2.1 节例 2.6 (P23)3. 比较分治法、动态规划法和贪心算法的使用条件。解:分治法和递归是紧密相联系的,分治法就是把大问题分解成小问题,然后大问题的解可以通过小问题的解得出来。小问题是相互独立的,可以递归解决。分治法所能解决的问题一般具有以下几个特征:(1)该问题的规模缩小到一定的程度就可以容易地解决;(2)该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质;(3)利用该问题分解

3、出的子问题的解可以合并为该问题的解;(4)该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子子问题。上述的第一条特征是绝大多数问题都可以满足的,因为问题的计算复杂性一般是随着问题规模的增加而增加;第二条特征是应用分治法的前提,它也是大多数问题可以满足的,此特征反映了递归思想的应用;第三条特征是关键,能否利用分治法完全取决于问题是否具有第三条特征,如果具备了第一条和第二条特征,而不具备第三条特征,则可以考虑贪心法或动态规划法。第四条特征涉及到分治法的效率,如果各子问题是不独立的,则分治法要做许多不必要的工作,重复地解公共的子问题,此时虽然可用分治法,但一般用动态规划法较好。如下问

4、题使用分治法解决:计算逆序,找出平面上最近的点,等等经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加。为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法。例如典型的 Fibonacci 数列的求解。两种动态规划算法:备忘录和迭代贪心法是自然的方法,也是最直观的方法,贪心法的当前选择依赖于已经作出的所有选择,但不依赖于有待于做出的选择和子问题。因此贪心法自顶向下,一步一步地作出贪心选择

5、,但是该方法不能保证最后得出的解是最优的,需要反复选择策略,加以比较,有时候一些选择策略可以很巧妙的解决问题。贪心法主要有两种思想,即贪心算法领先和交换论证,用来证明所得的解是最优的,交换论证的思想为首先假设一个最优解和通过贪心法所得到的解,然后逐步修改最优解,但保持每步的最优性,最后使得最优解跟通过贪心法所得的解相同。如下问题可用贪心法解决:区间调度,最小延迟调度,最短路径,最小生成树,聚类等等。4. 比较回溯法与分支限界法的区别。解:分支限界法类似于回溯法,也是一种在问题的解空间树 T 上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出 T 中满足

6、约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。分支限界法类似于回溯法,也是一种在问题的解空间树 T 上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出 T 中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。 由于求解目标不同,导致分支限界法与回溯法在解空间树 T 上的搜索方式也不相同。回溯法以深度优先的方式搜索解空间树 T,而分支

7、限界法则以广度优先或以最小耗费优先的方式搜索解空间树 T。分支限界法的搜索策略是:在扩展结点处,先生成其所有的儿子结点(分支) ,然后再从当前的活结点表中选择下一个扩展对点。为了有效地选择下一扩展结点,以加速搜索的进程,在每一活结点处,计算一个函数值(限界) ,并根据这些已计算出的函数值,从当前活结点表中选择一个最有利的结点作为扩展结点,使搜索朝着解空间树上有最优解的分支推进,以便尽快地找出一个最优解。 分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。问题的解空间树是表示问题解空间的一棵有序树,常见的有子集树和排列树。在搜索问题的解空间树时,分支限界法与回溯法对当前

8、扩展结点所使用的扩展方式不同。在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,那些导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被子加入活结点表中。此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程。这个过程一直持续到找到所求的解或活结点表为空时为止。有一些问题其实无论用回溯法还是分支限界法都可以得到很好的解决,但是另外一些则不然。也许我们需要具体一些的分析到底何时使用分支限界而何时使用回溯呢?下表列出了回溯法和分支限界法的一些区别:方法对解空间树的搜索方式存储结点的常用数结点存储特性 常用

9、应用据结构回溯法深度优先搜索 堆栈活结点的所有可行子结点被遍历后才被从栈中弹出找出满足约束条件的所有解分支限界法广度优先或最小消耗优先搜索队列、优先队列每个结点只有一次成为活结点的机会找出满足约束条件的一个解或特定意义下的最优解5. 概率算法分为哪几类?它们求得问题的解分别具有什么样的特点?解:1)数值概率算法:常用于数值问题的求解,得到的往往是近似解(1)解的精度随计算时间的增加而提高(2)在许多情况下,计算出问题的精确解是不可能或没必要2)蒙特卡罗算法:用于求解问题的准确解,可以求得问题的一个解,但该解未必正确(1)求得正确解的概率依赖于算法的计算时间,多次执行蒙特卡罗算法,可以提高获得正

10、确解的概率(2)无法有效判定所得到的解是否肯定正确。3)拉斯维加斯算法:不会得到不正确的解(1)有时找不到问题的解(2)找到正确解的概率随算法计算时间的增加而提高(3)用同一拉斯维加斯算法反复对问题实例求解足够多次,可使求解失败的概率任意小。4)舍伍德算法:总能求解得到问题的一个解,而且所求得得解总是正确的。将确定性算法引入随机性改造成舍伍德算法,可消除或减少问题对于好坏实例间的差别。6. 给定非线性规划问题 ,验证下列两点2112min(). 0xst是否为 K-T 点?(1)(2)01, x解:参照群共享,最新刘伟整理的第 3 题。7. 简述无约束最优化问题的最优性条件。解:参照群共享,最

11、新刘伟整理的第 6 题。8. 给定非线性规划问题 ,验证下列两点22121211234min(,)()(). 50,4(),fxxstgx是否为 K-T 点?(1)(2)0, x解:参照群共享,最新刘伟整理的第 2 题。9. 矩阵连乘问题可以采用动态规划法求得最少的数乘次数和最优的加括号方式,试证明该问题具有最优子结构性质。解;参照书 3.1 节,3.1 矩阵连乘问题, 1.分析最优解的结构,在吹点牛 B P63 页。10. 设 和 都是线性函数,证明1:,2,nigRim miRhni ,1,:下面的约束问题是凸规划问题。 ,1,0)(,.)(in12mEjxhIigtsfjink 解:参照

12、群共享,最新刘伟整理的第 1 题。11. 背包问题可以采用贪心算法求得最优解,证明该问题满足贪心选择性质。解:参照群共享,旧的刘伟整理的第 3 题(后半段证明不要了)12. 以下为最小顶点覆盖问题的近似算法,其中 cset 用来存储顶点覆盖中的各顶点,初始为空,不断从边集 e1 中选取一边(u,v),将边的端点加入 cset 中,并将 e1 中已被 u 和 v 覆盖的边删去,直至 cset 已覆盖所有边。证明该算法的性能比为 2。VertexSet approxVertexCover (Graph g)cset=;e1=g.e;while (e1!=)从 e1 中任取一条边 (u,v); cs

13、et=csetu,v ;从 e1 中删去与 u 和 v 相关联的所有边;return cset; 解:参照 PPT 第九章13. 二维 0-1 背包问题:给定 n 种物品和一背包。物品 i 的重量是 wi,体积是bi,其价值为 vi,背包的容量为 c,容积为 d。问应如何选择装入背包中的物品,使得装入背包中物品的总价值最大?在选择装入背包的物品时,对每种物品 i 只有两种选择,即装入背包或不装入背包。不能将物品 i 装入背包多次,也不能只装入部分的物品 i。试设计一个解决此问题的动态规划算法,并分析算法的计算复杂性。解:参照群共享,旧的刘伟整理的第 2 题14. 旅行售货员问题:设 G 是有

14、n 个顶点的有向图,设计一带有上界函数的算法,提高原算法的效率.解:参照群共享,旧的刘伟整理的第 14 题15. 皇后控制问题:在一个 n*n 个方格组成的棋盘上的任一方格中放置一个皇后,该皇后可以控制所在的行,列以及对角线上的所有方格.对于给定的自然数 n,在n*n 个方格组成的棋盘上最少要放置多少个皇后才能控制棋盘上的所有方格,且放置的皇后互不攻击.解:参照群共享,旧的刘伟整理的第 15 题16. 给定两个大整数 u 和 v,它们分别有 m 和 n 位数字,且 m=n.设计计算时间低于 O(mn) 的算法.解:参照群共享,旧的刘伟整理的第 1 题17. 用 DFP 算法求解无约束最优化问题

15、:221min()x其中 取 。12TXx, , 60,0TX,解:参照群共享,最新的刘伟整理的第 5 题18. 用外点罚函数法求解约束最优化问题,取 :61021min().0fXxsthg 解:参照群共享,最新的刘伟整理的第 7 题19. 解顶点覆盖问题的一个启发式算法如下:每次选择具有最高度数的顶点,然后将与其相关联的所有边删去。举例说明该算法的性能比将大于 2。解:参照群共享,旧版的刘伟整理的第 6 题20. 给定两个大整数 u 和 v,它们分别有 m 和 n 位数字 ,且 m=n.设计计算时间低于 O(mn) 的算法 .解:同 16 题一样的21. 有一个背包,背包容量是 M=120。共有 7 个物品如下表,物品可以是任意大小。要求:尽可能让装入背包中的物品总价值最大,但不能超过总容量。请设计该问题的贪心算法,写出算法思想,求得问题的最优解,并证明该问题满足贪心选择性质。22. 用共轭梯度法求解无约束最优化问题:物品 A B C D E F G重量 30 20 60 25 40 10 20价值 10 20 30 50 10 40 30 21min()5fXx其中 选初始点 。12TXx, , 600T, ,解:参照群共享,最新的刘伟整理的第 4 题

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号