问题描述: 有一个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数码块,以此来衡量空间消耗的多少。
2021-05-14 17:27:14 1023KB 八数码问题几种算法
1