图论-01

01-图的基本概念
注:所写主要参考为许胤龙《图论导引》,因觉得此书所写不合理,故附参考张先迪《图论及其应用》

图的定义

  • 一个无向图G是一个有序组 G = ( V ( G ) , E ( G ) ) G=(V(G),E(G)) G=(V(G),E(G)), V ( G ) V(G) V(G)是顶点集合, E ( G ) E(G) E(G)是边集合
  • :图的顶点个数,即 ∣ V ( G ) ∣ \vert V(G)\vert V(G),记为 v ( G ) v(G) v(G)
  • 相邻:一条边的两个顶点相邻,有公共顶点的两边相邻
  • 重数:连接两个相同顶点的边的条数
  • 重边:重数大于1的边称为重边
  • :两个顶点重合的边叫做环
  • 简单图:无环,无重边的图
  • 图的同构
    • 两个图 G 1 = ( V 1 , E 1 ) , G 2 = ( V 2 , E 2 ) G_1=(V_1,E_1),G_2=(V_2,E_2) G1=(V1,E1),G2=(V2,E2)有如下关系: u 1 ↔ u 2 , v 1 ↔ v 2 , u 1 , v 1 ∈ V 1 , u 2 , v 2 ∈ V 2 ; u 1 v 1 ∈ E 1 , 当 且 仅 当 u 2 v 2 ∈ E 2 , 且 u 1 v 1 的 重 数 与 u 2 v 2 的 重 数 相 同 u_1\leftrightarrow u_2,v_1\leftrightarrow v_2,u1,v1\in V_1,u_2,v_2\in V_2;u_1v_1\in E_1,当且仅当u_2v_2 \in E_2,且u_1v_1的重数与u_2v_2的重数相同 u1u2,v1v2,u1,v1V1,u2,v2V2;u1v1E1u2v2E2u1v1u2v2,记作 G 1 ≅ G 2 G_1\cong G_2 G1G2
  • 特殊的图
    • 完全图:任意两个顶点都相邻的简单图, K n K_n Kn
    • 二分图:顶点集合可划分为两类,每类中的顶点不相邻
    • 完全二分图:简单图,任意一类的任意一个顶点与另一类内任意顶点相邻, K ∣ X ∣ , ∣ Y ∣ K_{|X|,|Y|} KX,Y
    • 星图: K 1 , n K_{1,n} K1,n K n , 1 K_{n,1} Kn,1
    • 零图:有顶点没有边
    • 平凡图:只有一个顶点没有边得图
    • 补图:顶点不变,无边加边,有边去边
  • 定理:若n阶图G是自补的 G ≅ G ‾ G\cong \overline{G} GG,则 n ≡ 0 , 1 ( m o d 4 ) n\equiv 0,1(mod 4) n0,1(mod4)

顶点度数

  • 一个顶点v的度数为与它关联的非环变数2倍的环边数的和
  • 图的最小度与最大度为所有顶点度数的最小值和最大值
  • k正则图:对所有 v ∈ V v\in V vV,有 d ( v ) = k d(v)=k d(v)=k,完全图和完全二分图都是正则图
  • 定理:任给无向图G, ∑ v ∈ V ( G ) d e g ( v ) = 2 ϵ ( G ) \sum_{v\in V(G)}deg(v)=2\epsilon(G) vV(G)deg(v)=2ϵ(G)
    • 推论:任给图G,G中度数为奇数的顶点个数为偶数
    • 推论:正则图的阶数和度数不可同时为奇数
  • 度序列:一个图G各个顶点的度构成的非负整数组 ( d 1 , d 2 , ⋯   , d n ) (d_1,d_2,\cdots,d_n) (d1,d2,,dn)
  • 图划分:一个n阶简单图G各点的度为 d i d_i di,则分正整数k为n个部分的划分 ∑ d i \sum d_i di称为是图划分。此时k必是偶数,且 d i ≤ n − 1 d_i \leq n-1 din1
  • 定理:设有非负正数组 Π = ( d 1 , d 2 , ⋯   , d n ) \Pi=(d_1,d_2,\cdots,d_n) Π=(d1,d2,,dn),且 ∑ i = 1 n d i \sum_{i=1}^nd_i i=1ndi是个偶数, n − 1 ≥ d 1 ≥ d 2 ≥ ⋯ ≥ d n n-1\geq d_1\geq d_2 \geq\cdots\geq d_n n1d1d2dn,它是可图的充要条件是 Π ′ = ( d 2 − 1 , d 3 − 1 , ⋯   , d n − 1 − 1 , d n ) \Pi'=(d_2-1,d_3-1,\cdots,d_{n-1}-1,d_n) Π=(d21,d31,,dn11,dn)是可图的。
  • 频序列:设 n n n阶图 G G G的各点的度数取 s s s个不同的非负整数 d 1 , d 2 , ⋯   , d s d_1,d_2,\cdots,d_s d1,d2,,ds,又设度为 d i d_i di的点有 b i b_i bi个,则有 ∑ i = 1 s b i = n \sum_{i=1}^sb_i=n i=1sbi=n。故非负整数组 ( b 1 , b 2 , ⋅ , b s ) (b_1,b_2,\cdot,b_s) (b1,b2,,bs) n n n的一个划分,称为G的频序列

