图论算法——精选推荐

  • 格式: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代码见: