我想在有向图的 jung 实现中找到离给定顶点最远的 K 点。
我假设BFSDistanceLabeler完成了这项工作。但是,它没有提供返回 K 最远点的 api,所以我必须通过遍历图中的所有顶点并调用 getDistance 方法来手动完成。或者,还有更好的方法?
但对我来说还有一个更大的挑战。尽管该图是有向的,但我想将其视为距离标注器的无向。是否有可能以某种方式从有向图快速切换到其无向版本?
为什么我需要将图视为无向?
我在随后的步骤中分析了一个非常大的网络(数百万个顶点)。在每一步中,都会将一小部分网络(数千个顶点)加载到图中并进行分析。该分析需要有向图,并为必须位于加载区域中心的一个特定顶点提供结果。
当我从步骤 A 移动到步骤 B 时,我可以删除整个先前的图表并创建一个新图表。然而,这将非常耗时。因为我知道我感兴趣的新顶点接近前一个顶点,所以图的很大一部分可以重复使用。
这就是为什么我需要为新的主顶点删除 K 个最远的顶点,并用这个顶点周围的新顶点替换它们。
让我们看一下带有图形的底部图片,假设顶点 1 是我们感兴趣的顶点。由于图是有向的,6 号顶点是最远的。但是,如果图形被视为无向,那么顶点 4 将是最远的,这就是我需要的。