lar*_*111 2 python loops networkx
给出以下示例:

是否有可能检测网络中的环路(I1, I2,I3, C6, C7, I5)?
我想:simple_cycles?它可以在3个节点上正常工作,但不能超过3个。
我需要检测所有节点以及“输入”节点("I1")和“输出” 的圆("I3")。
我这样重新创建了您的图形:
import networkx as nx
g = nx.DiGraph([('P', 'I0'), ('I0', 'I1'), ('I1', 'I2'),
('I2', 'I3'), ('I1', 'I5'), ('I5', 'C7'),
('C7', 'C6'), ('C6', 'I3'), ('I3', 'C9')])
Run Code Online (Sandbox Code Playgroud)
您正在搜索简单的周期,但上图中没有任何周期:
>>> list(nx.simple_cycles(g))
[]
Run Code Online (Sandbox Code Playgroud)
因此您必须在无向图中搜索周期。您必须将图形转换为无向图。对于无向图,该cycle_basis函数似乎是您需要的:
>>> nx.cycle_basis(g.to_undirected())
[['I5', 'C7', 'C6', 'I3', 'I2', 'I1']]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2456 次 |
| 最近记录: |