状态图中的启发式有序搜索:从滑块拼图到 A* 算法
1. 启发式有序搜索概述
在解决复杂问题时,状态图搜索是一种常用的方法。形式上,子问题图的搜索可以转化为状态图的搜索。在实际应用中,已经开发出了特定的程序。这里主要探讨状态图中的启发式有序搜索。然而,关于子问题图的启发式有序搜索以及启发式图搜索与动态规划和分支限界法的比较,有许多相关的研究可供参考。但在图论、离散算法或运筹学的手册中,启发式有序搜索的结果和资源常常被忽视,尽管它与这些学科有明显的关联。
大多数面向人工智能教学的教科书在介绍状态图搜索时,都会借鉴尼尔森(Nilsson)在 1971 年的开创性工作的一部分。但这些教材中对算法性质的描述往往过于严格,证明也不完整。大学和工程学院开设的人工智能课程经常会引入启发式有序搜索,这主要是因为在解决一个古老而棘手的问题——十五滑块拼图问题上取得了进展。
2. 滑块拼图:启发式有序搜索的肥沃挑战
滑块拼图是非常受欢迎的游戏。最常见的形式是,在一个能容纳 16 个并列方块的矩形框架中,放置 15 个相同大小的矩形方块,有一个方块位置为空。每个方块都有一个唯一的标记(通常是 1 到 15 的数字)。游戏规则是,只能将与空方块相邻的 2、3 或 4 个方块之一移动到空方块位置。如果框架是 n 行 n 列的,这个游戏就被称为 (n² - 1) 拼图。
游戏的目标是通过最少的移动次数,将初始状态(如状态 s1 或 s2)转换为固定的目标状态(如状态 t)。通常,我们更关注找到最少移动次数的解决方案,而简单的解决方案相对容易找到,而找到“好”的解决方案则是另一个问题。
例如,初始状态 s1 可以通过 9 次移动转换为目标状态 t
超级会员免费看
订阅专栏 解锁全文
8447

被折叠的 条评论
为什么被折叠?



