sliding-tile-puzzle相关内容

8-puzzle 在 prolog 中有一个使用曼哈顿距离的解决方案

8-puzzle 将由一个 3x3 的列表位置列表表示,其中空框将由值 9 表示,如下所示:[[9,1,3],[5,2,6],[4,7,8]] 可能解:8 拼图的初始位置只有一半是可解的.有一个公式可以让您从一开始就知道您是否可以解决难题.要确定一个 8 难题是否可解决,对于每个包含值 N 的方格,计算当前单元格之后有多少小于 N 的数字.以初始状态为例: 1 没有小于等于 0 的数字 ..
发布时间:2022-01-12 10:11:19 其他开发

解决 8 个难题的有效方法是什么?

8 拼图是一个有 9 个位置的方板,由 8 个编号的瓷砖和一个缺口填充.在任何时候,与间隙相邻的瓷砖都可以移动到间隙中,从而创建新的间隙位置.换句话说,间隙可以与相邻的(水平和垂直)瓷砖交换.游戏的目标是从任意配置的瓷砖开始,移动它们以使编号的瓷砖按升序排列,要么围绕棋盘周边运行,要么从左到右排列,左上角为 1-手的位置. 我想知道什么方法可以有效地解决这个问题? 解决方案 我将尝试 ..
发布时间:2021-11-30 13:04:47 其他开发

A* 中的曼哈顿距离

我正在使用 A* 搜索算法并使用曼哈顿距离作为启发式实现 NxN 拼图求解器,但我遇到了一个奇怪的 bug (?). 考虑这些谜题(0 个元素是空格): (初始) 1 0 2 7 5 4 8 6 3 (目标) 1 2 3 4 5 6 7 8 0 从初始状态达到解的最小移动次数是 11.但是,我的求解器在 17 次移动中达到目标. 这就是问题所在——我的 ..

如何在Python中实现15难题的IDA *算法?

我正在尝试使用IDA *算法和Manhattan启发式算法来解决15-Puzzle问题.我已经在此Wikipedia页面(链接)中的伪代码中实现了该算法. > 到目前为止,这是我的代码: def IDA(初始状态,目标状态):initial_node =节点(initial_state)目标节点=节点(目标状态)阈值= manhattan_heuristic(initial_state,g ..

使用A *算法求解8拼图板(Board数据类型工作正常)

嗨,我正在使用Java创建一个Solver程序,该程序使用HeapMinPQ和节点的帮助来解决基于"8拼图"格式的任何棋盘.我已经通过"Board"数据类型创建了该数据类型,该数据类型使用二维数组来解释图块("0"是空白).在我的SearchNodes中,我有一个优先级整数,该整数说明了“曼哈顿"值(而且我确信该方法可以正常工作).问题是我一直在努力取得进展,尽管我的程序可以编译,但是它只是在没有 ..
发布时间:2020-08-22 20:33:51 Java开发

8-puzzle在使用曼哈顿距离的序言中提供了解决方案

8个拼图将由列表位置的3x3列表表示,其中空框将由值9表示,如下所示:[[9,1,3],[5,2,6], [4,7,8]] 可能的解决方案:8拼图的初始位置中只有一半是可解决的.有一个公式可以让您从一开始就知道是否可以解决难题:要确定8难题是否可解决,对于每个包含值N的正方形,将计算出当前单元格之后比N少多少个数字.例如,以初始状态: 1个数字不少于= 0 空(9)-随后必须3,5, ..
发布时间:2020-07-24 04:53:11 其他开发

8谜题有几种可能的状态?

经典的8拼图属于滑块家族。我的书(《人工智能,斯图尔特·罗素(Stuart Russell)和彼得·诺维格(Peter Norwig)的现代方法》)说,8谜题具有 9!/ 2 可能的状态。但是为什么 / 2 ? 解决方案 9!是总数拼图的可能配置,而 9!/ 2 是可解决配置的总数。例如,此配置没有解决方案: 1 2 3 4 5 6 8 7 在此Wikip ..