使用循环库查找图形的所有循环(快速python实现)
对于一个巨大的图,我需要一个有效的Python实现来查找图中的所有循环/回路。目前我使用的是package networkx函数,它“返回一个循环列表,这些循环构成G循环的基础。网络循环的基础是一个最小的循环集合,这样网络中的任何循环都可以写入基础中的循环总和。在这里,循环总和被定义为“异或”循环基是有用的,例如,当使用基尔霍夫定律推导电路方程时。”使用循环库查找图形的所有循环(快速python实现),python,graph,networkx,cycle,circuit,Python,Graph,Networkx,Cycle,Circuit,对于一个巨大的图,我需要一个有效的Python实现来查找图中的所有循环/回路。目前我使用的是package networkx函数,它“返回一个循环列表,这些循环构成G循环的基础。网络循环的基础是一个最小的循环集合,这样网络中的任何循环都可以写入基础中的循环总和。在这里,循环总和被定义为“异或”循环基是有用的,例如,当使用基尔霍夫定律推导电路方程时。” 在我的图中查找所有周期的有效方法(最好是预先实现的)是什么?也许我可以在此基础上构建一个实现(与周期相交)。函数是否满足您的要求?它似乎只省略了彼
在我的图中查找所有周期的有效方法(最好是预先实现的)是什么?也许我可以在此基础上构建一个实现(与周期相交)。函数是否满足您的要求?它似乎只省略了彼此“循环置换”的循环(即相同的一组节点,只是具有不同的开始和结束节点)。@Blckknght想把这变成一个答案吗?这看起来正是OP想要的。@Blckknght:谢谢你的快速回答
simple_cycles
看起来确实像我需要的,但是我使用了一个无向图。我可以通过为每个无向边添加两条相反方向的边,将其转换为有向图,但这不是很低效吗?我正在处理一个包含100000多个节点和200000条边的图,并且有400次类似的图。请尝试查看以下问题:。大多数答案都集中在有向案例上(我认为基本上是做简单的_循环
),但其中一个答案详细讨论了无向案例。@PeterHeuz这个问题有用吗?