八数码游戏分析+源码——启发式搜索(二)

 大家通过阅读 八数码游戏分析——启发式搜索(一) 应该对解决八数码的启发式搜索算法有了一个大致的印象了,那么我就开始介绍基于 八数码游戏分析——启发式搜索(一)的一种改进的算法。

改进的启发式搜索策略:八数码的下一个格局中每个棋子移动到正确位置所需要的步数要少于当前格局中每个棋子移动到正确位置所需要的步数。

首先来解释一下什么是棋子移动到正确位置的步数。

      我们在 八数码游戏分析——启发式搜索(一) 中提到每个数码的位置与最终格局的对比,如果位置相同,则说明此数码在正确位置。

还是拿那个图来说明:

 

                                                 图2.1

假设图2.1右边的格局是最终状态,那么可以看出左边格局中正确位置的数码就是红色字体标识的数码,分别是3,4,5,7。

我们把初始数码中的每个未移动到正确位置的数码拿出来单独分析

我们拿数码2来分析,如下图:

                                                 图2.2

 

可以看出数码2移动到正确位置需要一步,我们再拿数码8来分析:

                                                                 图2.3

从图2.3可以看出,数码8移动到正确位置为两步

因此,一次可以得出数码1和数码6移动到正确位置都为一步,所以当前状态的每个棋子移动到正确位置的步数总和为:5步

那么当前状态的下一状态如下图所示:

                                                                                            图2.4

图2.4中,红色字体标识的是在正确位置的数码,八数码旁边的(n)表示当前数码格局中每个棋子移动到正确位置的步数总和为n步。

由此可以看出图2.4的左下方格局满足条件(一共要4步),所以左下方的格局为下一步格局。可能现在大家还没有看出此算法相对于前一个算法的优越性,

好,我们再向后继续推:

  • 6
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值