- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
7.4 算法复杂度分析 例如:8皇后问题,用Estimate算法估计5条随机路径的解空间状态数 1 × × × 2 3 × × × × × × 4 × × × × × × × 5 × × (8,5,4,3,2) =1649 1 2 3 4 5 6 (8,5,3,1,2,1)=769 7.4 算法复杂度分析 例如:8皇后问题,用Estimate算法估计5条随机路径的解空间状态数 1 2 3 4 5 6 7 1 2 3 4 5 1 2 3 4 5 6 7 8 (8,5,3,2,2,1,1,1)=2329 (8,6,4,2,1,1,1)=1785 (8,6,4,3,2)=1977 7.4 算法复杂度分析 例如:8皇后问题,用Estimate算法估计5条随机路径的解空间状态数 (8,5,4,3,2) =1649 (8,5,3,1,2,1)=769 (8,6,4,2,1,1,1)=1785 (8,6,4,3,2)=1977 (8,5,3,2,2,1,1,1)=2329 m的平均值为1702 8后问题的解空间树的结点总数为 1.55%左右 回溯法效率大大高于穷举法 课堂练习 用1、2、2、3、4、5这六个数字,写一个main函数,打印出所有不同的排列,如:512234、412325等,要求:4不能在第三位,3与5不能相连。 作业7 截止日期:11月3日 上传地址:0 文件名称:“学号-姓名-作业××” 设计16皇后的程序,输出其中的一个解,并输出其总共有多少个解,要有计时器,计算并显示运行时间。 要求给出迭代法和回溯法的程序代码 * HeJing(2011) School of Software School of Software, YunNan University 任课教师:何婧 Email: hejing@ 简介 问题:有许多实际问题尚无有效的算法,并且这些问题的算法,即使对于中等规模的实例,需要的时间量也要用年或世纪来度量。 解决方法: 方法一:适用于平均情况下可以得到良好的复杂度,但最坏情况下很难得到多项式解法的问题。例如:回溯法、分支界限法,搜索状态空间,在搜索过程中进行剪枝。 方法二:基于精确的概率概念。例如:随机算法。 方法三:得到近似解。在解的质量上妥协,以得到更快的算法效率(多项式时间)。 回溯法 任课教师:何婧 Email: hejing@ Chapter 7 Outline 算法思想 皇后问题 着色问题 算法复杂度分析 7.1 算法思想 回溯法:有组织的穷尽搜索。在搜索的过程中通过各种约束条件,进行剪枝,避免对所有状态的搜索,从而提高算法效率。 回溯法适用于求解那些组合数多,有大量潜在解的问题,有“通用解题法”之称。 3 4 5 6 7 8 9 10 11 2 7 9 3 2 4 2 1 2 7 11 8 6 5 3 4 6 5 4 2 5 1 12 S T 11 不适合用回溯法求解,可用效率更高的算法,如贪心法和动态规划法求解。 7.1 算法思想 回溯法求问题的所有解时,要回溯到根,且根结点的所有子树都被搜索遍才结束。 回溯法求解问题的一个解时,只要搜索到问题的一个解就可以结束。 运用回溯法在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树,算法搜索至解空间树的任一结点时,先判断该结点是否包含问题的解,如果肯定不包含,则跳过以该结点为根的子树的搜索,逐层向其祖先结点回溯;否则,进入该子树,继续按深度优先策略搜索。 7.1 算法思想 问题描述:求一个n元向量(x1,x2,……,xn),使之满足问题的某个判定函数B( x1,x2,……,xn )规定的条件。 显约束:凡是给定了每一个xi的取值范围的约束都是显约束。满足问题的所有显约束的多元向量定义为问题的解空间。 隐约束:描述的是各xi之间复杂的关系。基于问题的解空间,求解满足判定函数B的多元向量。 7.2 皇后问题 问题:n个皇后,置于n*n的方格内,如果任何两个皇后处于同一行,同一列,或处于同一斜线上(斜率为±1),都会遭到对方攻击,求一种互不遭到攻击的状态。 1 2 3 4 5 6 7 8 1 Q 2 Q 3 Q 4 Q 5 Q 6 Q 7 Q 8 Q 4 6 8 2 7 1 3 5 1 2 3 4 5 6 7 8 解: 有nn种可能解 考虑显约束,有n!种可能解 我们规定第i个皇后位于第i行,n个皇后所在的列构成一个n元向量(x1,x2,…,xi)xi∈{1,2,…,n}。 皇后甲(i,j);皇后乙(k,l) 分析判定函数: 不在同一行: i ≠k 不在同一列:
文档评论(0)