- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 地热资源勘查技术规程.pdf VIP
- 西爱西尔T6CE冷媒冲注机说明书.pdf VIP
- 《大数据技术与应用》课件.ppt VIP
- 水泥系统中控操作操作规程.docx VIP
- 河南省公路路产赔偿标准-(1).doc VIP
- 涉密信息系统集成甲级资质单位名录2024版.pptx VIP
- 1BRIGHTSOURCEENERGY常见问题公司概述公司于何时-亮源公司.PDF VIP
- 2025广西公需科目考试答案(3套,涵盖95_试题)一区两地一园一通道建设;人工智能时代的机遇与挑战.pdf VIP
- 最新骨科临床路径(25个).pdf VIP
- 2014-2015学年度五年级下册英语竞赛卷(单词句子).doc VIP
文档评论(0)