八数码问题实现的几种算法

时间:2013-01-14 04:58:20
【文件属性】:

文件名称:八数码问题实现的几种算法

文件大小:1023KB

文件格式:RAR

更新时间:2013-01-14 04:58:20

八数码问题几种算法

问题描述: 有一个3×3的棋盘,其中有0~8九个数字,0表示空格,其他的数字可以和0交换位置。求由初始状态到达目标状态步数最少的解。 解决八数码问题的常用方法A*算法实现,其中A*算法又因估价函数的不同而有着不同的搜索时间。 程序说明: 在本程序中A*算法分别实现了八数码问题,其中A*算法的估价函数选择的是“不在位”数和当前层数之和,初始状态和目标状态均可由用户设定,目标状态默认为: 1 2 3 4 5 6 7 8 0 这里是A*算法的可执行程序,由用户输入一组数码,如: 8 3 5 1 2 7 4 6 0 然后程序会询问用户是否要更改目标,输入N即可。等一会儿(几秒到几十秒)后便可得到结果以及消耗的时间和空间。程序中的Block是指生成的8数码块,以此来衡量空间消耗的多少。


【文件预览】:
8数码问题
----宋建生S090503035.rar(256KB)
----20051004深度优先()
--------8_num()
----20051004广度优先()
--------8_num()
----宋建生S090503035()
--------说明.txt(686B)
--------8_num()
----可解问题.txt(70B)

网友评论

  • 结果好像不太对
  • 很好的程序,包含深度优先算法和广度优先算法的实现
  • 看上去不错,我运行一下。
  • 需要自己稍稍修改,另外有个源代码好像跑出来的结果有问题
  • 本程序我觉得还可以 但是仍然存在问题、、、
  • 不错,可惜就是,自己不怎么看得懂C代码,要不然直接把算法搬到易语言就好了。。
  • 有点问题啊,貌似运行不了
  • 可以运行 还不错
  • 有点小问题 要自己稍微修改修改
  • 谢谢你的帮助,但是在估价值最小时判断的不够全面,有时可能没有值
  • 有点小问题...运行不了,可能要自己稍微改一下。看上去不错1
  • 还不错,个人觉得初始状态和目标状态应该由用户设定,这样程序才可以多次利用。