circulant_graph#

circulant_graph(n, offsets, create_using=None)[源代码]#

返回循环图 \(Ci_n(x_1, x_2, ..., x_m)\) 使用 \(n\) 节点。

循环图 \(Ci_n(x_1, ..., x_m)\) 由.组成 \(n\) 节点 \(0, ..., n-1\) 使得该节点 \(i\) 连接到节点 \((i + x) \mod n\)\((i - x) \mod n\) 为了所有人 \(x\) 在……里面 \(x_1, ..., x_m\) 。因此, \(Ci_n(1)\) 是一个循环图。

参数
n整数

图形中的节点数。

offsets整数列表

节点偏移量列表, \(x_1\) 最高可达 \(x_m\) ,如上所述。

create_usingNetworkX图形构造函数,可选(默认=nx.Graph)

要创建的图表类型。如果是图表实例,则在填充之前清除。

返回
Create_Using类型的网络X图

实例

许多著名的图族都是循环图的子族;例如,要在n个点上创建循环图,我们将每个节点连接到两边的节点(用偏移量加或减1)。对于n=10,

>>> G = nx.circulant_graph(10, [1])
>>> edges = [
...     (0, 9),
...     (0, 1),
...     (1, 2),
...     (2, 3),
...     (3, 4),
...     (4, 5),
...     (5, 6),
...     (6, 7),
...     (7, 8),
...     (8, 9),
... ]
...
>>> sorted(edges) == sorted(G.edges())
True

同样,我们可以使用偏移量集在5个点上创建完整的图 [1, 2] :

>>> G = nx.circulant_graph(5, [1, 2])
>>> edges = [
...     (0, 1),
...     (0, 2),
...     (0, 3),
...     (0, 4),
...     (1, 2),
...     (1, 3),
...     (1, 4),
...     (2, 3),
...     (2, 4),
...     (3, 4),
... ]
...
>>> sorted(edges) == sorted(G.edges())
True