算法設计与分析实验报告(华北电力大学科技学院).docVIP

算法設计与分析实验报告(华北电力大学科技学院).doc

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

科 技 学 院 课程设计(综合实验)报告 (2011--2012年度第1学期) 名 称: 算法设计与分析 题 目:动态规划法和回溯法的应用 院 系: 信息系 班 级: 软件09K2 学 号: 091909020227 学生姓名: 闫雪峰 指导教师: 刘 军 设计周数: 1 成 绩: 日期: 2011年11月4日 一、实验内容 1.要求能够利用动态规划法解决矩阵连乘问题或0-1背包问题; 2.要求能够利用回溯法解决N皇后问题。 二、实验流程 1.0-1背包问题 1.1动态规划法解决问题的基本思想 可利用动态规划法解决的问题要具有2个性质:最优子结构性质和子问题重叠性质。 动态规划的基本思想是将待求的问题分成若干个子问题,这些子问题往往具有重叠的性质,因此,动态规划法采用自底而上的方向不断解决子问题,同时用一个表记录已解决问题的相关重叠数据,以便调用,从而节省计算时间。 动态规划法适于解最优问题,通常可按以下4个步骤设计: 找出最优解的性质,并刻画其结构特征; 递归地定义最优值; 以自底而上的方式计算出最优值并保存; 根据计算最优值时得到的信息,构造最优解。 1.2利用动态规划法解决0-1背包问题 1.3.1问题描述 给定n种物品和一个背包。物品i的重量是,其价值为,背包的容量是c。如何选择物品,使得背包中的物品价值最大? 在选择物品时,对于任何一种物品i,只有两种选择:选和不选。不可选部分,也不可一个物品选多次。 对该问题的一个形式化描述为:给定c0,0,0,1≤i≤n,要求找出一个0-1向量,使得最大,同时满足。 目标函数: 约束函数: 因此,0-1背包问题实际上是一个特殊的整数规划问题。 1.3.2分析最优解的结构 0-1背包问题具有最优子结构性质。设是所给0-1背包问题的一个最优解,则是的一个最优解。 因若不然,设是上述子问题的一个最优解,而不是它的最优解。那么可以推出:是原问题的最优解,与假设矛盾。 显然,0-1背包问题也具有子问题重叠的性质。 1.3.3建立递归关系 设m[i][j]是容量为j,可选物品为I,i+1,…,n时0-1背包问题的最优值。由0-1背包问题的最优子结构性质可以建立递归关系如下: 1.3.4计算最优值 1.3.5实例运行结果: 实例1: 实例2: 实例3: 实例4: 实例5: 1.4利用回溯法解决N皇后问题 1.4.1回溯法解决问题的基本思想 回溯法有“万能解题法”之称。用回溯法可以系统地搜索一个问题的所有解或任意解,因回溯法是一个既带有系统性又带有跳跃性的搜索算法。 回溯法在问题的解空间树中,按深度优先策略,从根节点出发搜索解空间树。算法搜索之空间的任一节点时,将此节点临时定义为“根节点”,然后利用剪枝函数判断该结点是否包含问题的解。如果肯定不包含,则回溯至祖先结点继续搜索;如果包含,则继续深度搜索,直至搜索完根节点的所有子树才结束。 回溯法适于解决组合数较大的问题。 1.4.2 N皇后问题描述 在格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行、同一列及同一斜线上的皇后。 1.4.3算法设计 用n元组x[i](i=1,2,…,n)表示n后问题的解。其中,x[i]表示皇后i放在棋盘的第x[i]列。 设2个皇后的位置分别为:(i,x[i])、(k,x[k]),则约束函数为: 用回溯法n皇后问题时,用完全n叉树表示解空间。剪枝函数剪去不满足行、列和斜线约束的子树。 1.4.4算法流程 1.4.5实际运行结果 实例1:5个皇后的所有方案 实例2:6个皇后的所有方案 实例3:7个皇后的方案截图 实例4:8个皇后的方案截图 实例5:9个皇后的方案截图 三、课程设计(综合实验)总结或结论 通过本次课程实验,我加深了对动态规划法和回溯法的理解,并且熟悉了利用动态规划法和回溯法解决问题的基本流程。换言之,我掌握了两种解决问题的有效方法。 理论指导实践,实践反过来使我们加深对理论的理解。因此,在今后的学习中,多多动手上机实践,必定会使我们受益匪浅。 最后,感谢刘军老师的谆谆教导。 四、参考文献 [1]王晓东,《计算机算法设计与分析》(第3版),北京:电子工业出版社,2007.5。 附录 开 始 处理第n件物品:for(j=1;j=c;j++) { if(j)m[n][j]=0; else m[n][j]=} 自底而上处理每一件物品:fo

文档评论(0)

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

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

1亿VIP精品文档

相关文档