首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >N-难题上的X启发式算法

N-难题上的X启发式算法
EN

Stack Overflow用户
提问于 2016-04-26 11:26:26
回答 1查看 797关注 0票数 0

首先,我看到了这个答案,是的,它解释了X启发式,但是例子板太简单了,我无法理解一般的启发式。

X-Y heuristic function for solving N-puzzle

那么,有人能用这个例子解释一下X的启发吗?

代码语言:javascript
复制
8 1 2
7 3 6
0 5 4
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36863580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档