AI決策演算法 之 GOAP (一)

2021-08-09 20:02:54 字數 1015 閱讀 8721

什麼是goap?

引用原文的一句話 : 

目標導向型行動計畫(簡稱goap)是一種能夠輕鬆呈現給你的**選擇的ai系統,也是幫助你可以無需維持乙個龐大且複雜的有限狀態機而做出明智的決策的機器。

用處:

以前我們經常使用fsm有限狀態機來實現ai系統,但是當乙個遊戲的ai行為非常龐大的時候,那麼有限狀態機的**是很龐大的,且大部分**重用性非常低。 

在這時也許有人會用行為樹來開發ai系統,但是行為樹是依賴設計者的固定架構的,很不靈活,做的選擇不一定是最優選擇,而且每次都要經過大量的邏輯判斷,效能消耗嚴重。

這時候使用goap是合適的,它會根據目標在環境中決策出最優的路線,從而達到看起來相對智慧型的ai,且**的分層相對清晰,可讀性高,重用性高。

怎麼實現?

四個主要類:

agent: **, 主體,負責連線各個類,主要邏輯在這裡執行

action: 動作, 可以被執行的動作,比如:拿東西,丟東西

planer:決策者, 通過各個類來決策出最優的路線供agent使用

igoap:  資料提供者,提供給agent目標和反饋是否成功失敗等等

除了上述類之外還需要乙個簡單的fsm有限狀態機來輔助。

我們在後面一一實現它們。

GOAP 目標導向型行為計畫 AI 演算法

全稱 goal oriented action planning 參考 goap 是讓 ai 自己去找到解決問題的方法,我們給ai 提供可以執行的行為,對世界的描述,每個行為執行的先決條件,以及執行行為對世界產生的影響效果。ai 需要有目標 乙個或多個均可 通過世界狀態,根據自身行為,找到一組或多組...

AI演算法 1 決策樹

今天,我們介紹的機器學習演算法叫決策樹。跟之前一樣,介紹演算法之前先舉乙個案例,然後看一下如何用演算法去解決案例中的問題。我把案例簡述一下 某公司開發了一款遊戲,並且得到了一些使用者的資料。如下所示 圖上每個圖形表示乙個使用者,橫座標是年齡,縱座標是性別。紅色表示該使用者喜歡這款遊戲,藍色表示該使用...

AI之A 演算法

什麼是尋徑演算法 尋找當前點到目標點的一條路徑。比如從a點到b點,其中要繞過這兩點之間的障礙物 比如繞過山 河等不能移動的 我們就需要乙個適合的路徑規劃的尋路演算法。其中a 尋路已經是比較成熟的一種可以解決固定障礙的尋徑演算法。戰術性尋路,相對比上一種尋路相對複雜,比如說避開敵人攻擊區的路線,避開地...