2017-09-24 47 views
0

我正在为Blocksworld问题开发一种启发式解决方案。人工智能:Blocksworld启发式A *解决方案

我尝试使用不同的块数作为我的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 
+3

我不熟悉“blocksword”问题,找不到与之相关的任何好资源。你能定义什么是问题要求吗? – Cristy

+0

@Cristy:我已经添加了一个问题的例子。 – user3758749

+1

也许你可以问问你的教授或者助教,而不是那些对这个问题或者你的背景一无所知的随机陌生人。 – stackoverflowuser2010

回答

0

Blocksworld问题由堆叠的木块组成,这些木块标有标签,表格和所需的最终位置。允许移除顶部块并将其放置在另一个堆栈或桌子上(开始一个新的堆栈),但不允许移动另一个块所覆盖的块。目标是以最少的移动次数达到最终状态。

使用A *,我们需要一个启发式来判断移动是否离我们的目标更近或更远。因此,对每个块进行一个评分,然后从底部到顶部对最后位置进行评分,计算块到期望位置的距离(如果块位于顶部,那么得分为-1,如果它在第二个位置,得分-2,然后对下一个块进行同样的处理,所以如果两个块被倒置,它会给你一个不准确的度量,但希望不会太差)。

我不知道这将如何执行。这显然是作为一个开放式编程问题而设计的。