我有一个无向、正权值、连通的图,其顶点数为V
,边数为E
。我还有一个顶点子集S
。目前V
包含约22000个顶点,E
大约有23000条边,但对于更大的输入,这些数字预计会增加到约一百万。另一方面,S
通常只包含少于1000个顶点,并且它们在图中相对靠近。
我想找到S
的“中心”,即从中距离最远的顶点到顶点c
的距离尽可能小的顶点。就像图的中心,但只适用于顶点子集。[编辑:]这也是图上的1-中心问题;更一般的k-中心问题是NP难的,但这个问题可能较容易解决。
有没有一种算法可以有效地找到这个中心?理想情况下,性能仅取决于S
及其周围环境,而不取决于整个图。
我考虑同时从集合 S
的所有顶点 s_i
开始进行广度优先搜索,当所有的 s_i
都遇到了顶点 v_i
时停止。但这种方法效率不高,虽然在这种情况下可能可行,但感觉应该有更好的方法。