图论详细至定义定理之入门

一、图的基本概念

1.1 图的定义


定义1:图 G = ( V , E ) G=(V,E) G=(V,E) 是一个系统,其中V是非空有限集合,V中的元素称为结点;E是有限集合,E中的元素称为边;且E中的元素与V中的一对元素相连系。

例1:有四个城市 v 1 , v 2 , v 3 , v 4 v_{1},v_{2},v_{3},v_{4} v1,v2v3,v4,其中 v 1 与 v 2 v_{1}与v_{2} v1v2, v 1 与 v 4 v_{1}与v_{4} v1v4, v 2 与 v 3 v_{2}与v_{3} v2v3有公路相连。

答:上述事实可用图 G = ( V , E ) G=(V,E) G=(V,E)表示。图中结点集合V = { v 1 , v 2 , v 3 , v 4 v_1,v_2,v_3,v_4 v1,v2,v3,v4},图中边的集合E = { v 1 与 v 2 之 间 的 边 , v 1 与 v 4 之 间 的 边 , v 2 与 v 3 之 间 的 边 v_1与v_2之间的边,v_1与v_4之间的边,v_2与v_3之间的边 v1v2v1v4,v2v3}

例2:有四个程序,他们之间存在如下的调用关系: P 1 能 调 用 P 2 , P 2 能 调 用 P 3 , P 2 能 调 用 P 4 P_1能调用P_2,P_2能调用P_3,P_2能调用P_4 P1P2P2P3P2P4

答:上述事实也可用图 G = ( V , E ) G=(V,E) G=(V,E)表示。图中结点集合V = { P 1 , P 2 , P 3 , P 4 P_1,P_2,P_3,P_4 P1,P2,P3,P4},图中边的集合E = { P 1 到 P 2 的 边 , P 2 到 P 3 的 边 , P 2 到 P 4 的 边 P_1到P_2的边,P_2到P_3的边,P_2到P_4的边 P1P2P2P3P2P4}


定义2:图 G = ( V , E ) G=(V,E) G=(V,E)是一个系统,其中V是非空有限集合,V中的元素称为结点;E是集合V上的关系 E ⊆ V × V E \subseteq V \times V EV×V,E中的元素称为边。

例3:同例1,例2。

答:例1可表示为:V = { v 1 , v 2 , v 3 , v 4 v_1,v_2,v_3,v_4 v1,v2,v3,v4},E = { ( v 1 , v 2 ) , ( v 2 , v 1 ) , ( v 1 , v 4 ) , ( v 4 , v 1 ) , ( v 2 , v 3 ) , ( v 3 , v 2 ) (v_1,v_2),(v_2,v_1),(v_1,v_4),(v_4,v_1),(v_2,v_3),(v3_,v_2) (v1,v2),(v2,v1),(v1,v4),(v4,v1),(v2,v3),(v3,v2)}。

例2 可表示为: V = { P 1 , P 2 , P 3 , P 4 } , E = { ( P 1 , P 2 ) , ( P 2 , P 3 ) , ( P 2 , P 4 ) } V = \{P_1,P_2,P_3,P_4\},E = \{(P_1,P_2),(P_2,P_3),(P_2,P_4)\} V={ P1,P2,P3,P4},E={ (P1P2),(P2P3),(P2P4)}


定义3:设V是非空有限集合 ∑ \sum 是一个标号集合, E ⊆ V × ∑ × V E \subseteq V \times \sum \times V EV××V, 称 G = ( V , ∑ , E ) G = (V, \sum, E) G=(V,,E)为一个图。称V中的元素为G的结点;设 u , v ∈ V u, v \in V u,vV, σ ∈ ∑ \sigma \in \sum σ, 若 ( u , σ , v ) ∈ E (u,\sigma,v)\in E u,σ,vE,则称 ( u , σ , v ) (u,\sigma,v) u,σ,v为G中的一条边,此边起自于u终止与v;称u为边 ( u , σ , v ) (u,\sigma,v) u,σ,v的起点,v为边 ( u , σ , v ) (u,\sigma,v) u,σ,v的重点,起点或终点统称为边 ( u , σ , v ) (u,\sigma,v) u,σ,v的端点。

定义4:图 G = ( V , E ) G=(V,E) G=(V,E) 是一个系统。其中V是结点的非空有限集合;E是边的有限集合; γ \gamma γ 是边到结点集的一个关联函数,即 γ : E → 2 V \gamma:E \to 2^V γ:E2V。一般来说,它将E中的每条边 e ∈ E e \in E eE 与结点集V中的一个二元子集 { u , v } ∈ 2 V \{u,v\} \in 2^V { u,v}2V 相关联,即 γ ( e ) = { u , v } \gamma(e) = \{u,v\} γ(e)={ u,v},结点u和v统称为边e的端点。

1.2 图的常见类型

