【发布时间】:2011-10-18 16:57:27
【问题描述】:
有哪些好的数据结构可以在二维空间模拟中跟踪代理?
我看过一些关于四叉树(我理解)和 kd-tree(我不太理解)的引用。
我正在寻找一个代理可以通过它有效地说:“我知道我的位置,并且我想知道哪些代理在我附近(在我自己的某个半径内)。”
示例(伪代码很好)将不胜感激。
我正在使用 Java。
【问题讨论】:
标签: java data-structures 2d quadtree agent-based-modeling
有哪些好的数据结构可以在二维空间模拟中跟踪代理?
我看过一些关于四叉树(我理解)和 kd-tree(我不太理解)的引用。
我正在寻找一个代理可以通过它有效地说:“我知道我的位置,并且我想知道哪些代理在我附近(在我自己的某个半径内)。”
示例(伪代码很好)将不胜感激。
我正在使用 Java。
【问题讨论】:
标签: java data-structures 2d quadtree agent-based-modeling
好吧,我不确定它是如何实现的,但MASON toolkit 使用一种离散化算法,将彼此靠近的代理放置在哈希表的同一个“桶”中。它可以实现非常快速的查找,因为每次查询只需检查其中的几个桶。
对你来说最好的事情可能是看看这里的源代码: http://code.google.com/p/mason/source/browse/trunk/mason/sim/field/continuous/Continuous2D.java?r=529
【讨论】:
我发现了一个叫做Bucket PR Quadtree的东西。
【讨论】: