人工智能:Blocksworld启发式A *解决方案

时间:2017-09-24 20:30:57

标签: algorithm artificial-intelligence heuristics

我正在为Blocksworld问题开发一个启发式解决方案。

我尝试使用多个块作为我的h(n)。它似乎没什么效果。

有人可以为问题指出一个合适的启发式方法,并用一些例子来解释它是如何工作的。

Blocksworld Problem Example:

Initial(starting State):
Stack 0: D,B
Stack 1: A,E
Stack 2: C
Stack 3: F


Goal State:
Stack 0: A,B,C,D,E,F

1 个答案:

答案 0 :(得分:0)

Blocksworld问题包括一堆木块,它们被标记,一张桌子和一个理想的终点位置。允许移除顶部块并将其放置在另一个堆栈或桌面上(启动新堆栈),但不允许移动另一个块覆盖的块。目标是以最小的移动次数达到最终状态。

使用A *,我们需要一个启发式方法来确定移动是否接近或远离我们的目标。因此,对于每个块的位置得分为1,然后从底部到顶部在最终位置对桩进行评分,计算块到所需位置的距离(因此,如果块在顶部,则得分-1,如果它在第二个位置,得分为-2,然后对下一个块做同样的事情,所以如果两个块被反转,它会给你一些不准确的度量,但希望不会太糟糕)。

我不知道这将如何表现。它显然是一个开放的编程问题。