对图的定义一般采用定义2的方式,并将拥有n个结点,m条边的图称为(n,m)图。

G = ( V , ∑ , E ) G = (V,\sum,E) G=(V,,E),图的类型一般有:

  1. 无向图:在图G中,若 ( u , σ , v ) (u,\sigma,v) uσ,v ( v , σ , u ) (v,\sigma,u) vσ,u表示同一条边,则称此边为无向边;若G中所有边都是无向边,则称G为无向图
  2. 有向图:若G中所有边都是有向边,则称G为有向图。
  3. 混合图:若G中,既有有向边,又有无向边,则称这种图为混合图。
  4. 零图:若在图G中E = ∅ \emptyset ,则称G为零图。
  5. 平凡图:称只有一个结点的图为平凡图。

G = ( V , ∑ , E ) G = (V,\sum,E) G=(V,,E),边与边,结点与边,结点与结点之间的关系一般有:

  1. 边邻接:若G中有两条边有一个公共端点,则称此二边邻接。
  2. 结点相邻:若G中的两个结点是同一条边上的两个端点,则称此二结点相邻。
  3. 关联:若G中的节点v是边e的端点,则称节点v与边e相关联。
  4. 孤立点:不与任何边相关联的点称为孤立点。
  5. 自环:关联于同一节点的一条边称为自环。

在图G中,边的关系一般有:

  1. 平行边:若两条边有相同的端点(对有向图则有相同的起点和终点),则称此二边为平行边。
  2. 重数:两节点之间平行边的条数成为平行边的重数。
  3. 多重图:若图G中有平行边存在,则称此图为多重图。
  4. 简单图:若图G中无平行边且无自环,则称图G为简单图。

1.3 子图与补图


定义5:设 G = ( V , E ) G=(V,E) G=(V,E)为简单图,若G中每一对不同的结点间都有边相连,则称G为完全图。
设G有n个结点,m条边。当G为无向完全图是,则有m = n(n-1)/2;当G为有向完全图时,则有m = n(n-1)。一般将n个节点的无向完全图记为 K n K_n Kn


定义6:设有图G= (V,E)和图 G ‘ = ( V ‘ , E ‘ ) G^` = (V^`,E^`) G=(V,E)

  1. 子图:若 V ‘ ⊆ V V^` \subseteq V VV , E ‘ ⊆ E E^` \subseteq E EE,则称 G ‘ G^` G为G的子图。
  2. 真子图:若 V ‘ ⊂ V V^` \subset V VV , E ‘ ⊂ E E^`\subset E EE,则称 G ‘ G^` G为G的真子图。
  3. 生成子图(又称支撑子图) V ‘ = V V^` = V V=V , E ‘ ⊆ E E^`\subseteq E EE,则称 G ‘ G^` G为G的生成子图。
  4. 平凡子图 V ‘ = V V^` = V V=V , E ‘ = E E^` = E E=E V ‘ = V V^` = V V=V , E ‘ = ∅ E^` = \emptyset E=,称这两个子图为平凡子图。

定义7:设 G = ( V , E ) G=(V,E) G=(V,E)为一简单图, G ∗ = ( V , E ∗ ) G^* = (V,E^*) G=(V,E)为完全图,称 G ‾ = ( V , E ‾ ) \overline{G} = (V,\overline{E}) G=(V,E)为G的补图,其中 E ‾ = E ∗ \overline{E} = E^* E=E \ E E E.


定义8:设 G = ( V , E ) G=(V,E) G=(V,E)是图,

  1. 当G为有向图时,G中以v为起点的边的条数成为v的出度,记为 d e g ← ( v ) \overleftarrow{deg}(v) deg (v);以v为终点的边的条数成为v的入度,记为 d e g → ( v ) \overrightarrow{deg}(v) deg (v);入度和出度之和成为v的度,记为 d e g ( v ) deg(v) deg(v)
  2. 当G为无向图时,以v为端点的边的条数称为v的度,记为 d e g ( v ) deg(v) deg(v)

当某节点的度数为奇数,称此结点为奇结点;若结点的度数为偶数,则称此节点为偶结点
称度数为1的节点为悬挂点,与悬挂点关联的边称为悬挂边


定理1:设 G = ( V , E ) G=(V,E) G=(V,E)是(n,m)无向图,则 ∑ i = 1 n d e g ( v i ) = 2 m \sum_{i=1}^n{deg(v_i)} = 2m i=1ndeg(vi)=2m

定理2:设 G = ( V , E ) G=(V,E) G=(V,E)是(n,m)有向图,则 ∑ i = 1 n d e g ← ( v i ) = ∑ i = 1 n d e g → ( v i ) = m \sum_{i=1}^n{\overleftarrow{deg}(v_i)} = \sum_{i=1}^n{\overrightarrow{deg}(v_i)} = m i=1ndeg (vi)=i=1ndeg (vi)=m

