无序对:
两个元素构成的集合 {a,b} { a , b } 称为无序对,
若 A,B A , B 为两个集合,则 {{a,b}|a∈A∧b∈B} { { a , b } | a ∈ A ∧ b ∈ B } 为 A A 与 B B 构成的无序积
与笛卡尔积的区别在于构成笛卡尔积是由有序对构成
无序积 中的无序对的两个元素不分次序同时又可以是相同的
多重集合
集合中的元素可以重复出现,和Multimap 或 Multiset 中类似
重复度为元素在多重集合中出现的次数
无向图
一个无向图G是一个二元组 <V,E> < V , E > , 即 G=<V,E> G =< V , E >
V V 是顶点集,是一个非空的有穷集合(意思为一个无向图里面至少有一个顶点,并且顶点的个数是有限的)
E E 是边集,它是无序积 V V & V V 的一个有穷的多重子集 通俗来说就是 可以存在重边,以及自环
有向图
D=<V,E> D =< V , E >
和无向图的区别就是 边是有方向的
几个概念
n阶图 : 有n个顶点
零图 : 没有边
平凡图:只有一个顶点,没有边,即一阶零图
空图:没有点,没有边记为 ∅ ∅ 在定义中规定顶点集非空,但是在图的运算中可能产生空图
在无向图 G=<V,E> G =< V , E > 中,设边 e=(vi,vj)∈E e = ( v i , v j ) ∈ E vi,vj v i , v j 为 e e 的端点
那么 e e 与 vi(vj)关联 v i ( v j ) 关 联
如果 vi≠vj v i ≠ v j 那么 vi(vj) v i ( v j ) 与 e e 的关联次数为1
如果 vi=vj v i = v j 那么 vi(vj) v i ( v j ) 与 e e 的关联次数为2
若 vk v k 不是e的端点 那么 vk v k 与 e e 的关联次数为0
简单来说
如果这条边是自环 那个这个环所连的点与这个环的关联次数为2
如果是一条边 那么边的两个端点与这条边的关联次数为1
其他点与这条边的关联次数自然就为0了
在无向图中
如果两个顶点之间至少有一条边 这两个点 相邻
如果两条边有一个共同的点 这两条边相邻
有向图
D=<V,E> D =< V , E > 中, e=<vi,vj>∈E e =< v i , v j >∈ E vi,vj v i , v j 是 e e 的两个端点
vi v i 是 e e 的起点
vj v j 是 e e 的终点
e e 与 vi,vj v i , v j 关联
vi v i 到 vj v j 有一条边 那么这两个顶点相邻
称为
vi v i 邻接 vj v j
vj v j 邻接 vi v i
如果一条边的终点是另一条边的起点 那么这两边相邻
比如这样
此图中 e1 e 1 与 e2 e 2 相邻
在无向图和有向图中
没有边关联的点 是 孤立点
两个端点重合的边 是 环
顶点的度数
无向图 G=<V,E> G =< V , E > vi∈V v i ∈ V 那么 vi v i 连了几条边 那么它的度数就是多少
度记为 dG(vi) d G ( v i ) 简记为 d(vi) d ( v i )
每个环给端点提供的度数为2
有向图 D=<V,E> D =< V , E > vi∈V v i ∈ V
出度: vi v i 作为边的起点次数 (即有多少条边从它指向另一个端点) 记为 d+(vi) d + ( v i )
入度: vi v i 作为边的终点次数 (即有多少条边指向它) 记为 d−(vi) d − ( v i )
度数:作为边的端点次数 记为 d(vi) d ( v i )
显然
d(vi)=d+(vi)+d−(vi) d ( v i ) = d + ( v i ) + d − ( v i )
度数为1的顶点为悬挂顶点
与悬挂顶点关联的边称为悬挂边
最大度: Δ=max{d(v)|v∈V(D)} Δ = m a x { d ( v ) | v ∈ V ( D ) }
最小度: δ=min{d(v)|v intV(D)} δ = m i n { d ( v ) | v i n t V ( D ) }
最大出度: Δ+=max{d+(v)|v∈V(D)} Δ + = m a x { d + ( v ) | v ∈ V ( D ) }
最小出度: δ+=min{d+(v)|v∈V(D)} δ + = m i n { d + ( v ) | v ∈ V ( D ) }
最大入度: Δ−=max{d−(v)|v∈V(D)} Δ − = m a x { d − ( v ) | v ∈ V ( D ) }
最小入度: δ−=min{d−(v)|v∈V(D)} δ − = m i n { d − ( v ) | v ∈ V ( D ) }
握手定理
各顶点的度数之和为边数的两倍
∑ni=1d(vi)=2m ∑ i = 1 n d ( v i ) = 2 m
推论
任何图中,度数为奇数的顶点个数是偶数
简单证明:
∵ ∵ 所有度数之和必为偶数(由握手定理)
∵ ∵ 奇数个奇数+(偶数个或者奇数个)偶数 = 奇数
∴ ∴ 矛盾
定理6.2
所有顶点入度之和( ∑(i=1)nd+(vi) ∑ ( i = 1 ) n d + ( v i ) )=所有顶点出度之和( ∑ni=1d−(vi) ∑ i = 1 n d − ( v i ) )=边数(m)
度数列
设 V={v1,v2,…,vn} V = { v 1 , v 2 , … , v n } 为n阶图G的顶点集
称 d(v1),d(v2),…,d(vn) d ( v 1 ) , d ( v 2 ) , … , d ( v n ) 为G的度数列
对于有向图 可继续划分为 出度列和入度列
几个概念
平行边
在无向图中,关联一对顶点的无向边多余1条,这些边统称为平行便
重数
平行边的条数成为重数
有向平行边
有向图中,关联一对顶点的有向边多于1条,并且起点和终点相同(或者理解为方向相同)
多重图
含平行边的图
简单图
既不含平行边也不含环的图
显然 n阶简单无向图
Δ≤n−1 Δ ≤ n − 1
无向完全图
记为 Kn K n
简单说:每对顶点之间都有一条边的无向简单图
m=C2n=n(n−1)2 m = C n 2 = n ( n − 1 ) 2
有向完全图
简单说:每对顶点之间均有两条方向相反的边的有向简单图
m=2C2n=n(n−1) m = 2 C n 2 = n ( n − 1 )
k− k − 正则图
无向简单图中,各顶点度数均等于k
由握手定理知 n阶 k− k − 正则图中边数 m=kn2 m = k n 2
n阶无向圈图
共有n条边,并且边的顺序是按点的顺序
直接给图:
边集 E={<v1,v2>,<v2,v3>,<v3,v4>,<v4,v1>} E = { < v 1 , v 2 > , < v 2 , v 3 > , < v 3 , v 4 > , < v 4 , v 1 > }
记为 Cn C n
n阶有向圈图
和n阶无向圈图一样,只不过边加上了方向
给图:
边集 E={<v1,v2>,<v2,v3>,<v3,v4>,<v4,v1>} E = { < v 1 , v 2 > , < v 2 , v 3 > , < v 3 , v 4 > , < v 4 , v 1 > }
记为 Cn C n
n阶轮图
就是在无向圈 Cn−1(n≥4) C n − 1 ( n ≥ 4 ) 内放置一个顶点,使得该顶点与 Cn−1 C n − 1 上的每个顶点相邻
所得的简单图 即为n阶轮图,记为 Wn W n
n方体图
简单来说,就是每个顶点与它相邻的顶点,他们的顶点标号的二进制表示只有一位不同 记为 Qn Q n
子图
G=<V,E>,G′=<V′,E′> G =< V , E > , G ′ =< V ′ , E ′ >
两图都是无向图,或者两图都是有向图
如果 G′中的点集和边集都⊆G G ′ 中 的 点 集 和 边 集 都 ⊆ G
那么 G′是G的子图,G是G′的母图 G ′ 是 G 的 子 图 , G 是 G ′ 的 母 图 记为 G′⊆G G ′ ⊆ G
如果 G′≠G G ′ ≠ G 那么 G′是G的真子图 G ′ 是 G 的 真 子 图
如果 V′=V V ′ = V 那么 G′是G的生成子图 G ′ 是 G 的 生 成 子 图 (简单来说:生成子图就是 包含母图的所有顶点,但是包含一部分边(或者全部边))
如果 ∅≠E1⊆E ∅ ≠ E 1 ⊆ E
并且 V1 V 1 为以 E1 E 1 中的边关联的顶点全体为顶点集的 G G 的子图
称为 E1 E 1 的导出子图 记作 G[E1] G [ E 1 ]
简单来说,就是取母图中的一个子边集,并且这些边的两端的端点构成子点集。
补图
就是在原图中,保留所有顶点,然后加边,使得原图变成完全图 Kn K n 然后去掉原有的边,所得的图就是补图
G¯¯¯¯=V G ¯ = V & V V - G G
ps:原图和补图互为补图
如果
G¯¯¯¯≅G G ¯ ≅ G 那么称它们为自补图
图的同构
简单来说 如果其中一个图通过变换可以变成另一个图,那么两图同构 记为 G1≅G2 G 1 ≅ G 2
或者说 若它们都是标定图,可以通过调整一个图的顶点次序,使得 G1 G 1 和 G2 G 2 有相同的度数列,那么两图同构
图的连通性
通路
G=<V,E>,设G中顶点和边的交替序列为Γ=v0e1v1e2⋯elvl G =< V , E > , 设 G 中 顶 点 和 边 的 交 替 序 列 为 Γ = v 0 e 1 v 1 e 2 ⋯ e l v l
要求: vi−1是ei的起点,vi是ei的终点 v i − 1 是 e i 的 起 点 , v i 是 e i 的 终 点 i=1,2,⋯,l i = 1 , 2 , ⋯ , l
那么 Γ为v0到vl的回路 Γ 为 v 0 到 v l 的 回 路
Γ中所含边数即为Γ的长度 Γ 中 所 含 边 数 即 为 Γ 的 长 度
若 v0=vl v 0 = v l 那么称通路为回路 (简单来说,就是通路的起点和终点一样)
简单通路
Γ中所有边各异 Γ 中 所 有 边 各 异 ,便是简单通路
若 v0=vl v 0 = v l 那么称 Γ为简单回路 Γ 为 简 单 回 路
初级通路
Γ中所有顶点各异,且所有边各异 Γ 中 所 有 顶 点 各 异 , 且 所 有 边 各 异 称为初级通路或路径
若 v0=vl v 0 = v l 那么称 Γ Γ 为初级回路或圈
长度为奇数的圈为奇圈,长度为偶数的圈为偶圈
复杂通路
在初级通路的基础上, Γ中有重边 Γ 中 有 重 边 称 Γ为复杂通路 Γ 为 复 杂 通 路
v0=vl v 0 = v l 复杂回路
备注
在无向图中,长度为1的圈由环给出,长度为2的圈由两条平行边给出,在无向简单图中,圈长至少为3,。
在有向图中,长度为1的圈由环给出。在有向简单图中,圈长至少为2
定理6.3
在一个n阶图中,若从顶点 u u 到 v v (u≠v) ( u ≠ v ) 存在通路,则从 u到v存在长度≤n−1的初级通路 u 到 v 存 在 长 度 ≤ n − 1 的 初 级 通 路
简单证明:把通路中重复出现的顶点去掉,这条通路就变成初级通路,既然顶点各异,边各异,长度必然 ≤n−1 ≤ n − 1
定理6.4
在一个n阶图中,如果存在 v到自身的简单回路 v 到 自 身 的 简 单 回 路 , 则从 v v 到自身存在长度不超过 n n 的初级回路
简单证明:也是把重复顶点去掉
无向图连通性
若 vi与vj之间存在通路 v i 与 v j 之 间 存 在 通 路 那么 vi与vj是连通的 v i 与 v j 是 连 通 的
规定 vi与自身连通 v i 与 自 身 连 通
连通图
无向图 G G 是平凡图(一阶零图,即只有一个顶点,没有边)或者 G G 中任意两个顶点都是连通的,则称 G G 是连通图
否则称 G G 是非连通图
连通分支
在原图的一个子图中,其中任意两个顶点都是相互可达,并且其中的任意顶点与子图以外的顶点都是不可达,那么称这个子图为连通分支(连通块)
连通分支的个数记为 p(G) p ( G ) 对于一个连通图, p(G)=1 p ( G ) = 1
短程线
vi与vj是连通的话,那么短程线就是vi到vj之间长度最短的通路 v i 与 v j 是 连 通 的 话 , 那 么 短 程 线 就 是 v i 到 v j 之 间 长 度 最 短 的 通 路
短程线的长度称为 vi到vj之间的距离 v i 到 v j 之 间 的 距 离
记为 d(vi,vj) d ( v i , v j ) 若 vi与vj之间不连通,那么规定d(vi,vj)=∞ v i 与 v j 之 间 不 连 通 , 那 么 规 定 d ( v i , v j ) = ∞
三条性质
1° d(vi,vj)≥0并且当vi=vj时,等号成立 d ( v i , v j ) ≥ 0 并 且 当 v i = v j 时 , 等 号 成 立
2° d(vi,vj)+d(vj,vk)≥d(vi,vk) d ( v i , v j ) + d ( v j , v k ) ≥ d ( v i , v k )
3° d(vi,vj)=d(vj,vi) d ( v i , v j ) = d ( v j , v i )
点割集
如果删去原图中的一些点,使得原图的连通性被破坏,或者说连通分支数量增加,并且如果少删一些点不能导致破坏连通性,那么这些点的集合称为点割集,如果点割集中只有一个点,那么称其为割点
备注:悬挂顶点不可能出现在点割集中
边割集
删去一些边,使得破坏连通性,并且少删一条都不行。 这些边组成的集合称为边割集,简称割集。若只有一条边,则称该边为割边或者桥
备注
1° 完全图 Kn K n 无点割集
2° n阶零图既无点割集,也无边割集
3° 若 G G 是连通图, E′ E ′ 为 G G 的边割集,那么 p(G−E′)=2 p ( G − E ′ ) = 2
4° 若 G G 是连通图, V′是G的点割集 V ′ 是 G 的 点 割 集 ,则 p(G−V′)≥2而且可能p(G−V′)>2 p ( G − V ′ ) ≥ 2 而 且 可 能 p ( G − V ′ ) > 2
点连通度
κ(G)=min{|V′||V′是G的点割集或V′使(G−V′)只有一个顶点} κ ( G ) = m i n { | V ′ | | V ′ 是 G 的 点 割 集 或 V ′ 使 ( G − V ′ ) 只 有 一 个 顶 点 }
那么称 κ(G)是G的点连通度 κ ( G ) 是 G 的 点 连 通 度
边连通度
λ(G)=min{|E′||E′是G的边割集} λ ( G ) = m i n { | E ′ | | E ′ 是 G 的 边 割 集 }
那么称 λ(G)为G的边连通度 λ ( G ) 为 G 的 边 连 通 度
备注
1° 若G是平凡图,则κ(G)=λ(G)=0这里约定min∅=0 若 G 是 平 凡 图 , 则 κ ( G ) = λ ( G ) = 0 这 里 约 定 m i n ∅ = 0
2° 若G是完全图Kn,由于G无点割集,那么显然当删除n−1个顶点之后,G变成平凡图,所以κ(G)=n−1 若 G 是 完 全 图 K n , 由 于 G 无 点 割 集 , 那 么 显 然 当 删 除 n − 1 个 顶 点 之 后 , G 变 成 平 凡 图 , 所 以 κ ( G ) = n − 1
3° 若G中存在割点,则κ(G)=1;若G中存在割边(桥),则λ(G)=1 若 G 中 存 在 割 点 , 则 κ ( G ) = 1 ; 若 G 中 存 在 割 边 ( 桥 ) , 则 λ ( G ) = 1
定理6.5
对于任何无向图G,有
κ(G)≤λ(G)≤δ(G) κ ( G ) ≤ λ ( G ) ≤ δ ( G )
有向图连通性
设D=<V,E>为有向图,设vi,vj为D中任意两个顶点 设 D =< V , E > 为 有 向 图 , 设 v i , v j 为 D 中 任 意 两 个 顶 点
vi到vj之间有通路,那么称vi可达vj,规定vi到自身总是可达 v i 到 v j 之 间 有 通 路 , 那 么 称 v i 可 达 v j , 规 定 v i 到 自 身 总 是 可 达
若vj可达vi,那么称vi与vj是相互可达的 若 v j 可 达 v i , 那 么 称 v i 与 v j 是 相 互 可 达 的
若vi到vj之间存在通路,那么最短的通路称为短程线,短程线的长度称为vi到vj的距离 若 v i 到 v j 之 间 存 在 通 路 , 那 么 最 短 的 通 路 称 为 短 程 线 , 短 程 线 的 长 度 称 为 v i 到 v j 的 距 离
弱连通图或连通图
D为一有向图,如果略去方向所得图是连通图,那么D为弱连通图或连通图 D 为 一 有 向 图 , 如 果 略 去 方 向 所 得 图 是 连 通 图 , 那 么 D 为 弱 连 通 图 或 连 通 图
单向连通图
D中任意两顶点至少一个可达另一个 D 中 任 意 两 顶 点 至 少 一 个 可 达 另 一 个
强连通图
D中任意两顶点相互可达 D 中 任 意 两 顶 点 相 互 可 达
判别有向图D是否为强联通或是否为单向连通 判 别 有 向 图 D 是 否 为 强 联 通 或 是 否 为 单 向 连 通
1° 若有向图D中存在经过每个顶点至少一次的回路,则D是强联通的 若 有 向 图 D 中 存 在 经 过 每 个 顶 点 至 少 一 次 的 回 路 , 则 D 是 强 联 通 的
2° 若有向图D中存在经过每个顶点至少一次的通路,则D是单向连通的 若 有 向 图 D 中 存 在 经 过 每 个 顶 点 至 少 一 次 的 通 路 , 则 D 是 单 向 连 通 的
图的矩阵表示
无向图的关联矩阵
设无向图G=<V,E>,V={v1,v2,⋯,vn},E={e1,e2,⋯,em} 设 无 向 图 G =< V , E > , V = { v 1 , v 2 , ⋯ , v n } , E = { e 1 , e 2 , ⋯ , e m }
令mij为顶点vi与边ej的关联次数,则称(mij)n×m为G的关联矩阵,记作M(G) 令 m i j 为 顶 点 v i 与 边 e j 的 关 联 次 数 , 则 称 ( m i j ) n × m 为 G 的 关 联 矩 阵 , 记 作 M ( G )
mij的取值有三种 m i j 的 取 值 有 三 种
0(vi与ej不关联) 0 ( v i 与 e j 不 关 联 )
1(vi与ej关联一次) 1 ( v i 与 e j 关 联 一 次 )
2(ej是以vi为端点的环) 2 ( e j 是 以 v i 为 端 点 的 环 )
五条性质
1° ∑ni=1mij=2,即M(G)各列元素之和为2 ∑ i = 1 n m i j = 2 , 即 M ( G ) 各 列 元 素 之 和 为 2
2° ∑mi=1mij=d(vi),即M(G)第i行元素之和为vi的度数 ∑ i = 1 m m i j = d ( v i ) , 即 M ( G ) 第 i 行 元 素 之 和 为 v i 的 度 数
3° ∑ni=1d(vi)=∑ni=1∑mj=1=∑mj=1∑i=1n=∑mi=12=2m(握手定理) ∑ i = 1 n d ( v i ) = ∑ i = 1 n ∑ j = 1 m = ∑ j = 1 m ∑ i = 1 n = ∑ i = 1 m 2 = 2 m ( 握 手 定 理 )
4° 若第j列与第k列相同,当且仅当ej与ek是平行边 若 第 j 列 与 第 k 列 相 同 , 当 且 仅 当 e j 与 e k 是 平 行 边
5° ∑mj=1mij=0,当且仅当顶点vi为孤立点 ∑ j = 1 m m i j = 0 , 当 且 仅 当 顶 点 v i 为 孤 立 点
有向无环图的关联矩阵
有向图中的 mij有三种取值 m i j 有 三 种 取 值
1(vi为ej的起点) 1 ( v i 为 e j 的 起 点 )
0(vi与ej不关联) 0 ( v i 与 e j 不 关 联 )
−1(vi是e)j的终点) − 1 ( v i 是 e ) j 的 终 点 )
五条性质
1° 每列恰有一个1和一个-1(规定图中无环)
2° 1的总个数等于-1的总个数,等于边数
3° 第i行中1的个数等于vi的出度,−1的个数等于vi的入度 第 i 行 中 1 的 个 数 等 于 v i 的 出 度 , − 1 的 个 数 等 于 v i 的 入 度
4° 第j列与第k列相同当且仅当ej和ek是平行边 第 j 列 与 第 k 列 相 同 当 且 仅 当 e j 和 e k 是 平 行 边
5° 第i行全为0当且仅当vi是孤立点 第 i 行 全 为 0 当 且 仅 当 v i 是 孤 立 点
有向图的邻接矩阵
设有向图 D=<V,E>,V={v1,v2,⋯,vn},|E|=m,令a(1)ij为顶点vi邻接到顶点vj的边的条数,称(a(1)ij)n×n为D的邻接矩阵,记为A(D) D =< V , E > , V = { v 1 , v 2 , ⋯ , v n } , | E | = m , 令 a i j ( 1 ) 为 顶 点 v i 邻 接 到 顶 点 v j 的 边 的 条 数 , 称 ( a i j ( 1 ) ) n × n 为 D 的 邻 接 矩 阵 , 记 为 A ( D )
两条性质
1° 第i行元素之和为vi的出度 第 i 行 元 素 之 和 为 v i 的 出 度
2° 第j列元素之和为vj的入度 第 j 列 元 素 之 和 为 v j 的 入 度
定理6.6
Al(l≥1)中的元素a(l)ij是vi到vj长度为l的通路数,∑i,ja(ijl)是D中长度为l的通路总数,其中∑ia(l)ij是D中长度为l的回路总数 A l ( l ≥ 1 ) 中 的 元 素 a i j ( l ) 是 v i 到 v j 长 度 为 l 的 通 路 数 , ∑ i , j a i j ( l ) 是 D 中 长 度 为 l 的 通 路 总 数 , 其 中 ∑ i a i j ( l ) 是 D 中 长 度 为 l 的 回 路 总 数
推论
Bl=A+A2+⋯+Al(l≥1),则Bl的元素b(l)ij是D中长度小于等于l的回路总数 B l = A + A 2 + ⋯ + A l ( l ≥ 1 ) , 则 B l 的 元 素 b i j ( l ) 是 D 中 长 度 小 于 等 于 l 的 回 路 总 数
可达矩阵
1表示vi可达vj 1 表 示 v i 可 达 v j
0表示不可达 0 表 示 不 可 达
三条性质
1° 主对角线上的元素全为1,即pij=1,i≤i≤n 主 对 角 线 上 的 元 素 全 为 1 , 即 p i j = 1 , i ≤ i ≤ n
2° D是强联通,当且仅当P(D)的元素全为1 D 是 强 联 通 , 当 且 仅 当 P ( D ) 的 元 素 全 为 1
3° pij=1当且仅当b(n−1)ij≠0,1≤i,j≤n且i≠j p i j = 1 当 且 仅 当 b i j ( n − 1 ) ≠ 0 , 1 ≤ i , j ≤ n 且 i ≠ j
欧拉通路
G中存在经过每条边一次且一次的通路 G 中 存 在 经 过 每 条 边 一 次 且 一 次 的 通 路
欧拉回路
G中存在经过每条边一次仅一次的回路 G 中 存 在 经 过 每 条 边 一 次 仅 一 次 的 回 路
欧拉图
具有欧拉回路的图
定理6.10
判断欧拉图
无向图G中有欧拉回路,当且仅当G是连通图并且没有奇度顶点 无 向 图 G 中 有 欧 拉 回 路 , 当 且 仅 当 G 是 连 通 图 并 且 没 有 奇 度 顶 点
有向图D有欧拉回路,当且仅当D是连通的且所有顶点的入度等于出