Loading [MathJax]/jax/output/HTML-CSS/jax.js

离散数学笔记(13)——图论

离散数学笔记(13)——图论

图论

无向图的连通性

两点之间连通

如果结点 uv 之间存在一条路,则称 uv 连通。

规定:对任何结点 uuu 连通。

连通关系

结点间的连通关系是一个等价关系

证明略。

连通

G=V,E 是无向图,RV 上连通关系,设 RV 的商集中有等价类 V1,V2,,Vn,这 n 个等价类构成的 n 个子图分别记作 G[V1],G[V2],,G[Vn],并称它们为 G连通分支。并用 W(G) 表示 G连通分支数

连通图

如果图 G 只有一个连通分支(W(G)=1),则称 G连通图

定理:图 G=V,E 是连通的,当且仅当对 V 的任何划分 V1,V2,恒存在一条边,使得它的端点分别属于 V1V2

115

连通图连通度的强弱

G 中删去点 v:把 v 以及与 v 关联的边删去。

G 中删去边 e:仅需把该边删去。

割集

点割集与割点

G=V,E 是连通无向图,结点集合 V1V,如果删去 V1 中所有结点后,G 就变得不连通了,则称 V1G 的一个点割集

如果点割集 V1 中只有一个结点,则称此结点为割点

点连通度

G 不是连通图,定义:

κ(G)=min{|V1|||V1| 是 G 的点割集}G点连通度

注 1:点连通度表示使 G 不连通至少要删去的结点数。

注 2:具有割点图的点连通度 κ(G)=1,不连通图的点连通度为 0κ(Kn)=n1

定理:一个连通图中结点 v 是割点的充分必要条件是存在两个结点 uw,使得从 uw 的任何路都通过 v

边割集与割边(桥)

G=V,E 是连通无向图,边的集合 E1E,如果删去 E1 中所有边后,G 变得不连通了,则称 E1G 的一个边割集

如果边割集 E1 中只有一条边,则称此边为割边,也称之为

边连通度

G 不是平凡图,定义:

λ(G)=min{|E1||E1 是 G 的边割集}G边连通度

:如果 G 不连通,λ(G)=0,对平凡图,λ(G)=0,λ(Kn)=n1

定理G 是无向图,则 κ(G)λ(G)δ(G)

116

117

割边的特性

  1. 连通图 G 的边 e 是割边当且仅当存在 G 的两点 uv,使得任意一条 uv 路过 e

  2. 连通图 G 的边 e 是割边的充要条件是 e 不在 G 的任一圈上。

    118

距离

定义

uvG 中任意两点,若 uv 连通,则 G 中最短的 uv 通路的长定义为 uv 之间的距离,记为dG(u,v),简记 d(u,v)。若 uv 不连通,则定义 d(u,v)=

性质

  1. d(u,v)=d(v,u)
  2. 三角不等式成立。

补充定义与定理

定义:如果 κ(G)h,则称 Gh 连通的;如果 λ(G)f,则称 Gf 边连通的。

结论 1n 阶完全图是 (n1) 连通的。

结论 2:若 h1>h2,则 h1 连通图 Gh2 连通的;若 f1>f2,则 f1 边连通图 Gf2 边连通的。

定理 1:设图 Gh 连通的,则 G 的每个顶点的度均 h

定理 2:设图 Gh 连通的,vG 中的一 个顶点,则 Gv(h1) 连通的。

有向图

定义

定义 1:一个有向图 G 定义为一个二元组 V,E,记作 G=V,E,其中:

  1. V 是一个非空集合,称为 G顶点集,它的元素称为顶点
  2. EV×V,称为 G有向边集(或弧集),其元素称为有向边(或弧)V×V 的元素在 E 中可以出现不止一次。

定义 2:设 e=u,vE(G),称 ue起点ve终点

定义 3

Γ+(v)={u|v,uE}v直接后继集

Γ(v)={u|u,vE}v直接前驱集

有向图结点的出度和入度

v 的出度:从结点 v 射出的边数,记作 d+(v)

v 的入度:射入结点 v 的边数,记作 d(v)

结论d+(v)=|Γ+(v)|,d(v)=|Γ(v)|,d(v)=d+(v)+d(v)

定理G=V,E 是有向图,则 G 的所有结点的出度之和等于入度之和,即 vVd+(v)=vVd(v)

有向图的同构

G=V,EG=V,E 是图,如果存在双射 f:VV,且任何 vi,vjV,边 e=vi,vjE 当且仅当 e=f(vi),f(vj)E,并且边 ee 的重数相同,则称 GG 同构,记作 G=G

道路和回路

有向路

给定有向图 G=V,E,设 v0,v1,,vkV,e1,e2,,ekE,其中 ei=vi1,vi,则称结点和边的交叉序列 v0e1v1ekvk 是连接 v0vk有向路

路中含有的边数 k 称之为路的长度

有向回路

v0=vk,称为有向回路

有向迹与有向闭迹

如果一条有向路中,所有边都不同,则称此路为有向迹

如果一条有向回路中,所有边都不同,则称此回路为有向闭迹

有向通路与有向圈

