在二维空间模拟中跟踪代理有哪些好的数据结构?
我看过一些关于四叉树(我理解)和kd-trees的引用(我不太了解)。
我正在寻找代理可以有效地说出的话,“我知道我的位置,我想知道哪些代理人在我附近(在我自己的某个半径范围内)。”
示例(伪代码很好)将不胜感激。
我在Java工作。
答案 0 :(得分:2)
好吧,我不确定它是如何实现的,但是MASON toolkit使用了离散化算法,它将彼此接近的代理放在哈希表的同一个“桶”中。它可以实现非常快速的查找,因为每个查询只需要检查一些这些存储桶。
对您来说最好的事情可能是在这里查看源代码: http://code.google.com/p/mason/source/browse/trunk/mason/sim/field/continuous/Continuous2D.java?r=529
答案 1 :(得分:2)
我找到了一个叫Bucket PR Quadtree的东西。