<分区>
在二维空间模拟中跟踪代理的一些好的数据结构是什么?
我看过一些对四叉树(我理解)和 kd 树(我不太理解)的引用。
我正在寻找代理人可以有效地说“我知道我的位置,我想知道哪些代理人在我附近(在我自己的一定半径范围内)”的东西。
示例(伪代码也可以)将不胜感激。
我在 Java 工作。
<分区>
在二维空间模拟中跟踪代理的一些好的数据结构是什么?
我看过一些对四叉树(我理解)和 kd 树(我不太理解)的引用。
我正在寻找代理人可以有效地说“我知道我的位置,我想知道哪些代理人在我附近(在我自己的一定半径范围内)”的东西。
示例(伪代码也可以)将不胜感激。
我在 Java 工作。
最佳答案
好吧,我不确定它是如何实现的,但是 MASON toolkit使用一种离散化算法,将彼此靠近的代理放置在哈希表的同一个“桶”中。它可以实现非常快速的查找,因为每个查询只需检查其中的几个存储桶。
对您来说最好的办法可能是查看此处的源代码: http://code.google.com/p/mason/source/browse/trunk/mason/sim/field/continuous/Continuous2D.java?r=529
关于java - 基于空间主体建模的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7810928/