【问题标题】:Betweenness centrality Brandes algorithm中介中心性 Brandes 算法
【发布时间】:2014-04-26 14:31:27
【问题描述】:

我正在阅读基于Brandes algorithm 的介数中心性。我对算法有一些疑问

  1. 此算法是否给出了精确的中介中心性或近似值?当我运行BC on Sage, which is based on Brandes algorithm 时,它没有给出确切的值。例如,我得到的不是 14,而是 13.9956......

  2. 有人能用更简单的术语解释“对依赖的累积”部分吗?

  3. 当“我们需要存储每个顶点的依赖项和前驱列表”时要做什么。执行Dijkstra算法时是否这样做?

  4. 加权图要做什么?

【问题讨论】:

  • 1. BC,在它的某些化身中,不一定是整数。 3. 是的,与 Dijkstra。 4. 权重应该有一个自然的乘积位置。
  • @user567879 嗨,我需要在 c 中实现品牌。我只使用了 BFS,最多 1000 个输入需要 5 秒。提供的链接:algo.uni-konstanz.de/publications/b-fabc-01.pdf%e2%80%8e。无效。任何人都可以帮助我在 c 中实现,或者如果你已经有了,请分享。

标签: algorithm graph graph-algorithm


【解决方案1】:
  1. Brandes 算法给出了每个顶点的准确中心性。我不知道 Sage 中使用了哪种算法实现,但很可能是精度问题。

  2. 算法的累加部分可能是最棘手的。当您到达该部分时,您在 sigma 中拥有从当前顶点 s 到其余顶点的最短路径的数量。此外,在 Pred 中,对于每个顶点,您都有通过最短路径到达它们的顶点列表。依赖性 delta 将是 s 对其余顶点(范围从 0 到 N-2)的介数量,即,多少取决于每个顶点的s

    一个顶点wS弹出直到为空,从离s最远的一个开始,到s结束em> 本身(请记住,当在算法的最短路径计数部分达到顶点时,会将顶点添加到 S)。对于 w (Pred[w]) 的前辈列表中的每个 v,计算依赖关系,这(对我来说)是棘手的部分。

    表达式是 delta[v] = delta[v] + (sigma[v]/sigma[w]) * (1 + delta[w ]),或者换句话说,v 的新依赖是它已经拥有的依赖加上 (sigma[v ]/sigma[w]) * (1 + delta[w])。嗯,首先,注意当一个顶点wS中弹出时,它的整个依赖delta[w] 已经计算过了,因为不会有比 w 更远的未来节点,所以它不能在任何其他最短路径的中间。那么,应该清楚 (sigma[v]/sigma[w]) 是v的对(s,w),即顶点sw of v 保持连接(因为它是从 sw 的最短路径经过 的比例v)。但是(我认为这是不太明显的部分),顶点 v 不仅在 sw 之间的最短路径中,它也在所有涉及 w 的最短路径中!所以,如果有一条从s到某个顶点x经过w的最短路径,那么一定有一条从s x 通过 v。简单来说,如果sw的依赖很大,那么s会更多的依赖v。所以,因子(1 + delta[w])解释如下: 1、对于v对的依赖(s, w) 和 delta[w] 为 v 的依赖每对(s,w> 之外的任何顶点)。

    最后,delta[w] 被添加到它的全介数Cb[w](除非w == s,因为 s 不被认为是独立的)。

    正如我所说,乍一看,这不是一个容易理解的算法。慢慢来,如果您仍有疑问,请发表评论。

  3. 我不完全确定您在这里指的是什么。如果您要问如何从 Dijkstra 算法的输出中获取前辈列表,那么您不能,至少不能直接。如果您想使用预先存在的 Dijkstra 算法来实现此算法,除非该算法在其执行期间允许某种访问者,例如 Boost Graph 库 Dijkstra 实现,否则您将无法实现。顺便说一句,这个库已经实现了这个算法(see here),甚至是分布式/并行版本(herehere),如果你对此感兴趣的话。

  4. (至少)有两种方法可以在介数计算中考虑权重(我假设您的意思是边权重):作为“长度”,因此它对最短路径计算有影响,以及作为“重要性”或“多重性”(例如关系出现的次数)。 Brandes 本人在他的论文On Variants of Shortest-Path Betweenness Centrality and their Generic Computation 中为这些和其他情况提供了几种变体,算法 10(用于“长度”)和 11(用于“多重性”)。注意本文算法11有错误,在Brandes' publications page中解释(在列表中查找论文名称)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-18
    • 1970-01-01
    • 2019-04-08
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多