相关术语
图
图:graph
顶点:vertex
边:edge
定义:图由一个顶点和边集组成,其中边将一对不同的顶点连接在一起(没对顶点之间至多有一条边连接)。
简单图:
不允许有重复边(平行边),不允许出现顶点连接到自身的边(自环),的图称为简单图。
性质: 有 V 个顶点的简单图最多有(V * V - V) / 2 = V * (V - 1) / 2
条边。
多重图:
包含平行边的图。
子图
子图:subgraph
定义:是组成图的边(及相关顶点)的一个子集。
导出子图:
定义:一个图的导出子图(induced subgraph)是指,由该图顶点的一个子集和该图中两端均在该子集的所有边的集合组成的图。
路径
路径:
定义:路径(path)是图中顶点的一个序列,除了第一个顶点,后面每一个后继顶点都与前驱顶点相邻接。
简单路径(simple path):
定义:顶点和边都不相同的路径。
环(cycle):
定义:第一个顶点和最后一个顶点相同的一条简单路径。
回路(cyclic path):
定义:表示第一个顶点和最后一个顶点相同的一条路径。
周游路径(tour):
定义:包含图中每个顶点的回路。
连通图
连通图(connect graph):
定义:图中每个顶点到另外一个顶点都存在路径,则称该图为一个连通图。
连通分量(connected component):
定义:不连通的图是由连通分量组成。
下图中是由三个连通分量组成的。
极大连通子图:
定义:连通图本身就是一个及大连通子图。非连通图是由若干个极大连通子图构成的,每一个连通分量,就是一个极大连通图子图。
在极大连通子图中加入任何一个顶点都会导致该图不再连通,所以称之为极大连通子图
,可以有环,非树
强连通图
强连通图
定义:在
有向图中
, 对于图中任意一对顶点之间都存在至少一条路径。
性质:有 N 个顶点的强连通图,至少有 N 条边,最多有 N(N - 1) 条边。
极大强连通子图
定义:
- 强连通图的极大强连通子图,是它本身。
- 非强连通图的有向图中,有多个极大强连通子图。也叫强连通分量。
下图中,整个有向图不是强连通图。红圈内的,是该有向图的三个强连通分量
。
树
树(tree)
定义:无环连通图。
性质:N 个结点的树,有 N - 1条边。
森林(forest)
定义:树的集合。
生成树(spanning tree)
定义:包含
连通图
所有顶点的无环子图,称为该连通图的一颗生成树。一个连通图
的生成树不唯
生成森林(spanning forest)
定义:包含
图
的所有顶点的无环子图,称之为该图
的生成森林。
当该图不连通时,它的连通分量的数量,就是生成森林中树的颗树。
极小连通子图
极小连通子图
定义:一个连通图的生成
树
,是它的一个极小连通子图。
删除极小连通子图中的任何一条边,都会无法构成一颗树
所以,称之为极小连通子图。
稀疏图和稠密图
稠密度(density)
定义:
- 一个图中,与顶点相连的边,叫做该顶点的度。总边数为 E 的图中, 所有顶点的度之和,为 2E
- G{E, V} 中的稠密度,为它的平均顶点度 2E / V
稠密图(dense graph)
定义:稠密度与 V 成正比的图。也就是,E 与 V^2 成正比的图。或者说,边的数量接近 V^2
稀疏图(sparse graph)
定义:有很少条边,边的数量远少于 V^2 的图。
了解一个是稀疏的还是稠密的,对选择处理图的算法具有重要作用。
- 实际中,我们遇到的大多数图都是稀疏的,所以常用接邻表来表示图,而不是接邻矩阵。
- 当解决一个问题可以用 V^2 或者 ElgE 的算法时。第一个算法更加适合稀疏图,第二个算法更加适合稠密图。
其他
二分图(bipartite graph)
定义:一个其顶点可以划分成两个集合的图,并且其中任何一条边所连接的两个顶点,均处于两个不同的集合中。
有向无环图(directed acyclic graphDAG
)
定义:是一个不含有向环的有向图。
加权图(weighted graph)
定义:除了顶点,和边的信息外,每一条边还具有权值的图。
入度和出度(indegree and outdegree)
定义:
- 以该顶点为目的点的边,叫该顶点的入度。
- 以该顶点为起点的边,叫该顶点的出度。