- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实例驱动教学在算法设计与分析课程中探讨
实例驱动教学在算法设计与分析课程中探讨
摘 要:实例驱动教学是一种具有实践性和启发性的新型教学方法。《算法设计与分析》是实践性较强的一门课程。教学内容的比较抽象与复杂,学生在这门课程的学习中会感到困难。本文针对该课程教学内容,对典型实例驱动教学在《算法设计与分析》课程中做了一些探索。通过典型的实例驱动教学,一个抽象的算法更具体化与形象化,使学生能快速理解算法的原理及各个算法之间的主要区别,同时激发他们学习的兴趣和热情,从而提高教学质量和教学效果。
关键词:算法设计与分析 实例驱动教学 背包问题 教学改革
中图分类号:G642 文献标识码:A 文章编号:1673-9795(2013)06(a)-0070-01
1 问题的提出
《算法设计与分析》[1]是实践性较强的一门课程。这门课程的主要目的,通过对计算机算法系统的学习与研究,掌握算法设计算法策略和技巧,培养学生对算法的计算复杂性正确分析的能力,对不同的实际问题设计出清晰高效的算法,为独立设计算法和对算法进行复杂性分析奠定坚实的理论基础。软件的效率和稳定性取决于软件中所采用的算法,学习《算法设计与分析》课程,可以开阔编程思路,有助于编写出高效程序。因此,提高《算法设计与分析》课程教学水平有着极其深远的意义和重要的作用。
《算法设计与分析》内容的比较抽象与复杂,从学生的普遍反映来看,这是一门比较难的课程。《算法设计与分析》课程的教学内容按算法分类组织。在教科书中[2],每一章对应一种算法,主要内容涵盖了动态规划、贪心法、回溯法和分支限界法经典的算法。本文针对该课程,对典型实例驱动教学在《算法设计与分析》教学中的应用做了一些探索。通过典型的实例教学,一个抽象的算法使其更具体化、形象化,学生能快速理解各种算法的原理及算法之间的区别,因此,在《算法设计与分析》教学中合理利用典型实例,激发学生学习兴趣和热情,从而提高教学效果。
2 0-1背包问题实例
0-1背包问题是经典组合优化问题[3],有着广泛的实际应用背景,0-1背包问题比较简单,把抽象的,复杂的算法应用到该问题便于同学理解和掌握。0-1背包问题描述为:给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大。
3 动态规划算法
动态规划是解决多阶段决策过程最优化的一种方法,该方法是由美国数学家贝尔曼等人提出的。用于解决生产管理、工程技术等方面的许多问题,并建立了运筹学的一个新的分支,即动态规划。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题。但是经分解得到的子问题往往不是互相独立的。不同子问题的数目常常只有多项式量级。在用分治法求解时,有些子问题被重复计算了许多次。如果能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,就可以避免大量重复计算,从而得到多项式时间算法。动态规划方法能够把复杂问题的算法从指数阶的计算量减少到多项式阶。
4 贪心算法
贪心算法通过一系列的选择来得到问题的最优解,它所做的每一个选择都是当前状态最好的选择,即贪心选择。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。用贪心算法不能求解0-1背包问题,但能解决背包问题,背包问题与0-1背包问题类似,所不同的是在选择物品i装入背包时,可以选择物品i的一部分,而不一定要全部装入背包,即xi∈[0,1]。
5 回溯算法
回溯法在问题的解空间树中,按深度优先策略,从根结点出发系统地搜索一个问题的所有解或任一解。算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解:如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向其祖先结点回溯;否则,进入该子树,继续按深度优先策略搜索。
如果采用回溯法解决0-1背包问题,如一个结点的左儿子结点是一个可行结点就搜索其左子树。而对于右子树,需要用贪心算法构造一个上界函数,上界函数是通过讲将0-1背包问题松弛为背包问题利用贪心算法求得的,这个函数表明这个结点的子树所能达到的可能的最优值,只在这个上界函数的值超过当前最优解时才进入搜索。随着搜索进程的推进,最优解不断得到加强,对搜索的限制就越来越严格。如果这个上界小于当前值Bestf,说明该子树不可能包含最优解,即可以被“剪枝”。
6 分支限界法
分支限界法类似于回溯法,也是一种在问题的解空间树上搜索问题解的算法。分支限界法则以广度优先或以最小耗费优先的方式搜索解空间树。采用分支限界法解决0-1背包问题,同样需要用到贪心算法构造的上界函数。所不同的是,这个上界函数的作用不
原创力文档


文档评论(0)