如果一条有向路中,所有结点都不同,则称此路为有向通路

如果一条有向回路中,除起点和终点外,其余结点都不同,则称此回路为有向圈

有向图的连通性

结点间的可达性

G=u,v 是有向图,u,vV,如果从 uv 有一条路,则称从 uv 可到达

结点间的距离

如果 u 可达 v,可能从 uv 有多条路,其中最短的路的长度,称之为从 uv距离,记作 du,v

距离的性质

  1. du,v0
  2. du,u=0(规定)
  3. du,v+dv,wdu,w
  4. 如果从 uv 不可达,则 du,v=
  5. u,v 互相可达,du,v 不一定等于 dv,u

图的直径

G 是个有向图,定义:
D=maxu,vV{du,v}


为图 G直径

强连通、单侧连通和弱连通

在简单有向图 G 中,如果任何两个结点间相互可达,则称 G强连通

如果任何一对结点间,至少有一个结点到另一个结点可达,则称 G单侧连通

如果将 G 看成无向图后(即把有向边看成无向边)是连通的,则称 G弱连通

图的矩阵表示

邻接矩阵(可以表示环,但不能表示多重边)

G=V,E 是个简单图,V={v1,,vn},一个 n 阶矩阵 A=(aij) 称为 G 的邻接矩阵,其中:
aij={1(vi,vj)Evi,vjE0(vi,vj)Evi,vjE


性质

  1. 无向图:每行 1 个数与每列 1 个数相等,等于对应结点的度。
  2. 有向图:每行 1 个数是对应结点的出度,每行 1 个数是对应结点的入度。

定理:设 G=V,E 是简单图,令 V={v1,v2,,vn}G 的邻接矩阵 (A(G))k 中的第 i 行第 j 列元素aijk=m,表示在图 G 中从 vivj 长度为 k 的路有 m 条。(该定理对有向图和无向图均成立)

119

可达性矩阵

G=V,E 是个简单图,V={v1,,vn},一个 n 阶矩阵 P=(pij) 称为 G 的邻接矩阵,其中:

pij={1vi 到 vj 可达0否则


求法

|V(G)|=n,记 A(k) 为将 Ak 中非零元素改写为 1 得到的 01 矩阵。

P=AA(2)A(n)

可以用矩阵乘法求得 A(k),或者使用求传递闭包的 Warshall 算法。

完全关联矩阵(能表示重边,但不能表示环)

  1. 无向图的完全关联矩阵:设 G=V,E 是个无向图,V={v1,v2,vn}E={e1,e2,,em}

    一个 n×m 阶矩阵 M=(mij) 称为 G完全关联矩阵,其中:
    mij={1vi 与 ej 关联0否则


    可以看出性质:

    1. 每列只有两个 1
    2. 每行 1 的个数为对应结点的度数。
    3. 如果两列相同,则说明对应的两条边是平行边。
  2. 有向图的完全关联矩阵:设 G=V,E 是个有向图,V={v1,v2,vn}E={e1,e2,,em}

    一个 n×m 阶矩阵 M=(mij) 称为 G完全关联矩阵,其中:
    mij={1vi 是 ej 的起点1vi 是 ej 的终点0vi 与 ej 不关联


    可以看出性质:

    1. 每列只有一个 11
    2. 每行中 1 的个数为对应结点的出度,1 个数为对应结点的入度。

带权图的最短路问题

带权图(赋权图)

G=V,E,W 是个图,如果 G 的每条边 e 上都标有实数 w(e)W,称这个数为边 e,称此图为赋权图

规定u,vV,边 (u,v) 的权记为 w(u,v)

  1. w(u,u)=0
  2. 如果 u,v 之间无边相连,w(u,v)=

带权图的路的权:设 PG 中一条路,定义路 P 的权为:
w(P)=ePw(e)

最短路问题

在赋权图中求一条从给定的一点 u(始点)到另一点 v(终点)的路 P,使 P 是所有 uv 路中权最小的,称 P 为从 uv最短路

带权图的两点间距离

结点 uv 之间的最短路的长称为结点 uv 之间的距离,记作 d(u,v)

如果 G 是有向带权图,称为结点 uv 的距离,记作 du,v

Dijkstra 算法

基本思路:先给赋权图 G 的每个点记一个数(称为标号),标号分临时标号(T 标号)和固定标号(P 标号)两种,T 标号表示从始点到这一点的最短路长度的上界;P 标号则是从始点到这一点的最短路的长度;每一步把某个点的 T 标号改变为 P 标号,一旦终点得到 P 标号,算法终止。若寻找从始点每一点的最短路,则最多经过 |V|1 步算法终止。

令图 G=V,E,W|V|=nUj1j 的最短路长度。

  1. P={1}T={2,3,,n}U1=0Uj=w(1,j),j=2,3,,n
  2. T 中找一点 k,使得 Uk=minjT{Uj},置 P=P{k}T=T{k}。若 T= 则终止,否则执行步骤 3。
  3. T 中每个点 jUj=min{Uj,Uk+w(k,j)},返回步骤 2。

 

点赞 1

No Comments

Add your comment

因为你喜欢海,所以我一直浪。