我正在嘗試了解在 Python 或 R 中是否存在與圖論相關的模塊功能,這些功能可以使人們從度分布開始(或者一旦我們設置了頂點數就表示為序列),并生成(隨機) 滿足規定度數序列的圖。例如,我們可能會得到以下分布:p=(0.179,0.49,0.34)分別是度值1,2和的概率3。所以我們可以設置頂點的個數,n=500,映射p到一個度數序列deseq表:填充的0.179*n次數1,等等。任何指向先前討論過的此類問題或庫建議的案例都會非常有幫助。
3 回答

HUH函數
TA貢獻1836條經驗 獲得超4個贊
在學習了如何在 R 和 Python 中使用 igraph 來生成所需類型的圖之后,這是我自己的問題的嘗試。
在 R 中:
出于本示例的目的,我們假設以下度數序列:總節點n=20,
5,10
和分別5
具有度數1,2,
和的節點3
。c()
我們使用和創建度數序列,rep().
然后我們將使用sample_degseq()
fromigraph
生成與上述度數序列對應的圖形。然后我們將繪制其度數直方圖以進行完整性檢查。
首先使用以下命令在 R 控制臺中安裝并調用 igraph 模塊:
install.packages("igraph") library(igraph)
現在我們可以按照描述進行:
degreels <- c(rep(1,5),rep(2,10),rep(3,5)) graph <- sample_degseq(degreels, method="simple") degreehist <- hist(degree(graph)) is.connected(graph)
在 Python 中:
現在讓我們用 Python 中的 igraph 模塊做同樣的事情:
import igraph as ig
import matplotlib.pyplot as plt
degcounts = [5,10,5]
degreels = []
for i in range(len(degcounts)):
degreels += degcounts[i]*[i+1]
graph = ig.GraphBase.Degree_Sequence(degreels,method="simple")
plt.hist(graph.degree())
plt.show()
和得到的直方圖:

波斯汪
TA貢獻1811條經驗 獲得超4個贊
添加回答
舉報
0/150
提交
取消