本节内容来源于Network Flows Theory, Algorithms, and Applications2.2节,主要介绍图论中的一些基本概念。
1. 定向图和网络(Directed Graphs and Networks)、无向图和网络(Undirected Graphs and Networks):G=(N,A),N表示节点(nodes),A表示弧(arcs)。
图1 定向图和无向图
2. 弧的相关概念
1)头(head)和尾(tail):弧的入、出节点。
2)多弧(multiarcs):两个或两个以上相同头和尾的弧称为多弧。
3)回路(loops):头尾相接的弧称为回路。
3. 节点的相关概念
1)入度(indegree)和出度(outdegree):进节点的弧数和出节点的弧数。
2)弧邻接表(the arc adjacency list) :从一个节点出发的所有弧的集合。
3)节点邻接表(the node adjacency list):与该节点相邻的所有节点的集合。
4. 子图(subgraph):节点和弧都是原图的子集而构成的新图称为子图。
5. 线路(walk):一系列弧的集合。
轨迹(trail):弧不重复的线路。
途径(path):节点和弧都不重复的线路。
环(cycle):在一个有向图中,从一个节点开始,沿着弧前进,最终回到起始节点。这样一个行进的路径称为环。
有向线路(directed walk)、有向途径(directed path)、有向环(directed cycle)
图2 线路
图3 环
6. 连通性(connectivity):每对节点都相互连通的图称为连通图,否则称为非连通的。
强连通性(strong connectivity):如果一个连通图的任意两个节点间至少有一个有向路径连通,则称为强连通的。
图4 连通图和非连通图
7. 分割(cut):分割即为把节点集N分为两类S和N-S。如图,S = {l, 2, 3} and N-S = {4, 5, 6, 7}。
s-t分割(s-t cut):如果节点s和节点t分属于两类节点,则称为s-t cut;否则不是s-t cut。
图5 分割
8. 树(tree):不含循环的连通图称为树。树的性质:
1)n个节点的树一定有n-1个弧;
2)一棵树至少有2个叶节点;
3)树的任意两个节点被唯一一条路径连接。
子树(subtree):一棵树的连通子图称为子树。
有根树(rooted tree):有一个被称为根的特殊节点的树称为有根树。
图6 树
图7 有根树
有向输入树(directed in-tree):除节点1外,每个节点的出度是1。
有向输出树(directed out-tree):除节点1外,每个节点的入度是1。
图8 有向输出树和有向输入树
生成树(spanning tree):对于一个连通图G,能够覆盖图中所有节点,并且不存在回路的子图。
图9 图5所示树的生成树
9. 森林(forest):不含环(cycle)的图是森林。或者说,森林是树的集合。
图10 森林
10. 基本环(fundamental cycles):设T是G的生成树。将任意不属于此树的弧加到生成树T上,将会产生一个环。我们把这样的环称为G相对于T的基本环。
基本分割(fundamental cuts):设T是G的生成树。将树上的任意弧删除,就会导致生成树T分割为互不相连的两个子树T1和T2。此弧的两个端点分属于两个子树。我们将这样的分割称为G相对于T的基本分割。