我需要进行有效的d维点搜索,并且还需要在d维中对点进行有效的k-NN查询。因此我需要一个R-Tree库。我需要一个可以构建R-Tree结构的库,我可以在需要时用它进行查询。
此外,我需要有一些类似于METIS或hMETIS的库,尽管我的应用程序不涉及超图。我的要求是找到一个图形的最小割集,它将图形划分为大致两个相等大小的图形。
问题是我需要在R中支持这些的库。
我找到了一个库RANN,它有基于kd-tree的k-NN查询,但问题是要么我必须立即进行所有k-NN查询并将结果存储在一个巨大的数组,或者每次需要时都需要调用函数(nn
或nn2
),这会使O(n lg n)检索时间增长失效。
有人可以告诉我R中是否有这样的库吗?
注意:我需要R-Tree库来有效地实现聚类算法,并且需要图分区库来实现CHAMELEON聚类算法。
答案 0 :(得分:3)
答案 1 :(得分:0)
我还需要一些像 METIS 或 hMETIS 这样的库,尽管我的应用程序不涉及超图。我的要求是找到一个图的最小割集,该图将图分成大致相同大小的两个图。
尽管这是一个老问题,但我最近写了这样的东西。也就是说,
从我正在使用的图形来看,3. 似乎经常为更大的图形找到一个很好的解决方案(比如约 1-4 百万条边和约 100 万个顶点)。这需要几秒钟或几分钟。实现位于 https://github.com/boennecd/pedmod 的 pedmod 包中。调用以下命令来安装软件包并查找包含更多详细信息的小插图:
remotes::install_github("boennecd/pedmod", build_vignettes = TRUE)
vignette("pedigree_partitioning", package = "pedmod")
我不确定我的实现在分区速度和质量方面与其他软件相比如何。
Chlebíková,Janka。 1996. “近似图中的最大平衡连接分区问题。”信息处理快报 60 (5):225–30。
Kernighan、B. W. 和 S. Lin。 1970 年。“用于划分图的有效启发式程序”。贝尔系统技术杂志 49 (2): 291–307