【问题标题】:A* Heuristic implementation [closed]A*启发式实现[关闭]
【发布时间】:2018-07-23 07:32:31
【问题描述】:

我正在创建一个程序来以最低的成本解决这个难题

滑动标题拼图由三个黑色标题、三个白色标题和图中所示配置中的一个空白区域组成。

WWW_BBB

拼图的目标是让所有的白色瓷砖都在右边 黑色瓷砖,而空间的位置无关紧要

The puzzle has two legal moves(i.e. actions) with associated costs:

• A title may move into an adjacent empty location. – This has a step cost of     
• A title can hop over one or two other tiles into the empty position.
– This has a step cost equal to the number of tiles jumped over.

我很难理解如何创建要在算法中实现的启发式算法。

我了解 Dijkstra 算法在这个问题中的实现,但不知道如何将其变成 A* 算法。

【问题讨论】:

    标签: algorithm search artificial-intelligence heuristics


    【解决方案1】:

    假设您想在拼图状态图上使用 A*,其边可以通过两个规则之一到达状态,那么一个很好的启发式方法是反转次数:https://en.wikipedia.org/wiki/Inversion_(discrete_mathematics)

    这是乱序的 W,B 对的数量(假设同色瓷砖的相对顺序没有改变)。当版本数为0时,W和B是有序的,并且每种移动固定的反转次数小于或等于其成本。因此,作为启发式的反转次数永远不会高估最佳序列的成本。

    【讨论】:

    • 好的,所以对于那个用途,我会检查那个实现,让我们说在这种情况下 wwb_wbb 总共会有 2 个反转?
    • 那里只有一个反转——最中心的 W 和 B 出现故障。每隔一个 W-B 对都按顺序排列
    • 对不起,我想我错过了,目标是 bbb_www,空间的位置无关紧要
    • 8 反转,然后。对于每个 B,在其前面添加 W 的数量。或者对于每个 W,在其后添加 B 的数量。无论哪种方式都给出相同的答案
    • 好的,这将是我必须使用的启发式方法之一,对于另一个我可以说曼哈顿距离(所以 b 距离正确位置的距离)wwb_wbb 会有一个动作bww_wbb 的成本为 2,然后 bbww_wb 的移动成本为 4,然后再次使 bbbww_w 的成本为 4。所有这些使总成本为 10。这是否可接受且一致?
    猜你喜欢
    • 1970-01-01
    • 2011-01-09
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    相关资源
    最近更新 更多