图 Graph
图(Graph)用于表示物件与物件之间的关系,是图论的基本研究对象。一张图由一些小圆点(称为顶点或结点)和连结这些圆点的直线或曲线(称为边)组成。是网络结构的抽象模型。
定义
图有多种变体,包括简单图、多重图、有向图、无向图等,但大体上有以下两种定义方式:
二元组的定义:图 G 是一个有序二元组 (V, E),其中 V 称为顶集(Vertices Set),E 称为边集(Edges set),E 与 V 不相交。它们亦可写成 V(G)和 E(G)。E 的元素都是二元组,用 (x, y) 表示,其中 x, y ∈ V。
三元组的定义:图 G 是指一个三元组(V, E, I),其中 V 称为顶集,E 称为边集,E 与 V 不相交;I 称为关联函数,I 将 E 中的每一个元素映射到。如果 e 被映射到 (u, v),那么称边 e 连接顶点 u, v,而 u, v 则称作 e 的端点,u, v 此时关于 e 相邻。同时,若两条边 i, j 有一个公共顶点 u,则称 i, j 关于 u 相邻。
分类
- 有/无向图:如果给图的每条边规定一个方向,那么得到的图称为有向图,其边也称为有向边。在有向图中,与一个节点相关联的边有出边和入边之分,而与一个有向边关联的两个点也有始点和终点之分。相反,边没有方向的图称为无向图。
- 单图:一个图如果任意两顶点之间只有一条边(在有向图中为两顶点之间每个方向只有一条边);边集中不含环,则称为单图。
- 多重图:若允许两结点间的边数多于一条,又允许顶点通过同一条边和自己关联,则为多重图的概 念。它只能用“三元组的定义”。
图的术语
一个图 G = (V, E)
由以下元素组成:
- V:一组顶点
- E:一组边,连接 V 中的顶点
下图表示一个图:
- 由一条边连接在一起的顶点称为相邻顶点。比如,A 和 B 是相邻的,A 和 D 是相邻的,A 和 C 是相邻的,A 和 E 不是相邻的。
- 一个顶点的度是其相邻顶点的数量。比如,A 和其他三个顶点相连接,因此 A 的度为 3;E 和其他两个顶点相连,因此 E 的度为 2。
- 路径是顶点 v1, v2, ..., vk 的一个连续序列,其中 vi 和 vi+1 是相邻的。以上一示意图中的图为例,其中包含路径 A B E I 和 A C D G。
- 简单路径要求不包含重复的顶点。举个例子,A D G 是一条简单路径。除去最后一个顶点(因为它和第一个顶点是同一个顶点),环也是一个简单路径,比如 A D C A(最后一个顶点重新回到 A)。
- 如果图中不存在环,则称该图是无环的。如果图中每两个顶点间都存在路径,则该图是连通的。