Erdős-Rényi 图 ¶
Erdős-Rényi 图¶
此示例演示了如何使用 Erdos_Renyi()
生成 Erdős-Rényi 图。 有两种图的变体
Erdos_Renyi(n, p)
将生成一个图,其中任意两个节点之间的每条边都具有独立的概率p
存在。Erdos_Renyi(n, m)
将从所有具有n
个节点和m
条边的图中均匀随机地选择一个图。
我们生成每个图的两个,因此我们可以确认我们的图生成器是真正随机的。
import igraph as ig
import matplotlib.pyplot as plt
import random
# Set a random seed for reproducibility
random.seed(0)
# Generate two Erdos Renyi graphs based on probability
g1 = ig.Graph.Erdos_Renyi(n=15, p=0.2, directed=False, loops=False)
g2 = ig.Graph.Erdos_Renyi(n=15, p=0.2, directed=False, loops=False)
# Generate two Erdos Renyi graphs based on number of edges
g3 = ig.Graph.Erdos_Renyi(n=20, m=35, directed=False, loops=False)
g4 = ig.Graph.Erdos_Renyi(n=20, m=35, directed=False, loops=False)
# Print out summaries of each graph
ig.summary(g1)
ig.summary(g2)
ig.summary(g3)
ig.summary(g4)
fig, axs = plt.subplots(2, 2)
# Probability
ig.plot(
g1,
target=axs[0, 0],
layout="circle",
vertex_color="lightblue"
)
ig.plot(
g2,
target=axs[0, 1],
layout="circle",
vertex_color="lightblue"
)
axs[0, 0].set_ylabel('Probability')
# N edges
ig.plot(
g3,
target=axs[1, 0],
layout="circle",
vertex_color="lightblue",
vertex_size=0.15
)
ig.plot(
g4,
target=axs[1, 1],
layout="circle",
vertex_color="lightblue",
vertex_size=0.15
)
axs[1, 0].set_ylabel('N. edges')
plt.show()
收到的输出是
IGRAPH U--- 15 18 --
IGRAPH U--- 15 21 --
IGRAPH U--- 20 35 --
IGRAPH U--- 20 35 --

具有概率 p
= 0.2 (顶部) 和具有边数 m
= 35 (底部) 的 Erdős-Rényi 随机图。¶
注意
即使使用相同的随机种子,结果仍然可能因代码运行的机器而异。