子图与图的运算

  • 子图 V ( H ) ⊆ V ( G ) V(H)\subseteq V(G) V(H)V(G) E ( H ) ⊆ E ( G ) E(H)\subseteq E(G) E(H)E(G),则称H是G的一个子图,记作 H ⊆ G H\subseteq G HG
  • 真子图 H ⊆ G H\subseteq G HG H ≠ G H\neq G H=G,记为 H ⊂ G H\subset G HG
  • 生成子图:满足 V ( H ) = V ( G ) V(H)=V(G) V(H)=V(G)的子图 H H H,简单图G的所有不同生成子图的个数是 2 ∣ E ( G ) ∣ 2^{|E(G)|} 2E(G)
  • (顶点)导出子图 V ′ V' V V V V的非空子集,以 V ′ V' V为顶点集,以两顶点都在 V ′ V' V中的边组成边集,称为G的由 V ′ V' V导出的子图,若 V ′ = { v } V'=\{v\} V={v},则把 G − { v } G-\{v\} G{v}简记为 G − v G-v Gv
  • 边导出子图 E ′ E' E E E E的非空子集,以 E ′ E' E为边集,以 E ′ E' E中边的顶点全体为顶点集,称为G的由 E ′ E' E导出的子图,若 E ′ = { e } E'=\{e\} E={e},则用 G − e G-e Ge代替 G − { e } G-\{e\} G{e}
  • 并: G ∪ H = ( V ( G ) ∪ V ( H ) , E ( G ) ∪ E ( H ) ) G\cup H=(V(G)\cup V(H),E(G)\cup E(H)) GH=(V(G)V(H),E(G)E(H))
  • 交: G ∩ H = ( V ( G ) ∩ V ( H ) , E ( G ) ∩ E ( H ) ) G\cap H=(V(G)\cap V(H),E(G)\cap E(H)) GH=(V(G)V(H),E(G)E(H))
  • 积(许胤龙版,个人认为错): G × H = ( V ′ , E ′ ) G\times H=(V',E') G×H=(V,E),其中 V ′ = V ( G ) × V ( H ) V'=V(G)\times V(H) V=V(G)×V(H), E ′ = { ( u 1 , v 1 ) ( u 2 , v 2 ) ∣ u 1 = u 2 且 v 1 v 2 ∈ E ( H ) 或 u 1 u 2 ∈ E ( G ) 且 v 1 = v 2 或 u 1 u 2 ∈ E ( G ) 且 v 1 v 2 ∈ E ( H ) } E'=\{(u_1,v_1)(u_2,v_2)|u_1=u_2且v_1v_2\in E(H)或u_1u_2\in E(G)且v_1=v_2或u_1u_2\in E(G)且v_1v_2\in E(H)\} E={(u1,v1)(u2,v2)u1=u2v1v2E(H)u1u2E(G)v1=v2u1u2E(G)v1v2E(H)}
  • 积(张先迪版,个人认为对) G × H = ( V ′ , E ′ ) G\times H=(V',E') G×H=(V,E),其中 V ′ = V ( G ) × V ( H ) V'=V(G)\times V(H) V=V(G)×V(H), E ′ = { ( u 1 , v 1 ) ( u 2 , v 2 ) ∣ u 1 = u 2 且 v 1 v 2 ∈ E ( H ) 或 u 1 u 2 ∈ E ( G ) 且 v 1 = v 2 } E'=\{(u_1,v_1)(u_2,v_2)|u_1=u_2且v_1v_2\in E(H)或u_1u_2\in E(G)且v_1=v_2\} E={(u1,v1)(u2,v2)u1=u2v1v2E(H)u1u2E(G)v1=v2}
  • 方体:采用张先迪版的积来定义, n n n方体 Q n Q_n Qn递推地定义为 Q 1 = K 2 , Q n = K 2 × Q n − 1 Q_1=K_2,Q_n=K_2\times Q_{n-1} Q1=K2,Qn=K2×Qn1,如果 Q n Q_n Qn地两个点二进制表示式只有一处不同,则它们邻接,可应用于编码领域

