图论算法——精选推荐
- 格式:pdf
- 大小:83.35 KB
- 文档页数:2
图论算法
最⼤流最⼩割问题
最⼤流问题(maximum flow problem),⼀种组合最优化问题,就是要讨论如何充分利⽤装置的能⼒,使得运输的流量最⼤,以取得最好的效果。
在⼀个连通图中,如果删掉若⼲条边,使图不联通,则称这些边为此图的⼀个割集。在这些割集中流量和最⼩的⼀个称为最⼩割。
最⼤流最⼩割定理:⼀个图的最⼤流等于最⼩割。
概念:1、容量⽹络 - 流量⽹络 = 残留⽹络
例如:
这是⼀个容量⽹络(就是每条管道能流多少⽔)。他的⼀种可能的流量⾛向:
每条边只看斜杠左侧的数值,这些数值构成了流量⽹络。⽽残留⽹络就是每条边斜杠右侧减去斜杠左侧的值得到的⽹络。其中在残留⽹络中,S2->S4、S5->S4、S5->S6这些边都不存在了。在最终的残留⽹络中,是找不到S1->S6的新的增⼴路径的。2、反向边
1、
1. 2. 3. 4.
最⼤⼆分匹配
图的遍历
深度优先遍历dfs、⼴度优先遍历bfs。
最短路径算法
需要指定出发点
此算法使⽤了⼀种'松弛'的思想。算法的结果会把出发点到其他点的所有最短距离都计算出来。
最⼩⽣成树
1、Prime算法
算法思想:1).输⼊:⼀个加权连通图,其中顶点集合为V,边集合为E;
2).初始化:Vnew = {x},其中x为集合V中的任⼀节点(起始点),Enew = {},为空;
3).重复下列操作,直到Vnew = V:
a.在集合E中选取权值最⼩的边(这⼀步是对Vnew中的点都要进⾏⽐较),其中u为集合Vnew中的元素,⽽v不在Vnew集合当中,并且v∈V(如果存在有多条满⾜前述条件即具有相同权值的边,则可任意选取其中之⼀);b.将v加⼊集合Vnew中,将边加⼊集合Enew中;
4).输出:使⽤集合Vnew和Enew来描述所得到的最⼩⽣成树。
2、WelshPowell染⾊算法
不知道怎么⽤。
Python代码见: