实验一 状态空间搜索——八数码问题
实验报告
【 注 】 源 码 将 以 附 件 的 形 式 上 传 , 其 中 EightPuzzle.java 为 vo 类 ,
EightPuzzleOperator.java 为 util 类,EightPuzzleAlgorithm.java 为算法
实现类。Main 函数在 EightPuzzleAlgorithm.java 类中。
一、实习目的和意义
理解和掌握状态空间搜索的策略。
二、实习内容
在一个 3*3 的九宫中有 1~8 个数及一个空格随机地摆放在其中的个子里,
现在要求实现这个问题;将该九宫格调整为某种有序的形式。调整的规则是,
每次只能将空格左上右下移动,试编程实现这一问题的求解。
三、实习要求
用你们学过的某种语言编写程序,利用不同的搜索策略进行状态空间搜索
(如宽度优先搜索、深度优先搜索、有界深度优先搜索、启发式搜索等)。
四、实验总结
【实验测试结果】
测试中的一组数据:
请输入初始位置(其中输入0代表空白块,例如:2 8 3 1 0 4 7 6 5):
2 8 3 1 0 4 7 6 5
请输入目标位置(其中输入0代表空白块,例如:2 8 3 1 4 0 7 6 5):
2 8 3 1 4 0 7 6 5
深度优先搜索:
深度优先搜索方法路径!
2 8 3 1 0 4 7 6 5
2 8 3 0 1 4 7 6 5
2 8 3 7 1 4 0 6 5
2 8 3 7 1 4 6 0 5
2 8 3 7 1 4 6 5 0
2 8 3 7 1 0 6 5 4
2 8 3 7 0 1 6 5 4
2 8 3 0 7 1 6 5 4
2 8 3 6 7 1 0 5 4
2 8 3 6 7 1 5 0 4
2 8 3 6 7 1 5 4 0
2 8 3 6 7 0 5 4 1
2 8 3 6 0 7 5 4 1
2 8 3 0 6 7 5 4 1
2 8 3 5 6 7 0 4 1
2 8 3 5 6 7 4 0 1
2 8 3 5 6 7 4 1 0
2 8 3 5 6 0 4 1 7
2 8 3 5 0 6 4 1 7
2 8 3 0 5 6 4 1 7
2 8 3 4 5 6 0 1 7
2 8 3 4 5 6 1 0 7
2 8 3 4 5 6 1 7 0
2 8 3 4 5 0 1 7 6
2 8 3 4 0 5 1 7 6
2 8 3 0 4 5 1 7 6
2 8 3 1 4 5 0 7 6
2 8 3 1 4 5 7 0 6
2 8 3 1 4 5 7 6 0
2 8 3 1 4 0 7 6 5