路径与连通

  • 路径:图G地一条路径 W W W定义为 W = v 0 e 1 v 1 e 2 v 2 ⋯ e k v k W=v_0e_1v_1e_2v_2\cdots e_kv_k W=v0e1v1e2v2ekvk,称 W W W式一条从 v 0 v_0 v0 v k v_k vk的一条路径,或一条 ( v 0 , v k ) (v_0,v_k) (v0,vk)路径,顶点 v 0 v_0 v0 v k v_k vk分别称为 W W W的起点和终点,整数 k k k称为 W W W
  • 行迹:边不重复的路径
  • 轨道:顶点不重复的路径
  • 回路:起点与终点相同的路径
  • :除了起点与终点相同之外,没有相同的顶点回路。
    • k k k为奇数或偶数,分为奇圈偶圈
  • 连通:若顶点 u u u v v v之间存在路径,称 u u u v v v连通
  • 距离 u u u v v v之间最短轨道的长称为距离,记为 d i s t ( u , v ) dist(u,v) dist(u,v)
  • 直径 d ( G ) = max ⁡ { d i s t ( u , v ) ∣ u , v ∈ V } d(G)=\max\{dist(u,v)|u,v\in V\} d(G)=max{dist(u,v)u,vV}
  • 连通图:任意两个顶点间都连通的图
  • 连通片:连通是一个等价关系,故存在一个划分,将 V V V划分为一些等价类 V 1 , V 2 , ⋯   , V n V_1,V_2,\cdots,V_n V1,V2,,Vn,顶点导出子图 G [ V i ] G[V_i] G[Vi]称为 G G G的一个连通片
  • 定理:图G是二分图,当且仅当G中无奇圈(提示:任取 u 0 ∈ V ( G ) u_0\in V(G) u0V(G) X = { u ∣ u ∈ V ( G ) , 且 d i s t ( u 0 , u ) 为 偶 数 } X=\{u|u\in V(G),且dist(u_0,u)为偶数\} X={uuV(G),dist(u0,u)} Y = { u ∣ u ∈ V ( G ) , 且 d i s t ( u 0 , u ) 为 奇 数 } Y=\{u|u\in V(G),且dist(u_0,u)为奇数\} Y={uuV(G),dist(u0,u)})
  • 定理:图G是简单图, δ ( G ) ≥ 2 \delta(G)\geq 2 δ(G)2,则 G G G中含圈(提示:取最长轨道,轨道的起点与终点必还有一边,且该边的端点只能在最长轨道上)
    • 推论:图G是简单图, δ ( G ) ≥ 3 \delta(G)\geq 3 δ(G)3,则 G G G中含偶圈

