rustworkx.generators.heavy_hex_graph#

heavy_hex_graph(d, multigraph=True)#

生成一个无向重六边形图。

图2源于 https://arxiv.org/abs/1907.09528 该图的ASCII示意图如下:

... D-S-D   D ...
    |   |   |
...-F   F-S-F ...
    |   |   |
... D   D   D ...
    |   |   |
... F-S-F   F-...
    |   |   |
    .........
    |   |   |
... D   D   D ...
    |   |   |
...-F   F-S-F ...
    |   |   |
... D   D   D ...
    |   |   |
... F-S-F   F-...
    |   |   |
    .........
    |   |   |
... D   D   D ...
    |   |   |
...-F   F-S-F ...
    |   |   |
... D   D   D ...
    |   |   |
... F-S-F   F-...
    |   |   |
... D   D-S-D ...
Parameters:
  • d (int) – 编码的距离. 如果设置 d1, 将返回一个节点数为1的 PyGraph. d 必须是一个奇数.

  • bidirectional (bool) – 表示节点之间的边是否应当存在于双方向的参数。默认为 False

  • multigraph (bool) – 当设置为 False 时,输出 PyGraph 对象将不会是多图,且 不允许添加平行边。相反, 本会创建平行边的操作将更新现有边。

Returns:

生成的 heavy hex 图

Return type:

PyGraph

Raises:

IndexError – If d is even

import rustworkx.generators
from rustworkx.visualization import graphviz_draw

graph = rustworkx.generators.heavy_hex_graph(3)
graphviz_draw(graph, lambda node: dict(
        color='black', fillcolor='lightblue', style='filled'))
../_images/rustworkx.generators.heavy_hex_graph_0_0.png