gpt4 book ai didi

Python Networkx 检测循环/圆圈

转载 作者:行者123 更新时间:2023-11-28 21:48:12 38 4
gpt4 key购买 nike

给定以下示例:

是否有可能检测到网络中的环路 (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')])

您正在搜索简单循环,但上图中没有:

>>> list(nx.simple_cycles(g))
[]

所以你必须在无向图中搜索循环。您必须将图形转换为无向图。对于无向图,cycle_basis 函数似乎是您所需要的:

>>> nx.cycle_basis(g.to_undirected())
[['I5', 'C7', 'C6', 'I3', 'I2', 'I1']]

关于Python Networkx 检测循环/圆圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35683302/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com