那里有人使用BGL进行大型生产服务器吗?
有人可以简单地谈谈如何解决这个问题。 请敞开心扉,激励我。
到目前为止,我已经设法解决了两个节点是否在岛上(在社区中) 以最昂贵的方式,但现在我需要弄清楚不同岛屿上的哪两个节点彼此最接近。我们只能极少使用不可靠的地理数据。
如果我们将其与大陆和岛屿进行比较,并将其从社会距离背景中移除。我想弄清楚哪两块土地最接近一块水。
答案 0 :(得分:6)
我已经将BGL用于具有数百万个节点的图形,但是您可以使用的图形大小取决于您尝试运行的算法。您可以快速计算节点之间的距离。根据您的数据,有4种最短路径算法最适用:(单对点,所有点对,稀疏和密集图,......)。
至于社区检测,BGL中没有专门为此设置的任何算法(但也许你可以在完成项目时贡献一个)。有一些算法可能有助于构建社区检测算法。 max-flow/min-cut算法通常用于社区检测(如果两个节点之间可能存在大量流量,那么它们可能位于同一社区中,如果没有多少流量,那么最小切割可能代表社区之间的道路)。还有启发式方法可以对图表的节点进行排序以减少bandwidth。构成“社区”的节点可能在这样的排序中彼此接近。
答案 1 :(得分:0)
据我所知,BGL没有专门用于社区检测的算法。
“岛屿”是指断开连接的子图?
此外,图表没有任何“距离”的概念。
这种“社交距离”是你必须要定义的东西。完成后,大部分工作就完成了。
您链接的页面上列出了许多方法,其中大多数只需要您定义类似“距离”指标的内容,然后将定义插入算法中。
@ David Nehme
没有边权重的图只是关于连通性,它们没有距离的概念。如果你想谈论网络,那么你可以谈论距离。但是没有边缘权重的图形没有任何距离,除非你想假设所有边缘的隐含边权重为1。但这实际上只是将图形转变为网络。
此外,他正在谈论两个断开的图之间的距离。要对此进行建模,您必须引入节点之间距离的外部概念,与边距离分开。