第5章回溯算法实验指导.docVIP

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

第5章 回溯算法 实验5.1 回溯算法的实现和时间复杂度测试 1. 实验目的 编程实现经典的回溯算法,理解回溯算法设计的基本思想、程序实现的相关技巧,加深对回溯算法设计与分析思想的理解。通过程序的执行时间测试结果,与理论上的时间复杂度结论进行对比、分析和验证。 2. 算法原理 回溯算法的基本思想 回溯法是一个既带有系统性又带有跳跃性的搜索算法。它在包含问题的所有解的解空间树中,按照深度优先策略从根结点出发搜索解空间树。算法搜索至解空间树的任一结点时,总是先判断该结点是否肯定不包含问题的解。如果肯定不包含,则跳过对以该结点为根的子树的系统搜索,逐层向其祖先结点回溯。否则进入该子树,继续按深度优先的策略进行搜索。回溯法的: Backtrack(n) k=1while (k0) do if Tk(x1, x2, ..., x(k-1))的值还未取遍 then xkTk(x1, x2, ..., x(k-1))中未取遍过的值if Bk(x1, x2, ..., xk) then //可行解// (x1, x2, ..., xk)被激活if k==n then 输出(x1x2, …, xn) else k=k+1; //深度扩展搜索 end if end if else k=k-1 // 试探完了所有的xk,回溯end while 测试算法 n皇后问题是使用回溯算法求解的代表问题,算法如下: NQueens(n) x1=0;k=1 //k是当前行;xk是当前列// while k0 do //对所有的行执行以下语句// xk=xk+1 //移到下一列// while xk≤n and not Place(k) do //不可放置// xk=xk+l if xk≤n then //找到一个位置// if k=n then //是否是一个完整的解// print(x) //是,则打印这个数组// else k=k+1 xk=0 end if else k=k(1 //回溯// end if end while 最坏情况下,算法具有指数计算时间O(nn);而实际中,由于剪枝策略的应用,使得实际计算时间远远低于最坏情况下的计算时间。 3. 实验内容 (1)编程实现以上n皇后问题的回溯算法,记录随着皇后数n增加算法的执行时间,分析并以图形方式展现增长率;测试、验证、对比算法的时间复杂度。 (2)回溯算法应用:编程实现批处理处业调度问题。 4. 实验步骤和要求 (1) 编程实现以上NQueens算法,并进行测试,保证程序正确无误。其中,分别在程序开始和结束处设置记录系统当前时间的变量、用于计算程序执行的时间(以毫秒(ms)作为时间的计数单位)。 (2) 测试随着n增加程序执行时间增加的趋势(n=4, 8, 15, 20, 25, 30, 35),并使用MS Excel图表绘制工具生成程序执行时间的曲线图。 (3) 与理论时间复杂度结论对比分析,完成实验报告。 (4)算法应用编程:利用回溯法编程实现批处理处业调度问题,要求有较好的数据输入输出设计、程序中关键位置给出文字注释,实验报告中就给出求解该问题的分析过程。

文档评论(0)

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

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

1亿VIP精品文档

相关文档