2011-07-14 10 views
1

複雑な分岐ロジックのAndroidビジネスアプリケーションを実装して、マーケティングアンケートツールとして使用したいと思っています。 ダイアログロジックをFSMまたはビヘイビアツリーとして実装するかどうか混乱します。著者はステートマシンを実装するためにツリーを使用しています。例えば、ゲームのための人工知能では、著者はIan Millingtonらによると、FSMに決定木を使用することを提案している。しかし、私は、FSMはクロージャを持つことができると考えています。たとえば、 "アラームを発生させる"と "防御する"の間で遷移すると、ツリーではなくグラフになります。私の最初の質問は、ツリーとステートマシンの違いは何ですか? 2つ目は、アプリケーションの優れた実装となり、高いレベルの分岐の複雑さを管理することです。ビヘイビアツリーとステートマシン

Combining Decision Tree and State Machine

答えて

0

私は行動の木が複数の入力を持つことができますが、定義により、FSMは、唯一のエントリポイントを持っていると思います。ツリーはグラフですが、グラフはツリーではありません。ツリーは、葉が複数の親を持たない非循環グラフです。この点で、木はFSMに適しています。

とにかく、私はこのタイプのシミュレーションがandroid apiの範囲外であると思います。したがって、私はどのような種類のツールがJavaで利用可能であるかについてもっと検討しています。私はかつてJavaで研究プロジェクトを学習していました。私は、マルチスレッドを容易にするために、カスタムTreeデータ構造を実装しました。

私はそれが助けてくれることを願っています!

0

行動ツリーと意思決定ツリーは、2つの異なるものです。行動木は目標指向で反応性があり(環境のようなゲームでエージェントやスマートエンティティの決定をシミュレートするためのもの)、意思決定ツリーは、行動の有用性に基づいて決定の仕様(および記憶域)与えられた状態。 主に、最初のアプローチでは、実行は状態がいっぱいです(実行はツリー内の状態に結びつきます)、後では状態がより少なくなります(ツリー全体が到達するためにルートからリーフに評価されます)結論)。

あなたの説明によれば、あなたが探しているのはルールベースのエキスパートシステムです。

0

FSMは、遷移によってリンクされた状態のグラフです。複雑なfsmの場合、複雑な遷移のために拡張することは困難です。

動作ツリーの場合、各ノードはその親によって管理されますが、実際には親/子関係に暗黙的に移行されているため、既存の動作ツリーを拡張する方が簡単です。

you can refer to https://github.com/TencentOpen/behaviac for the source code and designer.

関連する問題