图论基本知识

本文主要参考于《离散数学及其应用》(傅彦 著)中的图论篇


图的基本概念

图的定义

一个 图(graph) 是一个序偶 < V , E > <V,E>,记为 G = < V , E > G = G=<V,E>,其中:
(1) V = v 1 , v 2 , . . . , v n V = { v_1, v_2, ..., v_n} V=v1,v2,...,vn 是有限非空集合, v i v_i vi称为 节点(nodal point),简称 点(point) V V V 称为 节点集(nodal set).
(2) E E E 是有限集合,称为 边集(frontier set) E E E 中的每个元素都有 V V V中的节点对与之对应,称之为 边(edge).

图的表示

  1. 图的集合表示

  2. 图的图形表示

  3. 图的矩阵表示
    优点:便于用代数知识来研究图的性质,特别是便于用计算机来处理。
    邻接矩阵(adjacency matrix)

    设图 G = < V , E > G = G=<V,E>, 其中 V = v 1 , v 2 , . . . , v n V = {v_1, v_2, ..., v_n} V=v1,v2,...,vn,并假定节点已经有了从 v 1 v_1 v1 v n v_n vn的次序,则 n n n 阶方阵 A G = ( a i j ) n × n A_G = (a_{ij})_{n \times n} AG=(aij)n×n称为 G G G的邻接矩阵,其中
    a i j = { 1 , 若 ( v i , v j ) ∈ E  或  < v i , v j > ∈ E 0 , 否则 a_{ij} = \begin{cases} 1, & \text{若$(v_i,v_j) \in E$ 或 $ \in E$} \\ 0, & \text{否则} \end{cases} aij={1,0,(vi,vj)E  <vi,vj>∈E否则

    1. 两点之间有边连接时,在邻接矩阵中对应的值为1,否则为0.
    2. 无向图的邻接矩阵: A G = A G T A_G = A_G^T AG=AGT
    3. G = < V , E > G = G=<V,E>的邻接矩阵依赖于 V V V中元素的次序,对于 V V V中各元素不同的次序,可得到同一图 G G G的不同的邻接矩阵。但是 G G G的任何一个邻接矩阵可以从 G G G的另一个邻接矩阵中通过交换某些行和相应的列而得到,其交换过程与将一个排序中的节点交换位置变为另一个排序是一致的。如果我们略去由节点排序不同而引起的邻接矩阵的不同,则图与邻接矩阵之间是一一对应的。

图的操作

设图 G = < V , E > G = G=<V,E>
(1) 设 e ∈ E e \in E eE,用 G − e G - e Ge表示从 G G G中去掉边 e e e得到的图,称为删除边 e e e
(2) 设 v ∈ V v \in V vV,用 V − v V - v Vv表示从 G G G中去掉节点 v v v v v v关联的所有边得到的图,称为删除节点 v v v
(3) 设 e = ( u , v ) ∈ E e=(u,v) \in E e=(u,v)E,用 G \ e G \backslash e G\e表示从 G G G中删除边 e e e,将 e e e的两个端点 u , v u,v u,v用一个新的节点 w w w代替,使 w w w关联除 e e e外的 u u u v v v关联的一切边,称为边 e e e收缩。一个图 G G G可以收缩为图 H H H,是指 H H H可以从 G G G经过若干次边的收缩而得到。
(4) 设 u , v ∈ V u,v \in V u,vV u , v u,v u,v可能相邻,也可能不相邻),用 G ⋃ ( u , v ) G \bigcup (u,v) G(u,v)表示在 u , v u,v u,v之间加一条边 ( u , v ) (u,v) (u,v),称为加新边。

邻接点与邻接边

在图$G = 中,
若两个节点 v i v_i vi v j v_j vj 是边 e e e 的端点,则称 v i v_i vi v j v_j vj 互为 邻接点(adjacent point),否则 v i v_i vi v j v_j vj称为不邻接的;
具有公共节点的两条边称为 邻接边(adjacent edge)
两个端点相同的边称为 环(ring)自回路(self-loop)
图中不与任何节点相邻的节点称为 孤立节点(isolated point)
仅由孤立节点组成的图称为 零图(null graph)
仅含一个节点的零图称为 平凡图(trivial graph)
含有 n n n个节点, m m m条边的图称为 ( n , m ) (n, m) (n,m)

  1. 环的方向是无意义的,因此,把它看成有向边或无向边均可
  2. 环的有无,不会使图论中的各个定理发生重大变化,所以许多场合都略去环
  3. 零图中无任何边,其边集为空,其邻接矩阵的所有元素均为0.

图的分类

  1. 按边的有无方向分类

每条边都是无向边的图称为无向图(undirected graph)
每条边都是有向边的图称为有向图(directed graph)
有些边是无向边,有些边是有向边的图称为混合图(mixed graph)

  1. 按有无平行边分类

在有向图中,两节点间(包括节点自身间)若有同始点和同终点的几条边,则这几条边称为 平行边(parallel edge)
在无向图中,两节点间(包括节点自身间)若有几条边,则这几条边称为 平行边(parallel edge)
两节点 a , b a,b a,b间相互平行的边的条数称为边 ( a , b ) (a,b) (a,b) < a , b > <a,b>重数(repeated number)
含有平行边的图称为 多重图(multigraph)
非多重图称为 线图(line graph)
无环的线图称为 简单图(simple graph)

简单图是一种特殊的线图,仅仅无环而已

  1. 按边或节点是否含权分类

赋权图(weight graph) G G G是一个三重组 < V , E , g > <V,E,g>或四重组 < V , E , f , g > <V,E,f,g>,其中 V V V是节点集合, E E E是边的集合, f f f是从 V V V到非负实数集合的函数, g g g是从 E E E到非负实数集合的函数。

子图与补图

设有图 G = < V , E > G = G=<V,E>和图 G 1 = < V 1 , E 1 > G_1 = G1=<V1,E1>
(1) 若 V 1 ⊆ V , E 1 ⊆ E V_1 \subseteq V, E_1 \subseteq E V1V,E1E,则称 G 1 G_1 G1 G G G子图(subgraph),记为 G 1 ⊆ G G_1 \subseteq G G1G
(2) 若 G 1 ⊆ G G_1 \subseteq G G1G,且 G 1 ≠ G G_1 \neq G G1=G(即 V 1 ⊂ V V_1 \subset V V1V E 1 ⊂ E E_1 \subset E E1E),则称 G 1 G_1 G1 G G G真子图(proper subgraph),记为 G 1 ⊂ G G_1 \subset G G1G
(3) 若 V 1 = V , E 1 ⊆ E V_1 = V, E_1 \subseteq E V1=V,E1E,则称 G 1 G_1 G1 G G G生成子图(spanning subgraph)
(4) 设 V 2 ⊆ V V_2 \subseteq V V2V V 2 ≠ ∅ V_2 \neq \emptyset V2=,以 V 2 V_2 V2为节点集,以两个端点均在 V 2 V_2 V2中的边的全体为边集的 G G G的子图,称为 V 2 V_2 V2导出的 G G G的子图,简称 V 2 V_2 V2导出子图(induced subgraph)

  1. 每个图都是它自身的子图、生成子图和导出子图
  2. 简单图 G ( n , m ) G(n,m) G(n,m)的生成子图个数为2的 m m m次幂
  3. 导出子图 G 2 G_2 G2 V 2 ⊆ V V_2 \subseteq V V2V,但对于 V 2 V_2 V2中任一顶点,只要在原图 G G G中有对应边,那么就要出现在 E 2 E_2 E2中。可以理解为, G 2 G_2 G2是通过几次删除 G G G中的节点得到的。

G = < V , E > G= G=<V,E>为一个具有 n n n个节点的无向简单图,如果 G G G中任意两个节点间都有边相连,则称 G G G无向完全图(undirected complete graph),简称 G G G完全图(complete graph),记为 K n K_n Kn;
G = < V , E > G= G=<V,E>为一个具有 n n n个节点的有向简单图,如果 G G G中任意两个节点间都有两条方向相反的有向边相连,则称 G G G有向完全图(directed complete graph),在不发生误解的情况下,也记为 K n K_n Kn

  1. 对于完全图来说,其邻接矩阵除主对角元素为0外,其他元素均为1.
  2. 无向完全图 K n K_n Kn的边数为 C ( n , 2 ) = 1 2 n ( n − 1 ) C(n,2)=\frac{1}{2}n(n-1) C(n,2)=21n(n1),有向完全图 K n K_n Kn的边数为 P ( n , 2 ) = n ( n − 1 ) P(n,2)=n(n-1) P(n,2)=n(n1)

G = < V , E > G= G=<V,E>为简单图, G ′ = < V , E 1 > G'= G=<V,E1>为完全图,则称 G 1 = < V , E 1 − E > G_1= G1=<V,E1E> G G G补图(complement of graph),记为 G ‾ \overline{G} G

  1. G G G与其补图的节点集是相同的,边集是相对于完全图的边集为全集的补集。
  2. 完全图的补图为 n n n个节点的零图。
  3. 若设简单图 G G G的邻接矩阵 A = ( a i j ) n × n A=(a_{ij})_{n \times n} A=(aij)n×n,则它的补图 G ‾ \overline{G} G的邻接矩阵 A ‾ = ( a ‾ i j ) n × n \overline{A}=(\overline{a}_{ij})_{n \times n} A=(aij)n×n有:
    a i j ‾ = { 1 − a i j , i ≠ j 0 , i = j \overline{a_{ij}}= \begin{cases} 1- a_{ij}, & i \neq j \\ 0, & i = j \end{cases} aij={1aij,0,i=ji=j

节点的度数与握手定理

(1) 图 G = < V , E > G= G=<V,E>中以节点 v ∈ V v \in V vV为端点的边数(有环时计算两次)称为节点 v v v度数(degree),简称,记为 d e g ( v ) deg(v) deg(v)
(2) 有向图 G = < V , E > G= G=<V,E>中以节点 v v v为始点的边数称为 v v v出度(out-degree),记为 d e g + ( v ) deg^+(v) deg+(v);以节点 v v v为终点的边数称为 v v v入度(in-degree),记为 d e g − ( v ) deg^-(v) deg(v)。显然 d e g ( v ) = d e g + ( v ) + d e g − ( v ) deg(v) = deg^+(v) + deg^-(v) deg(v)=deg+(v)+deg(v)
(3) 对于图 G = < V , E > G= G=<V,E>,度数为1的节点称为 悬挂节点(hanging point),以悬挂节点为端点的边称为 悬挂边(hanging edge)

在邻接矩阵中:

  1. G G G是无向图,则 A A A i i i行元素是由节点 v i v_i vi所关联的边所决定,其中为1的元素数目等于 v i v_i vi的度数,即 d e g ( v i ) = ∑ k = 1 n a i k + a i i deg(v_i) = \sum_{k=1}^{n} a_{ik} + a_{ii} deg(vi)=k=1naik+aii,同理 d e g ( v i ) = ∑ k = 1 n a k i + a i i deg(v_i) = \sum_{k=1}^{n} a_{ki} + a_{ii} deg(vi)=k=1naki+aii
  2. G G G是无向图,则 A A A i i i行元素是由节点 v i v_i vi为始点的边所决定,其中为1元素数目等于 v i v_i vi的出度,即 d e g + ( v i ) = ∑ k = 1 n a i k deg^+(v_i) = \sum_{k=1}^{n} a_{ik} deg+(vi)=k=1naik A A A i i i列元素是由节点 v i v_i vi为终点的边所决定,其中为1元素数目等于 v i v_i vi的入度,即 d e g − ( v i ) = ∑ k = 1 n a k i deg^-(v_i) = \sum_{k=1}^{n} a_{ki} deg(vi)=k=1naki。即:
    d e g + ( V ) = A ⋅ [ 1 ] n × 1 deg^+(V) = A \cdot [1]_{n \times 1} deg+(V)=A[1]n×1
    d e g − ( V ) = A T ⋅ [ 1 ] n × 1 deg^-(V) = A^T \cdot [1]_{n \times 1} deg(V)=AT[1]n×1
    d e g ( v ) = d e g + ( v ) + d e g + ( V ) = ( A + A T ) ⋅ [ 1 ] n × 1 deg(v) = deg^+(v) + deg^+(V) = (A + A^T) \cdot [1]_{n \times 1} deg(v)=deg+(v)+deg+(V)=(A+AT)[1]n×1

图中节点度数的总和等于边数的二倍,即设图 G = < V , E > G= G=<V,E>,则有:
∑ v ∈ V d e g ( v ) = 2 ∣ E ∣ \sum_{v \in V} deg(v) = 2 |E| vVdeg(v)=2E

证明:因为每条边都有两个端点(环的两个端点相同),所以加上一条边就使得个节点的度数之和增加2. 称为 图论的基本定理握手定理

推论:

  1. 图中度数为奇数的节点个数为偶数
  2. 有向图中个各节点的出度之和等于各节点的入度之和,等于边数,即设有向图 G = < V , E > G= G=<V,E>,则有
    ∑ v ∈ V d e g + ( v ) = ∑ v ∈ V d e g − ( v ) = ∣ E ∣ \sum_{v \in V}deg^+(v) = \sum_{v \in V}deg^-(v) = |E| vVdeg+(v)=vVdeg(v)=E

度数序列:

V = v 1 , v 2 , . . . , v n V={v_1, v_2,..., v_n} V=v1,v2,...,vn为图 G G G的节点集,称 ( d e g ( v 1 ) , d e g ( v 2 ) , . . . , d e g ( v n ) ) (deg(v_1), deg(v_2),..., deg(v_n)) (deg(v1),deg(v2),...,deg(vn)) G G G度数序列(degree sequence)

图的同构

设两个图 G = < V , E > G= G=<V,E> G ′ = < V ′ , E ′ > G'= G=<V,E>,如果存在双射函数 g : V → V ′ g: V \rightarrow V' g:VV,使得对于任意的 e = ( v i , v j ) ( 或者 < v i , v j > ) ∈ E e=(v_i, v_j)(\text{或者} ) \in E e=(vi,vj)(或者<vi,vj>)E当且仅当 e ′ = ( g ( v i ) , g ( v j ) ) ( huozhe < g ( v i ) , g ( v j ) > ) ∈ E ′ e'=(g(v_i), g(v_j))(\text{huozhe} ) \in E' e=(g(vi),g(vj))(huozhe<g(vi),g(vj)>)E,并且 e e e e ′ e' e的重数相同,则称 G G G G ′ G' G同构(isomor-phism),记为 G ≅ G ′ G\cong G' GG

  1. 形象地说,若图的节点可以任意挪动位置,而边是完全弹性的,只要在不拉断的条件下,一个图可以变形为另一个图,那么这个两个图是同构的
  2. 两个图同构的 必要条件
    1) 节点数目相同;
    2) 边数相同;
    3) 度数相同的节点数相同。

通路、回路与连通性

你可能感兴趣的:(数学基本知识)