我想實現一個複雜的分支邏輯Android業務應用程序,根據用戶的響應,將其用作具有許多問題和分支之間的營銷問答工具。 我很困惑是否將對話邏輯實現爲FSM或行爲樹。作者已經使用樹來實現狀態機。例如在Ian Millington等人的遊戲的人工智能中,作者建議將決策樹用於FSM。但是,我認爲FSM可能會關閉,例如在「發出警報」和「防守」之間轉換會使其成爲圖形而不是樹。我的第一個問題是樹和狀態機有什麼區別?第二個是對我的應用來說是一個很好的實現,管理高級分支複雜性?行爲樹與狀態機
Q
行爲樹與狀態機
1
A
回答
0
我想通過定義,FSM只有一個切入點,而樹木的行爲可以有多個輸入。樹是圖,但圖不是樹。一棵樹是一個非循環圖,其中葉子永遠不會有多個父母。所以在這方面,樹更適合FSM。
不管怎樣,我會想象這種類型的模擬超出了android api的範圍。因此,我會更多地研究Java中可用的工具類型。我曾經用Java做過一個機器學習研究項目。爲了促進多線程,我最終實現了自定義樹數據結構。
我希望有幫助!
0
行爲樹和決策樹是兩個不同的東西。行爲樹是一種面向目標和反應性的組件(更多的套件用於模擬遊戲中的代理或智能實體決策,如環境),決策樹是基於動作的實用程序對決策進行規範(和存儲)的重要工具給定狀態。 主要是,在第一種方法中,執行更加滿狀態(執行與你在樹中的狀態相關),而後者更無狀態(整棵樹從根到葉評估以便到達結論)。
這就是說,從你的描述看來,你正在尋找的是專家系統,基於規則。
0
FSM是通過轉換鏈接的狀態圖。對於複雜的fsm,由於複雜的轉換而難以擴展。
對於行爲樹,每個節點都由其父級管理,實際上該過渡實際上隱含在父/子關係中,因此擴展現有行爲樹更容易。
you can refer to https://github.com/TencentOpen/behaviac for the source code and designer.
相關問題
- 1. 狀態機執行
- 2. C++遞歸樹與指針和狀態機構建
- 3. QML狀態機與信號
- 4. 板球作爲狀態機
- 5. 對象與狀態和行爲在oop
- 6. 奇怪的行爲與git的狀態
- 7. 行爲與基於狀態的測試
- 8. 爲樹狀
- 9. SplitContainer的與樹狀
- 10. 狀態就像行爲樹中的動作
- 11. 樹狀圖與父/子問題加載狀態
- 12. Windows Workflow 3狀態機 - 持久對象與WF狀態一起?
- 13. 建模識別狀態與建模驗證的狀態機圖
- 14. ObjectOutputStream狀態機?
- 15. 在狀態機
- 16. VHDL狀態機
- 17. 狀態機,
- 18. Android狀態機
- 19. 設計REDX狀態樹
- 20. JSF和組件樹狀態
- 21. ExtJS檢查樹狀態
- 22. 樹狀檢查狀態改變?
- 23. 更改樹狀圖狀態圖像
- 24. 定期爲樹狀
- 25. VHDL輸出聲明與狀態機
- 26. 狀態機與微控制器的RTOS
- 27. 可以在狀態機中進行狀態轉換嗎?
- 28. 在wf 4.0狀態機中重新運行工作流狀態
- 29. mod-pagespeed和樹狀菜單行爲
- 30. Ruby中的動態狀態機?狀態機必須是類嗎?