is_chordal#

is_chordal(G)[source]#

检查图 G 是否为弦图。

一个图是弦图,如果每个长度至少为 4 的环都有一条弦(连接环中不相邻两个节点的边)。

Parameters:
G

一个 NetworkX 图。

Returns:
chordalbool

如果 G 是弦图则返回 True,否则返回 False。

Raises:
NetworkXNotImplemented

该算法不支持 DiGraph、MultiGraph 和 MultiDiGraph。

Notes

该程序尝试通过最大基数搜索遍历每个节点。当发现任意节点的分离集不是团时,返回 False。基于 [1] 中的算法。

自环被忽略。

References

[1]

R. E. Tarjan 和 M. Yannakakis,简单的线性时间算法 用于测试图的弦性,测试超图的无环性,以及 选择性地简化无环超图,SIAM J. Comput., 13 (1984), pp. 566–579.

Examples

>>> e = [
...     (1, 2),
...     (1, 3),
...     (2, 3),
...     (2, 4),
...     (3, 4),
...     (3, 5),
...     (3, 6),
...     (4, 5),
...     (4, 6),
...     (5, 6),
... ]
>>> G = nx.Graph(e)
>>> nx.is_chordal(G)
True