【问题标题】:How can you obtain a symmetric adjacency matrix of an induced subgraph?如何获得诱导子图的对称邻接矩阵?
【发布时间】:2018-02-15 20:45:31
【问题描述】:

4个顶点的完整图表示为一个edgelist如下:

$ cat k4.edgelist 
0 1
0 2
0 3
1 2
1 3
2 3

现在,考虑以下使用 python-igraph 的 Python 脚本:

from igraph import Graph

g=Graph.Full(4)
n=g.induced_subgraph(g.neighbors(0))
print n.get_adjacency().data

h=Graph.Read_Edgelist('k4.edgelist')
n=h.induced_subgraph(h.neighbors(0))
print n.get_adjacency().data

执行的输出是:

[[0, 1, 1], [1, 0, 1], [1, 1, 0]]
[[0, 1, 1], [0, 0, 1], [0, 0, 0]]

我很困惑,因为我希望第二行等于第一行。 documentation for get_adjacency() 有一个参数type,默认设置为GET_ADJACENCY_BOTH,因此矩阵确实应该是对称的。

是否有直接的方法来获得诱导子图的对称邻接矩阵?我当然可以通过线性代数做到这一点,但我关心的矩阵很大,所以我想尽可能高效地做到这一点。

【问题讨论】:

    标签: python igraph


    【解决方案1】:

    你做了一个有向图。做一个无向的:

    h=Graph.Read_Edgelist('k4.edgelist', directed=False)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      • 1970-01-01
      相关资源
      最近更新 更多