首先,我看到了这个答案,是的,它解释了X启发式,但是例子板太简单了,我无法理解一般的启发式。
X-Y heuristic function for solving N-puzzle
那么,有人能用这个例子解释一下X的启发吗?
8 1 2
7 3 6
0 5 4发布于 2016-04-26 13:30:19
该算法由两个独立的部分组成:行和列。
( 1)行。将输入矩阵除以行--每一行中的元素转到单独的集合。
(1,2,8) - (3,6,7) - (0,4,5)
唯一可用的移动是用相邻集合中的一个元素交换0。当每个元素都在适当的集合中时,您就完成了。
交换0和7 -> (1,2,8) - (0,3,6) - (4,5,7)
交换0和8 -> (0,1,2) - (3,6,8) - (4,5,7)
交换0和3 -> (1,2,3) - (0,6,8) - (4,5,7)
交换0和4 -> (1,2,3) - (4,6,8) - (0,5,7)
交换0和8 -> (1,2,3) - (0,4,6) - (5,7,8)
交换0和5 -> (1,2,3) - (4,5,6) - (0,7,8)
所需步骤数= 6。
2)同样适用于列。你首先要做的是:
(0,7,8) - (1,3,5) - (2,4 ,6)
然后
(1,7,8) - (0,3,5) - (2,4,6)
(0,1,7) - (3,5,8) - (2,4,6)
(1,3,7) - (0,5,8) - (2,4,6)
(1,3,7) - (2,5,8) - (0,4,6)
(1,3,7) - (0,2,5) - (4,6,8)
(0,1,3) - (2,5,7) - (4,6,8)
(1,2,3) - (0,5,7) - (4,6,8)
(1,2,3) - (4,5,7) - (0,6,8)
(1,2,3) - (0,4,5) - (6,7,8)
(1,2,3) - (4,5,6) - (0,7,8)
所需步骤数= 10
3)步骤总数:6+ 10 = 16
https://stackoverflow.com/questions/36863580
复制相似问题