R中每个节点的不同度的随机图

问题描述 投票:1回答:2

我有122个节点,我想创建一个随机图,每个节点的节点度都是固定的。在R中有什么办法吗?我尝试了igraph,在那里我可以为所有节点修复相同的度数,即122个节点中的每一个都具有2度。但是,我想为每个节点创建一个具有固定度数的随机图(即节点A将具有4度;节点B将具有学位5)

我尝试了以下代码,现在它正在工作:

outdegrees <- c(2, 1, 2, 1, 2)


g <- sample_degseq(outdegrees, method = "Vl")

谢谢

普里亚

r igraph graph-theory undirected-graph
2个回答
0
投票

您可以使用sample_degseq创建具有指定度序列的图形。

举个例子,假设你想要一个度数序列1, 1, 2, 2, ..., 61, 61。您可以使用以下代码:

> library(igraph)
> deg.seq <- rep(1:61, 2)
> sample_degseq(deg.seq)
IGRAPH 45e3c32 U--- 122 1891 -- Degree sequence random graph
+ attr: name (g/c), method (g/c)
+ edges from 45e3c32:
 [1]  80--121   9-- 82  54--114  57-- 96  52-- 60  16-- 55  38--105  29-- 80
 [9]  69--115   6-- 28  92--111  29-- 49  47-- 67  90--106  49--121  43--114
[17]  40-- 46  47--115 120--122  55--100  98--104  43--109  28-- 98  25--115
[25]  38-- 43  48-- 52  27-- 92  26--107  53--107  60--110  97--110  91--106
[33]  18-- 98 117--119  28-- 51  58--104  61--110  43--105  39-- 51  31-- 95
[41]  84-- 87  94--112  32-- 58  41-- 98  19--113  40-- 47  41-- 50 116--121
[49]  51-- 95  58--118  97--111 100--119  40-- 92  18--114  22--101  46-- 77
[57]  12-- 88  54--109  49-- 58  42-- 61  47-- 53  45--116  31--122  52--102
+ ... omitted several edges

0
投票

这是一种方法:

  1. 列出一份清单,L
  2. 对于每个ic_i i放在列表中。
  3. 洗牌清单。
  4. 连接L[1]L[2]L[3]L[4]等。
  5. 如果你最终得到自我循环(并且不想这样),请转到3。
© www.soinside.com 2019 - 2024. All rights reserved.