Создать случайный граф или соответствующую матрицу смежности из заданного списка степеней
У меня есть следующая проблема в R: у меня есть вектор, который содержит степени 200 узлов в моем графике. Строго говоря, они должны представлять внешние уровни. Можно ли из этих существующих степеней для узлов i = 1,..., 200 создать случайный граф и его матрицу смежности?
В качестве примера ниже приведены некоторые степени вектора:
118 134 120 124 102 100 126 123 112 3 3 4 6 4 4 2 3 2 3 8 5 3 2 4 5 7 3 4 5 8 3 4 2 9 0 1 4 4 4 6 5 2 2 4 4 7 6 5 5 5 3 3 4 5 5 5 1 3 6 4 8 7 9 6 3 2 3 6 4 7 2 8 7 6 9 3 1 3 [...]
1 ответ
Решение
Я думаю, что вы можете использовать sample_degseq
от igraph
:
library(igraph)
outdegrees <- c(2, 1, 1, 2, 4)
g <- sample_degseq(outdegrees, method = "simple.no.multiple")
get.adjacency(g)
# 5 x 5 sparse Matrix of class "dgCMatrix"
#
# [1,] . . . 1 1
# [2,] . . . . 1
# [3,] . . . . 1
# [4,] 1 . . . 1
# [5,] 1 1 1 1 .
plot(g)