八数码的几种解决.docVIP

  • 6
  • 0
  • 约3.41万字
  • 约 17页
  • 2017-08-18 发布于安徽
  • 举报
八数码的几种解决帖子关于是八数码的,是前段时间写的,为了给别人一些搜索的样例。?现在,事差不多完了,代码还留着,觉着放着浪费,又想自己水平过于欠缺,再加上看在C吧的初学者还是占主要,就觉得发在此处共他们学习还是不错的,仅此而已。 如果有不知道八数码的问题的,?可以上网一搜,就什么都明白了。?在这里我只用了几种算法实现,其实还有其他方法,我并没有写(如果有人需要,可能我会重新完成)。 首先分析下八数码的一些算法吧。 1:?深度优先(DFS): ??????这个方法起始对八数码非常不好,问题在于搜索过于盲目,搜索深度如果没有限制,有些是根本没必要的(因为八数码的解,大部分集中在20~30步之间)。而且即使搜索到一个解,很可能不是最优解。??所以用DFS解决这个问题并不明智,不过为了显示其不好,我仍然实现,不过在程序中设置最大深度限制为100。 2:?宽度优先搜索(BFS) ?????宽度优先搜索,解决的还不错,经过对hash函数的优化,能使一个20~30步的解在200~300MS内解决(不过其还可以做进一步的优化)。 3:?迭代加深搜索 ?????迭代加深搜索,可以说是吸取了宽搜和深搜的优点,同时避免了深搜搜到第一个解的不最优性,和宽搜的使用较大的内存空间。? ?????在这里我也用迭代加深搜索,?仔细一看的人就发现,起使他只是在深搜上稍微做点“手脚”就完毕,但是其思

文档评论(0)

1亿VIP精品文档

相关文档