【发布时间】:2012-01-25 06:47:30
【问题描述】:
我有一个“实体”(对象)网络,每个都包含有关“下一个”(后续)实体是什么的信息,可以是从无到很多之间的任何内容。此外,“下一个”实体包含其“下一个实体”的信息(可以是全新的实体,也可以是刚刚链接到它的上一个实体)。
所以 A 知道 B 和 C 在哪里,B 知道 A、D 和 E 在哪里等等。注意 A 和 B 的双向方向。连接的数量和方向没有限制。
如果我必须经常(数千次)搜索实体,那么模拟这种网络的最佳(最高性能)集合是什么?如果我搜索的是字符串而不是对象,那么最好的集合是什么?这有什么不同吗?任何其他类型的实体会更快吗?
谢谢大家!
编辑:我要做的是在网络/图表中保存大量“记忆”(模拟中的历史事件),然后搜索某个记忆并跟踪与它的邻居和邻居的邻居等等,寻找符合我搜索模式的记忆“组合”。例如,我正在验证实体“A、B、C 和 A”是否按此顺序存在。
【问题讨论】:
-
就图论而言,您希望在图上执行什么样的操作? (找到 2 个节点之间的路径?连接的组件?如果 2 个节点连接.. 等等)
-
嗯...实际上完全不同的操作。我希望能够搜索某个节点(使用它的名称/键),然后转到它的直接邻居(“nextEntity”)及其邻居的邻居。当我这样做时,我必须检查节点之间的“距离”,这很可能是附加到每个节点具有的“邻居”列表的属性。广告我还想比较节点的属性。问题是,它不是最终结束的“树”,因为节点之间的关系允许圆圈 - 节点 A 和 B 可以双向连接,没有父子关系。
-
尝试使用 Map
> 将节点映射到其子节点。或者,您可以在 Node 类中使用带有 List 子级的 Node。然后你就可以对它们进行各种操作了。
标签: java performance collections neural-network