用于维持顶点强度的加权网络的随机网络

时间:2016-09-23 17:27:17

标签: r social-networking

是否有任何现有的方法为加权网络生成随机网络,并规定随机网络中的所有顶点/节点具有与真实网络相同的强度和强度?强度分别定义为所有输出/输入重量的总和。每个顶点的随机权重不一定必须在顶点之间简单地混淆,但可以随机生成 - 但是不能有自循环。即加权矩阵的对角线必须为0.矩阵的权重也必须是整数。

示例矩阵

mat <- structure(list(A = c(0L, 1L, 0L, 0L, 0L, 0L, 1L, 4L, 0L, 5L, 
1L, 0L), B = c(0L, 0L, 2L, 0L, 1L, 0L, 2L, 7L, 2L, 8L, 5L, 1L
), C = c(0L, 1L, 0L, 1L, 0L, 2L, 1L, 4L, 0L, 6L, 6L, 0L), D = c(1L, 
1L, 1L, 0L, 0L, 2L, 1L, 4L, 1L, 2L, 1L, 0L), E = c(0L, 0L, 0L, 
0L, 0L, 0L, 0L, 5L, 1L, 7L, 2L, 0L), F = c(0L, 0L, 1L, 1L, 0L, 
0L, 0L, 6L, 0L, 15L, 9L, 2L), G = c(2L, 0L, 1L, 1L, 0L, 2L, 0L, 
2L, 1L, 3L, 5L, 0L), H = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
4L, 2L, 2L), I = c(0L, 1L, 1L, 0L, 0L, 0L, 0L, 5L, 0L, 1L, 4L, 
0L), J = c(0L, 0L, 0L, 0L, 0L, 0L, 1L, 7L, 0L, 0L, 1L, 0L), K = c(0L, 
0L, 0L, 0L, 0L, 3L, 0L, 14L, 3L, 25L, 0L, 1L), L = c(0L, 0L, 
1L, 1L, 0L, 1L, 2L, 5L, 0L, 6L, 2L, 0L)), .Names = c("A", "B", 
"C", "D", "E", "F", "G", "H", "I", "J", "K", "L"), class = "data.frame", row.names = c("A", 
"B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"))



  A B C D E  F G H I J  K L
A 0 0 0 1 0  0 2 0 0 0  0 0
B 1 0 1 1 0  0 0 0 1 0  0 0
C 0 2 0 1 0  1 1 0 1 0  0 1
D 0 0 1 0 0  1 1 0 0 0  0 1
E 0 1 0 0 0  0 0 0 0 0  0 0
F 0 0 2 2 0  0 2 0 0 0  3 1
G 1 2 1 1 0  0 0 0 0 1  0 2
H 4 7 4 4 5  6 2 0 5 7 14 5
I 0 2 0 1 1  0 1 0 0 0  3 0
J 5 8 6 2 7 15 3 4 1 0 25 6
K 1 5 6 1 2  9 5 2 4 1  0 2
L 0 1 0 0 0  2 0 2 0 0  1 0

1 个答案:

答案 0 :(得分:1)

下面的论文有一种算法来随机化网络权重,使得随机网络不受其结构(即程度)的偏差。这是paper 但是编码那个超出我的能力。它是等式7和8