如何从给定的m×n矩阵中确定是否连接了双模网络?
当然可以创建一个数据结构来找出它 - 但是有没有数学解决方案?
我发现n x n矩阵(单模网络)很容易:解决方案是:M * M
然后查看结果矩阵中的对角线。如果对角线上有任何零,则它没有连接。那不是真的吗?
对于这两个问题,你有什么建议?
答案 0 :(得分:1)
单模式网络并非如此简单,但您已经接近了。
网络矩阵M
本身告诉您哪个节点在一个步骤中连接到哪个其他节点。 M * M
告诉您哪个节点与正好两个步骤中的哪个节点连接,M ^ 3
是否在正好三个步骤中,依此类推。 “完全”很重要,因为如果节点没有连接到它们自己(零对角元素),那么M * M
不仅会获得两步连接,而且会失去一步连接。
如果所有节点都连接到自身,产品(电源)会更有用:
A = (M + eye(size(M)) > 0)
此步骤还将加权矩阵转换为纯邻接矩阵。现在
(A ^ i > 0)
为您提供有关两个节点是否以i
步骤或更少连接的信息。在具有n = size(M, 1)
个节点的网络中,两个节点之间的距离最多为n - 1
步。因此
C = (A ^ (n - 1) > 0)
为您提供两个节点是否完全连接的信息。如果没有未连接的节点对,则连接整个网络,即如果
connected = (sum(C(:)) == N ^ 2)
我不确定如何定义双模网络中的连通性。一种简单的方法是忽略两种类型节点之间的差异,并将它们全部视为单模式网络的一部分。如果M
是大小为[m, n] = size(M)
的原始双模网络矩阵,那么
M = [zeros(m, m) , M ; M' ; zeros(n, n)];
将其转换为描述大小为(m+n)
x (m+n)
的相应单模网络的矩阵。
这些矩阵功率不仅可以告诉您整个网络是否已连接,还可以用于查找连接的子网(网络群集)(如果不是)。由于矩阵的幂的行为与其谱分解(a.k.a。eigendecomposition)密切相关,因此这个想法导致了spectral clustering的方法。对于加权同步网络的应用,请参阅例如arXiv:0706.3375