我目前正在解决以下问题:给定有向图 G =( V , E )我使用Dijkstra的算法来找到每个节点 v i ∈ V 的最短距离 d i startnode v 0 。
现在我想找到节点* v **,其节点的最短距离Σ d i 的总和被最小化。
在以下示例中,startnode v 0 为黄色,显然距离为0.给出了所有其他节点的最短距离。
在第一个图(左下角的startnode)中,所有最短距离的总和为
Σ d i = 1 + 2 + 2 + 2 + 3 + 3 + 3 = 16
在第二个图中(中间的startnode),所有最短距离的总和是
Σ d i = 1 + 1 + 1 + 2 + 2 + 2 + 2 = 11
边缘权重是浮点数,在示例中,为简单起见,它们选择为1。
我可能会尝试为每个节点找到最小值,但这当然太慢了。我迫不及待想听你的想法! : - )
答案 0 :(得分:2)
在社交网络的背景下,您所描述的中心度指标由Sadibussi于1966年定义(请参阅here或非官方链接here Freeman {{3}也对此进行了描述和推荐(p.225)作为分散度的衡量标准)。它有时被称为farness(见here)。
广度 - 第一次搜索允许人们计算从图形上的每个顶点到彼此的最短路径的长度。查看已接受的答案here和here。其他用于计算全对最短路径的方法被描述为here。
修改强>
由于您注意到您对一个近似解决方案感兴趣,请查看Baswana和Kavitha的here。表1.1总结了已知结果。迄今为止最好的近似解决方案需要O(n ^(3/2))空间用于3拉伸解(这意味着估计的距离将大于实际距离,但小于实际距离的3倍)。我想这对于大多数实际目的来说还不够好。没有已知的APASP(全对近似最短路径)算法,其拉伸<3且小于O(n ^ 2)空间要求。
实用解决方案:
大多数实现都利用了现实世界道路网络中固有的层次结构。例如,请参阅following paper,this和this。