Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用循环库查找图形的所有循环(快速python实现)_Python_Graph_Networkx_Cycle_Circuit - Fatal编程技术网

使用循环库查找图形的所有循环(快速python实现)

使用循环库查找图形的所有循环(快速python实现),python,graph,networkx,cycle,circuit,Python,Graph,Networkx,Cycle,Circuit,对于一个巨大的图,我需要一个有效的Python实现来查找图中的所有循环/回路。目前我使用的是package networkx函数,它“返回一个循环列表,这些循环构成G循环的基础。网络循环的基础是一个最小的循环集合,这样网络中的任何循环都可以写入基础中的循环总和。在这里,循环总和被定义为“异或”循环基是有用的,例如,当使用基尔霍夫定律推导电路方程时。” 在我的图中查找所有周期的有效方法(最好是预先实现的)是什么?也许我可以在此基础上构建一个实现(与周期相交)。函数是否满足您的要求?它似乎只省略了彼

对于一个巨大的图,我需要一个有效的Python实现来查找图中的所有循环/回路。目前我使用的是package networkx函数,它“返回一个循环列表,这些循环构成G循环的基础。网络循环的基础是一个最小的循环集合,这样网络中的任何循环都可以写入基础中的循环总和。在这里,循环总和被定义为“异或”循环基是有用的,例如,当使用基尔霍夫定律推导电路方程时。”


在我的图中查找所有周期的有效方法(最好是预先实现的)是什么?也许我可以在此基础上构建一个实现(与周期相交)。

函数是否满足您的要求?它似乎只省略了彼此“循环置换”的循环(即相同的一组节点,只是具有不同的开始和结束节点)。@Blckknght想把这变成一个答案吗?这看起来正是OP想要的。@Blckknght:谢谢你的快速回答
simple_cycles
看起来确实像我需要的,但是我使用了一个无向图。我可以通过为每个无向边添加两条相反方向的边,将其转换为有向图,但这不是很低效吗?我正在处理一个包含100000多个节点和200000条边的图,并且有400次类似的图。请尝试查看以下问题:。大多数答案都集中在有向案例上(我认为基本上是做
简单的_循环
),但其中一个答案详细讨论了无向案例。@PeterHeuz这个问题有用吗?