在R中使用igraph生成k-正则图时,每个k-正则图都是唯一的和非随机的吗?

在R中使用igraph生成k-正则图时,每个k-正则图都是唯一的和非随机的吗?,r,igraph,R,Igraph,我想使用R中的igraph生成一个k-正则图。我将使用一个示例函数,首先获得游戏,然后转换为邻接矩阵: game <- sample_k_regular(no.of.nodes=3000, k=30) game_adj <- as.matrix(as_adj(game)) 并计算出差值: sum(game2_adj-game_adj) 我们得到的正好是0 一旦我们指定了节点的数量和每个节点的度(邻居的数量),它会是唯一的吗?(这意味着在函数调用顶部添加set.seed()不会产生

我想使用
R
中的
igraph
生成一个k-正则图。我将使用一个示例函数,首先获得游戏,然后转换为邻接矩阵:

game <- sample_k_regular(no.of.nodes=3000, k=30)
game_adj <- as.matrix(as_adj(game))
并计算出差值:

sum(game2_adj-game_adj)
我们得到的正好是0


一旦我们指定了节点的数量和每个节点的度(邻居的数量),它会是唯一的吗?(这意味着在函数调用顶部添加
set.seed()
不会产生任何影响?

确实存在随机性。让我们看一些更容易理解的东西:

game1 <- sample_k_regular(no.of.nodes = 5, k = 2)
game2 <- sample_k_regular(no.of.nodes = 5, k = 2)
game_adj1 <- as.matrix(as_adj(game1))
game_adj2 <- as.matrix(as_adj(game2))

game_adj1
#      [,1] [,2] [,3] [,4] [,5]
# [1,]    0    0    0    1    1
# [2,]    0    0    1    1    0
# [3,]    0    1    0    0    1
# [4,]    1    1    0    0    0
# [5,]    1    0    1    0    0
game_adj2
#      [,1] [,2] [,3] [,4] [,5]
# [1,]    0    0    1    0    1
# [2,]    0    0    1    1    0
# [3,]    1    1    0    0    0
# [4,]    0    1    0    0    1
# [5,]    1    0    0    1    0
game_adj1 - game_adj2
#      [,1] [,2] [,3] [,4] [,5]
# [1,]    0    0   -1    1    0
# [2,]    0    0    0    0    0
# [3,]   -1    0    0    0    1
# [4,]    1    0    0    0   -1
# [5,]    0    0    1   -1    0

但这是意料之中的,因为
sum(game_adj1)
sum(game_adj2)
节点数*k

@user321627,它能回答你的问题吗?
game1 <- sample_k_regular(no.of.nodes = 5, k = 2)
game2 <- sample_k_regular(no.of.nodes = 5, k = 2)
game_adj1 <- as.matrix(as_adj(game1))
game_adj2 <- as.matrix(as_adj(game2))

game_adj1
#      [,1] [,2] [,3] [,4] [,5]
# [1,]    0    0    0    1    1
# [2,]    0    0    1    1    0
# [3,]    0    1    0    0    1
# [4,]    1    1    0    0    0
# [5,]    1    0    1    0    0
game_adj2
#      [,1] [,2] [,3] [,4] [,5]
# [1,]    0    0    1    0    1
# [2,]    0    0    1    1    0
# [3,]    1    1    0    0    0
# [4,]    0    1    0    0    1
# [5,]    1    0    0    1    0
game_adj1 - game_adj2
#      [,1] [,2] [,3] [,4] [,5]
# [1,]    0    0   -1    1    0
# [2,]    0    0    0    0    0
# [3,]   -1    0    0    0    1
# [4,]    1    0    0    0   -1
# [5,]    0    0    1   -1    0
sum(game_adj1 - game_adj2)
# [1] 0