图论
文章平均质量分 57
FounderWatts
事情永远没有想象的那么好,当然也没那么坏。
展开
-
图论的基本定理
1.握手定理:点度之和为边数的二倍 推论:奇数度的节点数必为偶数 2.一个简单有向图是强连通的,当且仅当G中有一条包含每个节点的有向闭道路 3.在简单有向图中,每个节点位于且仅位于一个强分图中。 4.设G=(V,E)是一个n阶的简单有向图,A是G的邻接矩阵。对k>=1,令,则表示G从Vi到Vj的长度为k的有向道路的数目。 推论1:使>0的最小值k,是G从Vi到Vj的距离d(Vi,Vj)。原创 2016-04-08 19:49:06 · 6215 阅读 · 0 评论 -
从原理看Kruskal与Prim求最小生成树
从原理看Kruskal与Prim求最小生成树最小生成树:连接图中所有节点,使各边权重之和最小的树(因为权重之和最小,所以无环)。Kruskal算法与Prim算法都是运用的贪心算法的思想进行求解,贪心算法是每步都取最优,最后使整体最优。其中,如何判断是不是最优很关键,其次,如何证明贪心的整体最优是算法正确性的保证。接下来,我将从上述两点来剖析这两个算法。基本定义:无向图G=(V,E)的一个切割(S,V原创 2016-04-26 20:50:31 · 730 阅读 · 0 评论 -
使用深度优先搜索对有向无环图进行拓扑排序
拓扑排序是图G中所有节点的一种线性次序,该次序满足以下条件:如果图G包含边(u,v),则节点u在拓扑排序中处于节点v的前面。 在实际生活中有很多应用需要用有向无环图来指明事件的优先次序。扫原创 2016-04-14 15:36:11 · 14372 阅读 · 0 评论 -
通过深度优先搜索求强连通分量
基本步骤: 1.对图G进行深度优先搜索,记录每个节点的d,f; 2.求图G的转置Gt(所有节点不变,边的方向变反); 3.按照步骤一所求的节点的f,按照降序,对Gt进行深度优先搜索,得到的深度优先森林,森林中深度为1所形成的每个树,即为各个强连通分量原创 2016-04-14 15:59:51 · 2667 阅读 · 0 评论 -
所有节点对最短路径
我们这里讲解三个算法,第一个是利用传统的动态规划,第二个也是个动态规划算法,但是基于一种观察结果,他就是warshall算法,第三个算法是将问题转换为没有负数权重的图,再对每个节点调用Dijkstra算法,他就是Johnson算法。原创 2016-05-18 13:04:54 · 17243 阅读 · 0 评论 -
最大流问题
最大流问题比较好理解,就是给出一个图,每条边有限制的最大容量,要求从起始节点输出到结束节点,所有中间节点的输入与输出相等,求一条能带来最大流量的路径。原创 2016-05-18 13:11:12 · 882 阅读 · 0 评论 -
单源最短路径
单源最短路径 单源最短路径是指给定图中的一个源节点,求出从源节点到其他任意节点的最短距离及路径。 针对不同的情况,这里展示了三种算法,分别是用于“可有环,权重可正可负”的Bellman-Ford算法,用于“不可有环,权重可正可负”的有向无环图中的单源最短路径算法;用于“可有环,但权重必须非负”的Dijkstra算法。原创 2016-05-07 23:06:36 · 3900 阅读 · 0 评论