问题描述:
有一个3×3的棋盘,其中有0~8九个数字,0表示空格,其他的数字可以和0交换位置。求由初始状态到达目标状态步数最少的解。
解决八数码问题的常用方法为图搜索法,可用广度优先、深度优先和A*算法实现,其中A*算法又因估价函数的不同而有着不同的搜索时间。
程序说明:
在本程序中,用广度优先、实现了八数码问题, 初始状态默认为: 目标状态为:
2 8 3 1 2 3
1 0 4 7 8 4
7 6 5 0 6 5
程序实现: