【问题标题】:how to Find the center of graph (vertex, that is connected with every other vertex, but edges are directed to the center of graph) with java如何使用java找到图的中心(顶点,与其他所有顶点相连,但边指向图的中心)
【发布时间】:2012-11-22 03:57:03
【问题描述】:

如何使用 java.util 找到图的中心(顶点,与其他所有顶点相连,但边指向图的中心)。它对于类似 facebook 的网站非常有用。

【问题讨论】:

  • 图的中心是一组具有最小偏心率的顶点。你是怎么定义的?

标签: java algorithm graph


【解决方案1】:

假设您有一个带有一组 V 顶点的图:

V = { v1, v2, v3, ... , vn }

现在考虑所有顶点都连接到 v2 并且不存在其他边的极端情况,即作为元组 (from, to) 给出的边 E 的集合是:

E = ( (v1, v2), (v3, v2), ... , (vn, v2) }

在这种极端情况下,v2 显然是您定义的图形中心。

连通矩阵 A 如下所示:

A = {
   from
to  v1, v2, v3, ..  vn
v1   0   0   0  ..   0    
v2   1   0   1  ..   1
v3   0   0   0  ..   0    
   :               :
vn   0   0   0  ..   0 }

这里 v2 通过在其连接矩阵 A 的行的每个位置(除了 pos v2,即其自身)都有一个,清楚地标识为图的中心。

即使在 E 中还有其他边时,这也会识别图形的中心。请注意,可能有多个中心...

可以找到图的一个不太严格定义的中心,作为连接矩阵中其行中条目最多的顶点。

你可以避免构造矩阵 A,当你有集合 E 并且只计算每个顶点在边缘元组的 to 位置出现的次数。具有最大计数的顶点是图中未定义的中心,或者计数为 n - 1 的顶点是您严格定义的中心。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多