我目前正在尝试生成一个网络,其中度分布具有较大的方差,但每个度具有足够数量的节点。例如,在igraph中,如果我们使用Barabasi-Albert网络,则可以执行以下操作:
g <- sample_pa(n=100,power = 1,m = 10)
g_adj <- as.matrix(as_adj(g))
rowSums(g_adj)
[1] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
[29] 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
[57] 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
[85] 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
上面显示了100个节点中每个节点的度数。对我来说,问题是我只希望具有10-15个唯一的度值,因此,例如,最后的7个节点中的每个节点都有93个,而不是93 94 95 96 97 98 99 。换句话说,当我打电话
unique(rowSums(g_adj))
我最多希望输入10-15个值。有没有一种方法可以使这些节点“聚类”,而不是拥有这么多不同的唯一度值?谢谢。
答案 0 :(得分:2)
您可以使用 <body onload="loop_ports()">
<div id="onu_tags" class="tags">
</div>
</body>
:生成具有给定度数序列的随机图。例如,
sample_degseq
请注意,您可能需要玩degrees <- seq(1, 61, length = 10) # Ten different degrees
times <- rep(10, 10) # Giving each of the degrees to ten vertices
g <- sample_degseq(rep(degrees, times = times), method = "vl")
table(degree(g))
# 1 7 14 21 27 34 41 47 54 61
# 10 10 10 10 10 10 10 10 10 10
和degree
,因为最终times
必须是graphic sequence。