8-puzzle 可解性的证明 & 最优解性的证明

本文探讨了8-puzzle问题的可解性和最优解性。通过A*搜索算法,结合MinPQ的数据结构,证明了找到的解是步数最少的。此外,阐述了8-puzzle中无解图的特性,即通过交换除空白栏外的任意两格,可将无解图转化为可解图。关键在于逆序对数的奇偶性,奇数表示无解,偶数表示可解。文中还提供了一个简单的变换方法,帮助解决8-puzzle问题。
摘要由CSDN通过智能技术生成

问题来自Coursera上Princeton所开Algorithms Part I第四周的作业:http://coursera.cs.princeton.edu/algs4/assignments/8puzzle.html

这一次作业要求用Priority Queue实现一个经典的A*搜索算法,来找到一个8-puzzle问题的解(或者在有限时间内发现它的无解性)。

作业要求里对算法的描述很细致,基本照做就能做出来。

https://github.com/jasonlovescoding/Coursera-Princeton-Algorithm

1. Note that we do not count the blank square when computing the Hamming or Manhattan priorities.) Consequently, when the goal board is dequeued, we have discovered not only a sequence of moves from the initial board to the goal board, but one that makes the fewest number of moves. (Challenge for the mathematically inclined: prove this fact.)

证明,当目标节点从PQ中退出时,我们找到的不仅是一个解,而且是步数最少的一个解。

这个性质与MinPQ的数据结构互相联系,算法中每次退出的节点都是最小评分的,我们所用的评分是“曼哈顿距离+步数”。假设我们退出一个目标节点时,在MinPQ中还存在着一个所用步数更少的目标节点,由于目标节点的曼哈顿距离是0,这两个节点(现在退出的,和没找到的那个)的评分都是步数。我们退出的节点的评分是最小的,那么不可能有评分更小的目标节点在MinPQ中,也就是说,我们这次退出的目标节点的步数一定是最小的。(类似也可以证明使用hamming距离+步数作为评分,得到的也是最小步数解)


2. Detecting unsolvable puzzles. Not all initial boards can lead to the goal board by a sequence of legal moves, including the two below:

 
 
 
1 2 3 1 2 3 4 4 5 6 5 6 7 8 8 7 9 10 11 12 13 15 14 unsolvable unsolvable
To detect such situations, use the fact that boards are divided into two equivalence classes with respect to reachab
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值