2011-10-18 11 views
6

エージェントを2次元空間シミュレーションで追跡するための良いデータ構造は何ですか?空間エージェントベースのモデリングのデータ構造

私は四分木(私が理解しているもの)とkd木(私はよく分かりません)への参照を見ました。

私はエージェントが効率的に「自分の位置を知っていて、自分の特定の半径の範囲内のどのエージェントが私の近くにいるのか知りたい」と言っているものを探しています。

例(疑似コードは大丈夫です)は大歓迎です。

私はJavaで作業しています。

答えて

2

私はBucket PR Quadtreeと呼ばれるものを発見しました。

+0

アップデート:私は、単純なグリッドの実装を行うことに決めました。 – Peter

2

まあ、具体的な実装方法はわかりませんが、MASON toolkitでは、互いに近いエージェントをハッシュテーブルの同じバケットに配置する離散化アルゴリズムが使用されています。これらのバケットのほんの少数だけが各クエリに対してチェックされなければならないので、非常に高速なルックアップが得られます。

あなたのための最善のことは、ここにソースコードを見てみることはおそらくです: http://code.google.com/p/mason/source/browse/trunk/mason/sim/field/continuous/Continuous2D.java?r=529