最短路径问题

  • 赋权图 G G G的每一条边 e e e,可赋予一个实数 w ( e ) w(e) w(e),称为 e e e,G连同它边上的权称为赋权图
  • 轨道的权:设 P ( u , v ) P(u,v) P(u,v) u , v u,v uv之间的一条轨道,则 P ( u , v ) P(u,v) P(u,v)的权定义为 w ( p ( u , v ) ) = ∑ e ∈ E ( P ( u , v ) ) w ( e ) w(p(u,v))=\sum_{e\in E(P(u,v))}w(e) w(p(u,v))=eE(P(u,v))w(e)
  • 最短路径:设 W ( u , v ) W(u,v) W(u,v) u , v u,v u,v之间的所有轨道构成的集合,则最短路径为一条轨道 P 0 ( u , v ) = m i n P ( u , v ) ∈ W ( u , v ) w ( P ( u , v ) ) P_0(u,v)=min_{P(u,v)\in W(u,v)}w(P(u,v)) P0(u,v)=minP(u,v)W(u,v)w(P(u,v))
  • D i j s k t r a Dijsktra Dijsktra算法:输入一点 u 0 u_0 u0,求出该点到其他顶点的最短路径
    • d ( u ) : d(u): d(u):表示最短距离, l ( u ) : l(u): l(u):表示该路径的 u u u的前继结点, S : S: S:为已被选择的顶点的集合
    • 1、初始化 d ( u 0 ) = 0 , l ( u 0 ) = u 0 , d ( u ) = ∞ , l ( u ) = ∗ d(u_0)=0,l(u_0)=u_0,d(u)=\infty,l(u)=* d(u0)=0l(u0)=u0d(u)=l(u)=,其中 u ∈ V ( G ) u\in V(G) uV(G),且 u ≠ u 0 u\neq u_0 u=u0 S = u 0 S={u_0} S=u0
    • 2、更新数据:对任给 u ∈ V ( G ) − S , v ∈ S u\in V(G)-S,v\in S uV(G)S,vS,若 d ( v ) + w ( u v ) < d ( u ) d(v)+w(uv)<d(u) d(v)+w(uv)<d(u),则令 d ( u ) = d ( v ) + w ( u v ) , l ( u ) = v d(u)=d(v)+w(uv),l(u)=v d(u)=d(v)+w(uv),l(u)=v
    • 3、加入新点:选出 u ∈ V ( G ) − S u\in V(G)-S uV(G)S,使得 d ( u ) d(u) d(u)最小的点, S = S ∪ { u } S=S\cup\{u\} S=S{u}
    • 重复 2 、 3 步 ∣ V ( G ) ∣ − 1 2、3步|V(G)|-1 23V(G)1次,结束算法
  • D a n t j i g Dantjig Dantjig标号法:输入一点 a a a,找到从 a a a G G G的其他顶点的最短路径
    • t ( a ) : t(a): t(a):为最短距离, A A A为已途径过的顶点集合, T : T: T:为所选边集合
    • 1、初始化 t ( a ) = 0 , A = a , T = ∅ t(a)=0,A={a},T=\varnothing t(a)=0,A=a,T=
    • 2、寻找所需边:寻找出 A A A中的每个顶点到非 A A A中的顶点权最小的边,令 l ( a b ) l(ab) l(ab)为所寻边的最小权, a ∈ A , b ∉ A a\in A,b\notin A aA,b/A
    • 3、更新数据:令 A = A ∪ { b } A=A\cup\{b\} A=A{b} T = T ∪ { a b } T=T\cup\{ab\} T=T{ab} t ( b ) = t ( a ) + l ( a b ) t(b)=t(a)+l(ab) t(b)=t(a)+l(ab)
    • 重复 2 、 3 步 ∣ V ( G ) ∣ − 1 2、3步|V(G)|-1 23V(G)1次,结束算法

图的代数表示及其特征

  • 邻接矩阵:图G的邻接矩阵 A = ( a i j ) A=(a_{ij}) A=(aij)为一个方阵, v i 与 v j v_i与v_j vivj中有几条边,则对应 a i j a_{ij} aij的值,否则 a i j = 0 a_{ij}=0 aij=0
    • A A A的各行元素之和是 G G G的各个顶点的度
    • A n A^n An的第 i i i j j j列元素 a i j ( n ) a_{ij}^{(n)} aij(n)等于由 v i 到 v j v_i到v_j vivj的长度为 n n n的路径数目
    • G G G是连通的,对于 i ≠ j i\neq j i=j v i 与 v j v_i与v_j vivj之间的距离是使 A n A^n An a i j ( n ) ≠ 0 a_{ij}^{(n)}\neq 0 aij(n)=0的最小整数 n n n
  • 关联矩阵:无环图G的关联矩阵 B = ( b i j ) B=(b_{ij}) B=(bij)是一个 ∣ V ( G ) ∣ × ∣ E ( G ) ∣ |V(G)|\times|E(G)| V(G)×E(G)阶的矩阵,当 v i v_i vi e j e_j ej关联时, b i j = 1 b_{ij}=1 bij=1,否则 b i j = 0 b_{ij}=0 bij=0
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值