八皇后问题的最佳解决方案 123.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文档。上传文档
查看更多
八皇后问题的最佳解决方案 (陕西师范大学计算机科学学院10级计科一班,西安,710062) 摘 要:回溯法实际是一个类似枚举的搜索尝试方法,它的主题思想是在搜索尝试中找问题的解,当不满足求解条件就”回溯”(返回),尝试别的路径。回溯算法是尝试搜索算法中最为基本的一种算法,其采用了一种“走不通就掉头”的思想,作为其控制结构。本文主要描述递归回溯与非递归回溯,并用这两个算法解决经典的“八皇后”问题,找出该问题的最佳解决方案。 关键词:回溯法;递归;非递归;深度优先搜索;约束条件;枚举 Eight queen problem the best solution Zhao Ya-wen ,Zhao-Shanshan ,Zhong mei ,Duan Xi-juan (School of Computer Science Shanxi Normal University ,Xi’an ,710062) Backtracking is actually a similar enumerated search try method , It is the theme in the search to find the solution of problems.,When not solving condition is back (return), Try the other path. Backtracking algorithm is trying to search algorithm is the most basic an algorithm, The use of a walk impassability will turn thought, As its control structure. This paper mainly describe recursive back and the recursive back, And the two algorithms to solve the classic eight queen, To find the best solution to the problem. Keywords: Backtracking; Recursive; The recursive; Depth first search; Constraint conditions; enumeration. 1引言 在用回溯算法解决问题中每向前走一步都有很多路需要选择,但当没有决策的信息或决策的信息不充分时,只好尝试某一路线向下走,到一定程度后得知此路不通时,再回溯到上一步尝试其他路线;当然再尝试成功时,则问题得解算法结束。 回溯法属于图的搜索算法中的深度优先搜索,通常深度优先搜索法不全保留结点,扩展完的结点从数据存储结构栈中弹出删去,这样,一般在数据栈中存储的结点数就是解空间树的深度,因此它占用空间最少。 回溯法在算法思想上是相同的,用深度优先搜索,但是算法分析课程上,我们要考虑算法的时间、空间复杂度,以及它的实用性,即能较好地解决问题。所以,回溯法也是一样的,在满足约束条件和不满足约束条件进行回溯是不一样的,这就是我们要概述的递归回溯算法和非递归回溯算法, 2问题概述 八皇后问题:要在8*8的国际象棋棋盘中放八个皇后,使任意两个皇后都不能互相吃掉。规则:皇后能吃掉同一行、同一列、同一对角线的任意棋子。 如图2-1为一种方案,求所有的解。 图 2-1 3求解八皇后问题的常用算法 贪心算法是一种改进了的分级处理算法,在这里,八皇后的贪心选择的依据就是把下一个皇后放在数字最小的格子里(i=1,2,3,4……,8),这样问题的解空间, xi就是一个皇后所在列的序号,为n元一维向量(x1,x2,x3,x4,x5,x6,x7,x8),搜索空间是1≤xi≤8(i=1,2,3,4……,8),共88(每个xi均有8种位置)个状态。约束条件是八个皇后: (1,x1),(2,x2) ,(3,x3),(4,x4) ,(5,x5), (6,x6) , (7,x7), (8,x8)使得(i,xi)不在同一行、同一列和同一对角线上。如图3-1为一种解。 图3-1 八皇后问题的一种解 虽然问题共有88个状态,但算法不会真正地搜索这么多的状态,因为前面已经说明,回溯法采用的是“走不通就掉头”的策略,而形如(1

文档评论(0)

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

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

1亿VIP精品文档

相关文档