一.问题类
https://www.cnblogs.com/wushaogui/p/9222828.html
1.路径问题
-
柯尼斯堡七桥问题:在所有桥都只能走一遍的前提下,如何才能把这个地方所有的桥都走遍?
-
哈密顿回路问题:哈密顿图是一个无向图,由指定的起点前往指定的终点,途中经过所有其他节点且只经过一次。
-
最小生成树问题:有一个有权无向图,找到路径把所有顶点连起来,并保证边上权重和最小
-
中国邮路问题:此问题为在一个连通的无向图中找到一最短的封闭路径,且此路径需通过所有边至少一次。
-
最短路问题:最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。
-
斯坦纳树:最小生成树是在给定的点集和边中寻求最短网络使所有点连通。而最小斯坦纳树允许在给定点外增加额外的点,使生成的最短网络开销最小。
-
旅行商问题(NP困难):假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。
2.网络流与匹配
2.1最大流问题:
最小费用最大流问题: 在一个网络中每段路径都有“容量”和“费用”两个限制的条件下,此类问题的研究试图寻找出:流量从A到B,如何选择路径、分配经过路径的流量,可以达到所用的费用最小的要求。
在实际中:n辆卡车要运送物品,从A地到B地。由于每条路段都有不同的路费要缴纳,每条路能容纳的车的数量有限制,如何分配卡车的出发路径可以达到费用最低,物品又能全部送到。
3.染色
3.1四色问题:每个无外飞地的地图都可以用不多于四种颜色来染色,而且不会有两个邻接的区域颜色相同
二.算法类
https://www.cnblogs.com/wushaogui/p/9237445.html
1.戴克斯特拉算法(D.A)
2.最短路径快速算法(SPFA)
3.弗洛伊德算法(Floyd-Warshall)
解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权(但不可存在负权回路)的最短路径问题,同时也被用于计算有向图的传递闭包.
4. 克鲁斯卡尔算法(K.A)
把所有边选出来,并按照权重进行排序,从权重最小边开始选择,每次选择一条边,每次选择的边不能与原来的边构成环,知道选择的边包含所有的节点.
5. 普里姆算法(P.A)
加权连通图里搜索最小生成树
6. 拓扑排序算法(TSA)
原理:
重复以下两个步骤,即可以得到拓扑序列.
1.在有向图中任意选择一个无前驱的节点,并且作为当前的拓扑序列输出
2.删除与 前面选择的无前驱节点 的所有关联的边
下面是得到其中一个拓扑序列的过程:
第一步:a是无前驱的节点,选择
第二步:a去掉后,b,c为无前驱节点,任选一个,假设选择c
第三步:a,c去掉,只有b为无前驱节点,选择
第四步:a,c,b去掉后,d,e为无前驱节点,任选一个,假设选择d
第五步:a,c,b,d去掉后,e,f为无前驱节点,任选一个,假设选择f
第六步:a,c,b,d,f去掉后,只有e为无前驱节点,选择
第六步:a,c,b,d,f,e去掉后,只有g为无前驱节点,选择
第七步:所有节点遍历完成,得到拓扑序列
最终得到的拓扑序列为a->c->b->d->f->e->g
7.
关键路径算法(CPA)
描述:
关键路径: 在AOE网中,从始点到终点具有最大路径长度(该路径上的各个活动所持续的时间之和)的路径称为关键路径,一个AOE网中不一定只有一条关键路径,可能会有多条。
关键活动: 关键路径上的活动(边)。
由于AOE网中的某些活动能够同时进行,故完成整个工程所必须花费的时间应该为始点到终点的最大路径长度。关键路径长度是整个工程所需的最短工期。