我目前正试图从目标状态进行回归搜索,以找出将实现我的GOAP计划者的目标状态的动作列表。到目前为止,对我有什么下来伪代码是这样的:回归目标导向行动计划
closedList = list;
s = stack;
s.push(goal);
while(s.size() > 0)
{
state = s.pop;
if(!state exists in closedList)
{
closedList.add(state);
for(action = firstAction; action != lastAction; action = nextAction)
{
if(action.getEffect() == state)
{
if(!action.ConditionsFulfilled())
{
conditionList = action.getConditions;
for(i = 0; i < conditionList.size(); i++)
{
s.push(conditionList[i]);
}
}
}
}
}
}
我听说GOAP酷似只有该节点是国家和边缘是动作的A *算法。但是由于在一个A *中,没有任何节点必须满足的条件,它让我很困惑如何适应一个A *算法来处理前提条件。 我正在努力理解的是如何存储操作并比较操作的成本以找到最有效的路径。如果我们假设集体行动有一个函数getCost(),它返回行动的成本,那么在考虑先决条件的情况下,我该如何处理这个问题?
谢谢,我没有这么想。现在完成了。 – Sammi3
向后搜索更高效。 Jeff Orkin在以下网址简单地介绍了它:http://alumni.media.mit.edu/~jorkin/GOAP_draft_AIWisdom2_2003.pdf 我设法做了回归搜索。现在我正在寻找改变行动前提的正确方法。 – Sammi3