2 次元の空間シミュレーションでエージェントを追跡するための適切なデータ構造は何ですか?
quadtrees (私は理解しています) と kd-trees (私はよく理解していません) への言及を見てきました。
エージェントが効率的に「自分の場所を知っているので、自分の近く (自分の特定の半径内) にいるエージェントを知りたい」と言うことができるものを探しています。
例 (疑似コードでもかまいません) をいただければ幸いです。
私はJavaで働いています。
2 次元の空間シミュレーションでエージェントを追跡するための適切なデータ構造は何ですか?
quadtrees (私は理解しています) と kd-trees (私はよく理解していません) への言及を見てきました。
エージェントが効率的に「自分の場所を知っているので、自分の近く (自分の特定の半径内) にいるエージェントを知りたい」と言うことができるものを探しています。
例 (疑似コードでもかまいません) をいただければ幸いです。
私はJavaで働いています。
Well, I'm not sure exactly how it is implemented, but the MASON toolkit uses a discretization algorithm that places agents that are close to one another in the same "bucket" of a hash table. It makes for very fast lookups, as only a few of these buckets have to be checked for each query.
The best thing for you is probably to take a look at the source code here: http://code.google.com/p/mason/source/browse/trunk/mason/sim/field/continuous/Continuous2D.java?r=529
Bucket PR Quadtreeと呼ばれるものを見つけました。