首页 > 解决方案 > 使用 igraph python 查找图的巨型组件的直径和平均最短路径长度

问题描述

我想计算图形巨型组件的平均最短路径长度和直径。这些文件以 .mat 格式表示。是否有任何内置函数可以这样做?

data = loadmat("filename.mat")
data=coo_matrix(data.get('A'))
graph= igraph.Graph(zip(data.row.tolist(), data.col.tolist()))

标签: pythonigraph

解决方案


巨型组件的直径

根据这个答案,我们可以找到具有以下功能的巨型组件。

def giant_component(graph):
    """Compute giant component.

    Returns:
        The giant component of `graph` as an `igraph.Graph`.

    """
    vc = graph.components()
    vc_sizes = vc.sizes()
    return vc.subgraph(vc_sizes.index(max(vc_sizes)))

它的直径可以被找到giant_component(graph).diameter()

平均最短路径

Graph.shortest_paths函数将返回一个包含所有最短路径长度的矩阵,然后您可以计算其平均值。

np.mean(graph.shortest_paths())

推荐阅读