2011-07-14 100 views
1

我想實現一個複雜的分支邏輯Android業務應用程序,根據用戶的響應,將其用作具有許多問題和分支之間的營銷問答工具。 我很困惑是否將對話邏輯實現爲FSM或行爲樹。作者已經使用樹來實現狀態機。例如在Ian Millington等人的遊戲的人工智能中,作者建議將決策樹用於FSM。但是,我認爲FSM可能會關閉,例如在「發出警報」和「防守」之間轉換會使其成爲圖形而不是樹。我的第一個問題是樹和狀態機有什麼區別?第二個是對我的應用來說是一個很好的實現,管理高級分支複雜性?行爲樹與狀態機

Combining Decision Tree and State Machine

回答

0

我想通過定義,FSM只有一個切入點,而樹木的行爲可以有多個輸入。樹是圖,但圖不是樹。一棵樹是一個非循環圖,其中葉子永遠不會有多個父母。所以在這方面,樹更適合FSM。

不管怎樣,我會想象這種類型的模擬超出了android api的範圍。因此,我會更多地研究Java中可用的工具類型。我曾經用Java做過一個機器學習研究項目。爲了促進多線程,我最終實現了自定義樹數據結構。

我希望有幫助!

0

行爲樹和決策樹是兩個不同的東西。行爲樹是一種面向目標和反應性的組件(更多的套件用於模擬遊戲中的代理或智能實體決策,如環境),決策樹是基於動作的實用程序對決策進行規範(和存儲)的重要工具給定狀態。 主要是,在第一種方法中,執行更加滿狀態(執行與你在樹中的狀態相關),而後者更無狀態(整棵樹從根到葉評估以便到達結論)。

這就是說,從你的描述看來,你正在尋找的是專家系統,基於規則。