定理3:设 G = ( V , E ) G=(V,E) G=(V,E)是(n,m)无向图,则奇结点的个数为偶数。


二、图的同构

1.1 图的同构的定义

定义9:设 G = ( V , E ) G=(V,E) G=(V,E) G ‘ = ( V ‘ , E ‘ ) G^`=(V^`,E^`) G=(V,E)是两个简单无向图,若存在从V到 V ‘ V^` V的双射函数h,使得 e = { v i , v j } ∈ E e = \{v_i,v_j\} \in E e={ vi,vj}E 当且仅当 e ‘ = { h ( v i ) , h ( v j ) } ∈ E ‘ e^` = \{h(v_i),h(v_j)\}\in E^` e={ hvi,h(vj)}E,则称图G与图 G ‘ G^` G同样。

必要条件(不是充分条件):

  1. 结点数相等;
  2. 边数相等;
  3. 度数相同的结点个数相等。
    注意同构是一个等价关系、

定义10:设 G = ( V , E ) G=(V,E) G=(V,E) G ‘ = ( V ‘ , E ‘ ) G^` = (V^`,E^`) G=(V,E)是两个简单有向图,若存在从V到 V ‘ V^` V的双射函数h,使得 e = { v i , v j } ∈ E e = \{v_i,v_j\} \in E e={ vi,vj}E 当且仅当 e ‘ = { h ( v i ) , h ( v j ) } ∈ E ‘ e^` = \{h(v_i),h(v_j)\}\in E^` e={ hvi,h(vj)}E,则称图G与图 G ‘ G^` G同构。

三、路与圈

3.1 路与圈的定义

定义11:设 G = ( V , E ) G=(V,E) G=(V,E),W是G的有限非空点边交错序列 W = v 0 e 1 v 1 e 2 v 2 … e k v k W = v_0e_1v_1e_2v_2…e_kv_k W=v0e1v1e2v2ekvk 称W为G的一条从 v 0 v_0 v0 v k v_k vk的途径,称 v 0 v_0 v0为途径的起点, v k v_k vk为途径的终点,k为途径的长度。

定义12:在途径W中,如 v 0 ≠ v k v_0 \not= v_k v0=vk,则称W是从 v 0 v_0 v0 v k v_k vk的一条路;若 v 0 = v k v_0 = v_k v0=vk,则称W是圈。

定义13:无重复边的路称为简单路,无重复边的圈称为简单圈,无重复点的路称为初级路,无重复点的圈称为初级圈。

定理4:设 G = ( V , E ) G=(V,E) G=(V,E)为一简单图,|V| = n,则:

  1. G中任一初级路的长度不超过n-1;
  2. G中任一初级圈的长度不超过n。

3.2 路与圈的可达性

定义14:设 G = ( V , E ) G=(V,E) G=(V,E)是图,任取u,v ∈ \in V,如果G中存在一条从u到v的路,则称u可达v。(规定u到自己总是可达的)

无向图中,从u可达v,很明显,v可达u成立;
然而有向图中,u可达v,v不一定可达u。所以规定: u , v 相 互 可 达 ↔ u 可 达 v ∧ v 可 达 u u,v相互可达 \leftrightarrow u可达v \wedge v可达u uvuvvu

从u可达v的所有路中最短的那一条称为短程线(短线程不一定是唯一的)。并经短程线的长度叫做从u到v的距离,用 d ( u , v ) d(u,v) d(u,v)表示。规定:

  1. d ( u , v ) = 0 d(u,v)=0 d(u,v)=0;
  2. 若u到v不可达,则 d ( u , v ) = ∞ d(u,v)=\infty d(u,v)=

3.3 图的连通性

3.3.1 无向图的连通性

定义15:设 G = ( V , E ) G=(V,E) G=(V,E)无向图,如果G中任意两结点间均可达,则称图G是连通的,即G是连通图,否则称图G是非连通的,即G是非连通图。

极大连通子图:对于无向图(并不一定是连通的),如果是连通图,那自己就是极大连通子图;如果是非连通图,则必然有独立出来的路或圈,而将这些部分按照相互不连通,进行划分,每一个划分块都是给定图的一个连通子图,而在每一个划分块中结点间的可达性已达到极大限度。

定义16:设 G = ( V , E ) G=(V,E) G=(V,E)无向图,G的一个极大连通子图称为G的一个连通支。(非连通无向图中一般连通支数 ≥ \geq 2。)

3.3.2 有向图的连通性

定义17:设 G = ( V , E ) G=(V,E) G=(V,E)有向图

  1. 若G中任意两结点间都是相互可达的,则称G是强连通的;
  2. 若G中任意两结点间至少有一结点可到达另一结点,则称G是单连通的
  3. 若略去边的方向后,G的无向图时连通的,则称G是弱连通的。

