我正在为块世界问题开发一个启发式解决方案。
我尝试使用不合适的块数作为我的. 好像有点无效。
有人可以为这个问题指出一个合适的启发式方法,并用几个例子解释它是如何工作的。
块世界问题示例:
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
我正在为块世界问题开发一个启发式解决方案。
我尝试使用不合适的块数作为我的. 好像有点无效。
有人可以为这个问题指出一个合适的启发式方法,并用几个例子解释它是如何工作的。
块世界问题示例:
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 外的块数。
假设你在 stack 0 外的每个块中惩罚 10 个单位,那么上面的起始状态会在惩罚分数上增加 40 个单位
2)堆栈中的块数 0 在与目标状态不同的位置。
假设您在堆栈 0 的错误位置对堆栈 0 中的每个块进行 50 个单位的惩罚,那么起始状态将惩罚分数加 50(块 D)。
继续, 你可以添加尽可能多的惩罚,只要你认为有助于解决问题。
然后对于每一步,您列出所有可能的块移动,对于每个移动,您计算该移动产生的总罚分并选择得分最低的移动(如果平局选择第一个移动)。您不断重复上述操作,直到达到最终状态(罚分 0)。