Networkx-cycle
来源:互联网 发布:黑客学什么编程语言 编辑:程序博客网 时间:2024/06/16 10:31
1.cycle_basis
cycle_basis 的函数原型:
cycle_basis(G, root=None)
需要传入两个参数
假设我们创建一个图
import networkx as nximport matplotlib.pyplot as pltG=nx.Graph() # 创建一个无向图G.add_edges_from([(1,2),(2,3),(3,1),(2,4),(4,3),(3,1)]) # 构建边nx.draw_networkx(G,pos=nx.spring_layout(G))plt.show() # 画图nx.cycle_basis(G,1) # 计算 cycle basis
我们把这个图画出来,我们其实可以发现几个环,[1,2,3] ,[2,3,4],[1,2,3,4]
我们来看下这个实验结果,它得到的是两个环
少了一个[1,2,3,4]
这个是因为我们调用的这个API cycle_basis 决定的 因为它指的就是这个循环中的最小圈
一个网络周期的基础就是循环的最小的集合,网络中的任何循环都可以写成是基于每个周期基础 cycle basis 的总和。
但是这个函数只适用与无向图。
2. simple_cycles
simple_cycles 找到有向图中的基本回路。 注意是找有向图中的基本回路。
一个简单simple 的周期,或者说是一个基本的回路(elementary circuit)。如果两个回路有着不同的循环排列,那么这两个基本的回路是不同的。
现在我们来构建一个图之后我们来尝试一下使用simple_cycles() 这个函数
这个函数的函数原型是:
simple_cycles(G)
G=nx.DiGraph()G.add_edges_from([(1,2),(2,3),(3,2),(3,4),(4,2),(2,5),(5,6)])nx.draw_networkx(G,pos=nx.spring_layout(G))plt.show()
我们可以得到下面这个图
我们可以查看一下结果
在这里我们就不能使用我们的cycle_basis() 这个方法了,因为我们在这里构建的是有向图
在这里我们还引入了我们的nx.find_cycle(G)
它是通过深度优先遍历然后返回一个循环的边。得到的结果是边。
阅读全文
0 0
- Networkx-cycle
- networkx
- networkx
- NetworkX
- NetworkX画图
- 安装networkx
- networkx笔记
- networkx笔记
- Networkx绘图
- NetworkX使用手册
- Networkx参考手册
- NetworkX Study
- networkx学习
- python networkx学习
- windows7安装networkx
- networkx的文章
- Ubuntu安装Networkx
- [Python]networkx入门
- Spring Boot+Spring Security+JWT 实现 RESTful Api 权限控制
- IDEA 配置tomcat
- Qt 之 Query Model Example 解析
- WKWebView的简单使用(添加请求头)
- chapter20霍夫变换
- Networkx-cycle
- 排序
- session机制小解
- 112. Path Sum
- TypeScript入门知识一(字符串特性)
- mkdir -p
- 保研复习2最长公共子序列
- 安卓常用命令总结
- 文字滚动