我目前正試圖從目標狀態進行迴歸搜索,以找出將實現我的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