python - 在 Python 或 R 中为给定的度序列生成图

标签 python r graph-theory

我正在尝试了解在 Python 或 R 中是否存在与图论相关的模块功能,这些功能使人们能够从度分布开始(或者在我们设置顶点数后表示为序列),并且生成满足规定度数序列的(随机)图。

例如,我们可能会得到以下分布:p=(0.179,0.49,0.34) 这是度值 1,23 分别。所以我们可以设置顶点的个数,n=500,p映射到一个度数序列deseq list: filled with 0.179* 1, 的 n 次,其余依此类推。

任何指向之前讨论过的此类问题案例或库建议的指针都会非常有帮助。

最佳答案

在学习了如何在 R 和 Python 中使用 igraph 来生成所需类型的图形后,我尝试回答自己的问题。

In R:

为了这个例子的目的,我们假设以下度序列:总节点 n=20, 5,105 节点度数分别为 1,2,3。我们使用 c()rep() 创建度序列。然后我们将使用 igraph 中的 sample_degseq() code>生成对应于上述度数序列的图。然后我们将绘制其度数直方图以进行完整性检查。

首先使用以下命令在 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)

enter image description here

In Python:

现在让我们用 Python 中的 igraph 模块做完全相同的事情:

安装see here.

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()

以及得到的直方图:

enter image description here

关于python - 在 Python 或 R 中为给定的度序列生成图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57373559/

相关文章:

python - 如何在 python 中指定 zip 文件的压缩级别?

python - 数字列表 - 如何找到重复模式?

r - 如何将前一个表达式的结果赋给变量?

r - 在keyed data.table 中,更改某个 `where` 处的key 变量的值会将key 设置为 `NULL`

python - ckeditor_uploader 动态图片上传路径

python - socket.gaierror : [Errno 11001] getaddrinfo failed"in python, 使用简单的自定义 Web 浏览器

r - 如何在 RStudio 服务器中同时将输出保存到控制台和文件?

python - 计算连通图

algorithm - 查找循环图中任意两个节点的公共(public)子节点(后代)列表

algorithm - 使用最小优先级队列时,如何跟踪 Dijkstra 算法中的最短路径?