(弱连通,可能既不是单连通的,也不是强联通的;强联通一定是单连通和弱连通的;单连通一定是弱连通的,但不一定是强联通的。)

定义18:设 G = ( V , E ) G=(V,E) G=(V,E)简单有向图,称G的极大的强连通子图为G的强连通支;称G的极大的单向连通子图为G的一个单向连通支;称G的极大的若连通子图为G的一个若连通支。(注意:提到强,单向,弱就是有向图)

有向图的强连通性及弱连通性建立了G中节点集合V上的等价关系,即有向图强/弱连通性都可以通过结点集合V来表示,但两者还是有区别的。

弱连通,不仅建立了结点集上的划分,而且还建立了边集上的划分。
设$G_1,G_2,…,G_k,为G的所有弱连通支,则有:

V ( G 1 ) ∪ V ( G 2 ) ∪ . . . ∪ V ( G k ) = V ( G ) E ( G 1 ) ∪ E ( G 2 ) ∪ . . . ∪ E ( G k ) = E ( G ) \begin{matrix} V(G_1) \cup V(G_2) \cup ... \cup V(G_k) = V(G) \\ E(G_1) \cup E(G_2) \cup ... \cup E(G_k) = E(G) \end{matrix} V(G1)V(G2)...V(Gk)=V(G)E(G1)E(G2)...E(Gk)=E(G)

i ≠ j i \not= j i=j时,有:

V ( G i ) ∩ V ( G j ) = ∅ E ( G i ) ∩ E ( G j ) = ∅ \begin{matrix} V(G_i) \cap V(G_j) = \emptyset \\ E(G_i) \cap E(G_j) = \emptyset \\ \end{matrix} V(Gi)V(Gj)=E(Gi)E(Gj)=

强连通,只能建立结点集上的划分,而不能建立边集上的划分。
设$G_1,G_2,…,G_k,为G的所有强连通支,则有:

V ( G 1 ) ∪ V ( G 2 ) ∪ . . . ∪ V ( G k ) = V ( G ) E ( G 1 ) ∪ E ( G 2 ) ∪ . . . ∪ E ( G k ) ⊆ E ( G ) \begin{matrix} V(G_1) \cup V(G_2) \cup ... \cup V(G_k) = V(G) \\ E(G_1) \cup E(G_2) \cup ... \cup E(G_k) \subseteq E(G) \end{matrix} V(G1)V(G2)...V(Gk)=V(G)E(G1)E(G2)...E(Gk)E(G)
i ≠ j i \not= j i=j时,有 V ( G i ) ∩ V ( G j ) = ∅ V(G_i) \cap V(G_j) = \emptyset V(Gi)V(Gj)=

定理5:在简单有向图 G = ( V , E ) G=(V,E) G=(V,E)中:

  1. 每一个结点及每一条边恰在一个弱连通中;
  2. 每一个结点恰在一个强连通支中;
  3. 每一个结点,每一条边至少属于一个单向连通支。

四、图的矩阵表示

4.1 邻接矩阵

4.1.1 邻接矩阵的定义及强行命名

定义19:设 G = ( V , E ) G=(V,E) G=(V,E)简单有向图 V = v 1 , v 2 , . . . , v n V={v_1,v_2,...,v_n} V=v1,v2,...,vn被强行命名,称n阶方阵 A = ( a i j ) n × n A = (a_{ij})_{n \times n} A=(aij)n×n为G的邻接矩阵。其中:
a i j = { 1 , ( v i , v j ) ∈ E 0 , ( v i , v j ) ∉ E a_{ij}=\begin{cases} 1,&(v_i,v_j) \in E \\ 0,&(vi,vj) \notin E \end{cases} aij={ 1,0,(vi,vj)E(vi,vj)/E

定义中的强行命名是指:给 V V V中的各结点从 v 1 到 v n v_1到v_n v1vn确定一个排队的次序。当强行命名改变时,即结点次序改变,图的邻接矩阵也会变化。

对于一个给定的图,我们能用一个主对角线全为零的方阵将结点间的邻接关系反应出来;
对于一个对角线全为零、元素为0或1的方阵,我们可以将其表示成一个图。

若图 G 1 与 G 2 G_1与G_2 G1G2同构,则它们相对应的邻接矩阵 A ( G 1 ) 与 A ( G 2 ) A(G_1)与A(G_2) A(G1)A(G2)或者相同,或者其中的一个通过行与列的交换能转换成另一个。

  • 零图:邻接矩阵元素全是零;
  • 完全图:除对角线上全是零外,其余元素均为1;
  • 图对称:邻接矩阵按主对角线对称,即 A = A T A = A^{T} A=AT
4.1.2 利用邻接矩阵求各结点的入度和出度

如:
A = [ 0 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从零开始的智障生活

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值