图论基础及相关算法详解
1. 图的基本概念
1.1 简单图
简单图是一个二元组 (G = (V, E)),其中 (V) 是有限的顶点集,(E) 是有限的边集,且 (E) 中的每个元素都是 (V) 的一个二元子集。例如,一个简单图 (G),其顶点集 (V = {a, b, c, d}),边集 (E = {ab, ac, ad, bd, cd}),这个图有 4 个顶点和 5 条边。简单图的定义排除了环(loop)和多重边(multiple edges)的存在,因为边是二元集,环只涉及一个顶点,且集合不允许重复元素。
1.2 图的术语
- 子图 :若 (G = (V, E)) 是一个图,(G_c = (V_c, E_c)) 且 (V_c \subseteq V),(E_c \subseteq E),则 (G_c) 是 (G) 的子图。若 (V_c = V),则 (G_c) 是 (G) 的生成子图(spanning subgraph)。
- 顶点的度 :一个顶点的度(degree)是指与该顶点相关联的边的数量。例如,在上述图中,顶点 (a) 的度为 3,顶点 (b) 的度为 2。
- 完全图 :完全图是一种简单图,其中任意两个顶点之间都有一条边相连。对于 (n) 个顶点的完全图,其边的数量为 (n(n - 1)/2)。例如,4 个顶点的完全图,边数为 (4(4 - 1)/2 = 6)。
1.3 路径和循环
- 路径