图的基本概念
图基本概念及主要结构

2
3
0 82
62
5
4
3
4
3
4 43
有向无环图(DAG图):不包含回路的有向图。
自由树:不包含回路的连通图。
网:在图的每条边上加上一个数字称为权,也称 代价, 带权的图称为网。
图的基本概念和主要结构
ADT 10-1 Graph {
数据: 顶点的非空集合V和边的集合E,每条边由V中顶点的偶对<u, v>表示。
图的基本概念和主要结构
子图:图G的一个子图是图G’=(V’,E’),其中V’(G’)V(G), E’(G’)E(G).
1
1
0
2
0
2
4
3
G1
1
0
2
4
3
G2
1
0
2
4
图G1的子图
4
3
图G2的子图
图的基本概念和主要结构
路径:在无向图G中,一条从s到t的路径是存在一个顶点序
列(s,v1,v2,…,vk,t),使得(s,v1),(v1,v2),…,(vk,t) 都是图G中的边。
有向图中,顶点的度=入度+出度。
1
1
0
2
0
2
4
3
4
3
例如左图中,顶点1,2度分别为2和4。 右图中,顶点0的入度和出度分别为3和1,顶点0
的度为4 顶点2的入度和出度分别为?
图的基本概念和主要结构
生成树:无向图的生成树是一个极小连通子图,
它包含图中所有顶点,但只有足以构成一棵树的
(n-1)条边。去掉一条就不连通,再加上一条边
图的基本概念和主要结构
10.1.1 图的定义与术语
图论:图的基本概念

空子集且 E1 是 E 的子集 如果 G1 是 G 的子图,则说 G 包含 G1
Tips:
1.注意,顶点集合非空
∑ 2.显然的,Kn 有
p
k(k ‒ ������)
������(������,������)·2 ������ 个子图
Tips:
1.生成子图中包含原图的所有顶点
n(������ ‒ ������)
2.显然的,Kn 有2 ������ 生成子图
表示
设 x 是 G 的一条边,则 G 的生成子图(V,E\{x})简记为 G-x(生成子
图只能去边)
如果 u 和 v 是 G 的两个不邻接的顶点,则图(V,E∪{u,v})简记成
设 G 是一个连通图,则下列命题等价: (1)G 是一个欧拉图 (2)G 的每个顶点的度都是偶数 (3)G 的边集能划分成若干互相边不相交的圈
(3)延伸---欧拉迹 1.包含图的所有顶点和边的迹称为欧拉迹 判定 图 G 有一条欧拉迹当且仅当 G 是连通的且有两个奇度顶点 2.一笔画问题 若每个顶点的度均为大于或等于 2 的偶数,图又是连通的,则这个图能 一笔画出,并且最后还能回到出发点。
(2)当 v0=vn 时,则称此通道为闭通道(回路/复杂回路) (3)在计算通道的长时,重复走过的边重复计算
(4)如果一条闭通道上的各边互不相同,则此闭通道称为闭迹(简单回
路)
(5)如果闭通道上各顶点互不相同,则称此闭通道为圈,或回路(初级回
路)
(6)可见,迹和路是通道的特例,闭迹和回路是闭通道的特例。
图 G 为偶图的充分必要条件是它的所有圈都是偶数长 6.5 欧拉图
图的基本概念与性质

第3章图的基本概念与性质一、概念图——图可以用集合的形式表示,即图可以表示为一个三元组,包含结点集、边集,以及边与结点对集间的映射.如果用结点对来表示边,则图可以表示成一个由结点集与边集组成的二元组.定义3.1.1图G是一个三元组<V(G),E(G),ϕG>,其中V(G)是一个非空的结点集(或称顶点集),E(G)是边集,ϕG是从边集E(G)到结点偶对(无序偶或有序偶)集上的函数.图定义中的结点偶对可以是有序的,也可以是无序的.有向边、端点——若图中的边e所对应的结点偶对是有序的,记为<a,b>,则称e是有向边(简称弧).a,b分别称为弧的始点与终点,并均称为e的端点.称e是关联于结点a 和b的,结点a和结点b是相、邻的,或称结点a和结点b是邻接的.无向边、端点——若图中的边e所对应的结点偶对是无序的,记为(a,b),则称e是无向边(简称棱).a,b称为e的端点.称e是关联于结点a和b的,结点a和结点b是相、邻的,或称结点a和结点b是邻接的.有向图——每一条边均为有向边的图称为有向图.无向图——每一条边均为无向边的图称为无向图.底图——如果把有向图中每条有向边都看作无向边,就得一个无向图,此无向图称为原有向图的底图.底图只表示出结点间的连接关系而没有表示出连接边的方向.弧立结点——图中不与任何相邻的结点称为弧立结点.零图——全由孤立结点构成的图称为零图.自回路(环)——关联于同一结点的一条边称为自回路或环.重边(平行边)——在有向图中,两结点间(包括结点自身间)若多于一条边,则称这几条边为重边或平行边.多重图——含有重边的图称为多重图.线图——非多重图称为线图.定义3.1.2(简单图)无自回路的线图称为简单图.定义3.1.3(结点的度数、最大度、最小度)图G=<V,E>中,与V中结点v(v∈V)相关联的边数,称为该结点的度数,记作为deg(v).记∆(G)= max{deg(v)| v∈V(G)},δ(G)= min{deg(v)| v∈V(G)},分别称为G=<V,E>的最大度和最小度.定义3.1.4(出度、入度、度数)在有向图中,对于任何结点v,以v为始点的边的条数称为结点v的引出次数(或出度);以v为终点的边的条数称为结点v的引入次数(或入度);结点v的引出次数和引入次数之和称为v的次数(或度数).定义3.1.5(二部图)设G=〈V,E>是n阶无向图,若能将V分成两个互不相交的子集V1与V2使得G中任一边的两端点都不在同一个V i(i=1,2)中,则称G为二部图.记G=<V1,V2,E>.定义3.1.6(完全图)简单图G=<V,E>中,若每一对结点间都有边相连,则称该图为完全图.有n个结点的无向完全图记为K n.定义3.1.7(k-正则图)若无向简单图中,每个结点的度均为某个固定整数k,则称该图为k-正则图.定义3.1.8(赋权图)赋权图G是一个三重组<V,E,g>或四重组<V,E,f,g>,其中V是结点集合,E是边的集合,f是定义在V上的函数,g是定义在E上的函数.定义3.1.9(补图)设图G=<V,E>有n个顶点,图H=<V,E’>也有同样的顶点,而E’是由n个结点的完全图的边删去E所得,则图H称为图G的补图,记为H=G,显然,G=H.定义3.1.10(子图、真子图、生成子图)设G=<V,E>和G’=<V’,E’>是两个图.(1)若V’⊆V且E’⊆E,则称G’是G的子图;(2)若V’⊂V或E’⊂E,则称G’是G的真子图;(3)若V’=V和E’⊆E,则称G’是G的生成子图;(4)若子图G’中没有孤立结点,G’由E’唯一确定,则称G’为由边集E’导出的子图;(5)若子图G’中,对V’中的任意两个结点u,v,当u,v∈V’时有[u,v]∈E’,则G’由V’唯一确定,则称G’为由结点集V’导出的子图.定义3.1.11(补图) 设G’=<V’,E’>是G=<V,E>的子图,若给定另外一个图G’’=<V’’,E’’>,使得E’’=E-E’,且V’’中仅包含E’’的边所关联的结点,则称G’’是子图G’的相对于G 的补图.定义3.1.12(同构) 设G=〈V,E>和G’=<V’,E’>是两个图,若存在从V到V’的双射函数f,使对任意[a,b]∈E,当且仅当[f(a),f (b)]∈E’,并且[a,b]和[f(a),f (b)]有相同的重数,则称G和G’是同构的.定义3.1.13(路径) 在图G=<V,E>中,设v0,v1,…,v n∈V,e1,e2,….,e n∈E,其中e i是关联于结点v i-1,v i的边,交替序列v0 e1 v1 e2…e n v n称为联结v0到v n的路径(或称路).v0与v n分别称为路的起点与终点,边的数目n称为路的长度.孤立点——长度为0的路定义为孤立点.简单路径——若序列中所有的边e1,e2,…., e n均互不相同,则称此路径为简单路径.基本路径——若序列中所有的点v0,v1,…,v n均互不相同,则称此路径是基本路径.回路——若v0=v n,即路径中的终点与始点相重合,则称此路径为回路.简单回路——没有相同边的回路称为简单回路.基本回路(圈)——各结点均互不相同的回路称为基本回路(或圈).奇圈(偶圈)——长度为奇(偶)数的圈称为奇(偶)圈.定义3.2.1(可达、连通)在图G=<V,E>中,设有结点v j与v k,若从v j到v k存在任何一条路径,则称结点v k从结点v j可达,也称结点v j与v k是连通的.定义3.2.2(连通图、非连通图、分离图)若G是平凡图或G中任意两个结点都是连通的,则称G是连通图,否则称G为非连通图或分离图.定义3.2.3(连通分支)设G=<V,E>是图,连通关系的商集为{V1,V2,…,V m},则其导出的子图G(V i)(i=1,2,…m)称为图G的连通分支(图),将图G的连通分支数记作W(G).定义3.2.4(短程线)设u与v是图G的两个结点,若u与v连通,则称u与v之间的长度最短的路为u与v之间的短程线,短程线的长度可作为结点u与v间的距离,记作d(u,v),其满足下列性质:d(u,v) ≥ 0,u=v时,d(u,v) =0 (非负性)d(u,v) = d(v,u) (对称性)d(u,v) + d(v,w) ≥d(u,w) (三角不等式)若u与v不连通,则通常记d(u,v) = ∞.定义3.2.5(单向连通、强连通、弱连通)在简单有向图中,如果在任何结点偶对中,至少从一个结点到另一个结点可达的,则称图G是单向(侧)连通的;如果在任何结点偶对中,两结点对互相可达,则称图G是强连通的;如果图的底图(在图G中略去边的方向,得到无向图)是连通的,则称图G是弱连通的.定义3.2.6(极大强连通子图、极大单向连通子图、极大弱连通子图、强分图、单向分图、弱分图) 在简单有向图G =<V ,E >中,G’是G 的子图,如G’是强连通的(单向连通的,弱连通的),且没有包含G’的更大的子图G’’是强连通的(单向连通的,弱连通的),则称G’是极大强连通子图(极大单向连通子图,极大弱连通子图)又叫强分图(单向分图,弱分图).定义3.2.7(点割集、割点) 设无向图G =<V ,E >为连通图,若有点集V 1⊂V ,使图G 删除了V 1的所有结点后,所得的子图是不连通图,而删除了V 1的任何真子集后,所得的子图是连通图,则称V 1是G 的一个点割集.若某个结点构成一个点割集,则称该结点为割点.定义3.2.8(点连通度) 若G 为无向连通图且不含Kn 为生成子图,则称k (G )=min{|V 1| ∣V 1是G 的一个点割集}为G 的点连通度(简称连通度).规定:完全图Kn 的点连通度为n ,n ≥1.非连通图的点连通度为0.若k (G ) ≥k ,则称G 为k -连通图.定义3.2.9(边割集、割边、桥) 设无向图G =<V ,E >为连通图,若有边集E 1⊂E ,使图G 删除了E 1的所有边后,所得的子图是不连通图,而删除了E 1的任何真子集后,所得的子图是连通图,则称E 1是G 的一个边割集.若某个边构成一个边割集,则称该结点为割边(或桥). 定义3.2.10(连通度) 若G 为无向连通图,则称λ(G )=min{|E 1| ∣E 1是G 的一个边割集}为G 的边连通度.规定:非连通图的边连通度为0.若λ(G ) ≥k ,则称G 为k 边-连通图.定义3.3.1(邻接矩阵) 设G =<V ,E >是一个简单图,其中V ={v 1,v 2,…, v n },则n 阶方阵A (G )=(a ij )称为G 的邻接矩阵.其中各元素⎪⎩⎪⎨⎧==ji v v v v a j i j i ij 不相邻或与相邻与01 定义3.3.2(可达性矩阵) 设G =<V ,E >是一个简单图,|V |=n ,假定G 的结点已编序,即V ={v 1,v 2,…, v n },定义一个n ⨯n 方阵P =(p ij ).其中⎪⎩⎪⎨⎧=不存在一条路与从至少存在一条路到从j i j i ij v v v v p 01 则称矩阵P 为图G 的可达性矩阵.最短路径的数学模型——给定一个网络N (有向或无向赋权图),u 0与v 0是N 中指点的两个顶点,在N 中找一条从u 0到v 0且权最小的路.规定N 中的一条路P 的权w (P )称为p 的长度.若N 中存在从u 到v 的路,则将N 中从u 到v 且权最小的路称为u 到v 的最短路,其长度称为u 到v 的距离,记为d N (u ,v ).二、定理定理3.1.1(握手定理) 设G 是一个图,其结点集合为V ,边集合为E ,则∑∈=V v E v ||2)deg(定理3.1.2 图中次数为奇数的结点有偶数个.定理3.1.3 在任何有向图中,所有的入度之和等于所有结点的出度之和.定理3.1.4 有n 个结点的无向完全图K n 的边数为n (n -1)/2.定理3.1.5 在具有n 个结点的简单图G =<V , E >中,若从结点v j 到结点v k 有一条路,则从结点v j 到结点v k 有一条长度不大于n -1的路.定理3.1.5推论在一个具有n个结点的图G=<V, E>中,如果从结点v j到结点v k有一条路,则从结点v j到结点v k必有一条长度小于n的通路.定理3.1.6在具有n个结点的图G=<V,E>中,如果经v有一条回路,则经v有一条长度不超过n的回路.定理3.1.6推论在具有n个结点的图G=<V,E>中,如果经v有一条简单回路,则经v 有一条长度不超过n的基本回路.定理3.2.1一个有向图是强连通的,当且仅当G中有一个回路,其至少包含每个结点一次.定理3.2.2在有向图G=〈V,E〉中,G的每一结点都在也只在一个强(弱)分图中.定理3.2.3在有向图G=〈V,E〉中,G的每一结点都处在一个或一个以上的单向分图中.定理3.2.4(Whitney)对于任何一个图G,有k(G) ≤λ (G) ≤δ(G)其中k(G)、λ (G)、δ(G)分别为G的点连通度、边连通度和最小度.定理3.2.5一个连通无向图G中的结点v是割点的充分必要条件是存在两个结点u与w,使得结点u与w的每一条路都通过v.三、方法1.两图同构的必要条件:(1)结点数相等;(2)边数相等;(3)度数相同的结点数相等.2.邻接矩阵运算特征(1)图G=<V,E>的邻接矩阵不唯一,而与V中的元素标定次序有关.对V中各元素不同的标定次序可得到同一图G的不同邻接矩阵.但这些邻接矩阵经过适当地交换行和列的次序,就从一个邻接矩阵变到另一个邻接矩阵.根据不同邻接矩阵所作的有向图都是同构的.因此,可选V元素的任一种标定次序所得出的邻接矩阵.(2)当有向线图代表关系时,邻接矩阵就可看作是一种关系矩阵.有向图是自反的,矩阵的对角线元素全为1.有向图是非自反的,矩阵的对角线元素全为0.有向图是对称的,对所有i和j,矩阵是对称的.有向图是反对称的,对所有i和j,矩阵是以主对角线对称的元素不可能同时为1.(3)零图的邻接矩阵的元素全为零,并称其为零矩阵.(4)图的每一顶点都有自回路而再无其它边时,图的邻接矩阵是单位矩阵.(5)设有向线图G=<V,E>的邻接矩阵是A,则A的逆图的邻接矩阵是A的转置矩阵.3.可达性矩阵的计算方法一般地,可以由图G的邻接矩阵A得到可达性矩阵P.即令B n=A+A2+…+A n,在从B n中将不为0的元素改为1,而为零的元素不变,这样改换的矩阵即为可达性矩阵P.也可以将矩阵A,A2,…,A n分别改为布尔矩阵A,A(2),…,A(n),简化计算,故P= A∨A(2)∨…∨A(n),其中A(i)表示在布尔运算下A的i次方.4.求最短路径的Dijkstra算法步骤(1)置l(u0)=0,对v∈V-{ u0},l(v)= +∞,S0 ={ u0},i=0.(2)对每个v∈ N G-Si(u i),用min{ l(v),l(u i)+ w(u i,v)}代替l(v).若l(v)取到l(u i)+w(u i,v),则在v旁边记下(u i).计算min(v∈G- S i ){ l(v)},并将达到最小值的这个顶点记为u i+1.置S i+1= S i⋃{ u i+1}.(3)若i=|G|-1,则算法停止,否则用置i 为i+1,并转入第(2)步.算法结束时,从u0到v的距离由最终的标号给出l(v),并且可根据各个顶点旁边的(u i)追回出从u0到v的最短路径.若为求某个特定的顶点v时,则可以在u j= v时使算法停止即求得结果.。
第14章-图基本概念

不同的圈(以长度3的为例) ① 定义意义下 无向图:图中长度为l(l3)的圈,定义意义下为2l个 有向图:图中长度为l(l3)的圈,定义意义下为l个 ② 同构意义下:长度相同的圈均为1个
试讨论l=3和l=4的情况
v 的关联集 I( v ) { e |e E ( G ) e 与 v 关 } 联 ② vV(D) (D为有向图)
v的后继D 元 (v)集 {u|uV(D)v,u E(D)uv} v的先驱D 元 (v)集 {u|uV(D)u,v E(D)uv} v的邻域ND(v)D (v)D (v) v的闭邻N域 D(v)ND(v){v}
2 m d (v) d (v) d (v)
v V
v V 1
v V 2
由于2m, d(v) 均为偶数,所以 d(v) 为偶数,但因为V1中
vV2
vV1
顶点度数为奇数,所以|V1|必为偶数.
12
握手定理应用
补例1 无向图G有16条边,3个4度顶点,4个3度顶点,其 余顶点度数均小于3,问G的阶数n为几? 解 本题的关键是应用握手定理. 设除3度与4度顶点外,还有x个顶点v1, v2, …, vx, 则
8
多重图与简单图
定义14.3 (1) 无向图中的平行边及重数:如果关联一对顶点的无向边多
于1条,则称这些边为平行边,平行边的条数称为重数。 (2) 有向图中的平行边及重数(注意方向性) 如果关联一对顶点的有向边多于1条,并且这些边的始点与
终点相同,则称这些边为平行边,平行边的条数称为重数。 (3) 多重图:含平行边的图称为多重图。 (4) 简单图:既不含平行边也不含有环的图。 在定义14.3中定义的简单图是极其重要的概念
图论

图论1.图的基本概念图:由一些点和连接两点间的连线组成图1在这个图中,521,,,v v v 称为这个图的顶点,顶点之间的连线621,,,e e e 称为这个图的边。
通常我们用V 表示一个图中所有顶点的集合,用E 表示一个图中所有边的集合。
于是一个图G 通常被定义为()E V G ,=,在上图中{}521,,,v v v V =,{}621,,,e e e E = 图的阶数:一个图中含有的顶点数。
例如上图中含有5个顶点,故上图称为5阶图 有向边(弧):如果在图的定义中要求边e 对应的序偶><b a ,是有序的,即前后顺序是不能颠倒的,则称边e 为有向边或弧。
无向边:如果在图的定义中要求边e 对应的序偶><b a ,是无序的,即前后顺序是可以颠倒的,则称边e 为无向边无向图:如果一个图中的每一条边都是无向边,则称这个图为无向图 有向图:如果一个图中的每一条边都是有向边,则称这个图为有向图 如果图的某个顶点和某条边是相联的,则称它们是相关联的顶点的次数:在无向图中把与某个顶点相关联的边数称为该顶点的次数。
环算两次,顶点v 的次数记为()v d在有向图中从顶点v 出去的边数,称为顶点v 的出度,记为()v d +进入顶点v 的边数,称为顶点v 的入度,记为()v d-,()()()v d v dv d -++=定理:一个图中所有的顶点的次数之和等于边数之和的两倍 推论:任何图中奇数次顶点的总数必为偶数例:一次聚会中,认识奇数个人的人数必为偶数 孤立点:次数为0的顶点。
图2 图3多重边:在图中,如果两个顶点之间的边多于一条,那么这几条边就称为多重边。
多重图:含有多重边的图环:如果图中某条边的起点和终点为同一个顶点,那么称这条边为环 简单图:既没有多重边又没有环的图在图中如果顶点i v 和j v 之间至少存在一条边,那么称顶点i v 和j v 是相邻的。
如果边i e 和j e 之间至少有一个共同顶点,则称边i e 和j e 是相邻的子图:设有图()111,E V G =和()221,E V G =,如果21V V ⊆并且21E E ⊆,则称图1G 是图2G 的一个子图生成子图:,如果21V V =并且21E E ⊆,则称图1G 是图2G 的一个生成子图图4图5链:以顶点开始以顶点结束的顶点和边的非空有限交替序列 例如43152v e v e v 就是一条链,而4312v e v v 却不是一条链圈:如果一条链的起点和终点是同一个顶点,则称这条链是一个圈如21152v e v e v路:当一条链中所有边和所有顶点均不相同时就称这条链为路 回路:如果一个圈中的所有边均不向图并且除第一个顶点和最后一个顶点相同外其余顶点都不相同,则称这个圈为回路连通图:如果某个图中的任何两个顶点之间至少存在一条链,则称这个图为连通图在实际的应用中,经常会涉及到图中各个顶点之间的某种联系,例如,在城市公路交通图中,需要说明两个路口之间的路段的长度,这时就需要给图的边赋以某个数值(称为线权)或给顶点赋以某个数值(称为点权),我们把这种赋以了数值的图称为加权图或网络。
图论讲义-图的基本概念

到目前为止,判断两图同构 还只能从定义出发。判断过 程中不要将两图同构的必要 条件当成充分条件。
注意:在研究图的过程中,顶点的位置以及边的曲直长短 都是无关紧要的。而且也没有假定这些顶点和边都要在一 个平面上(正方体的顶点和棱也可构成图)。我们研究的 只是顶点的多少及这些边是连接那些顶点的。
五、顶点的度
若e=(u,v),则表示u到v的一条边(Edge),此时的
图称为无向图(Undigraph)。
有向图(Digraph)、无向图(Undigraph)
V1 V4
V1
V5 V2 V3 V2 V3
V4
有向图(Digraph)、无向图(Undigraph)
例1、设V={v1,v2,v3,v4,},E={e1,e2,e3,e4,e5},满足e1=(v1,v2),
六、路与图的连通性
v1 v2 v5
图G中,取Γ1=v1v2v3,
v3
v4
G
Γ2=v1v2v3v4v2, Γ3=v1v2v3v2v3v4 则 Γ1,Γ2,Γ3依次为长为2,4,5的 通路,其中Γ1与Γ2为简单通路, Γ1为基本通路。 由定义可看出,G中v1v2v5v1为 长为3的圈,v1v2v3v4v2v5v1为 长为6的简单回路。
e2=(v2,v3),e3=(v2,v3),e4=(v3,v4),e5=(v4,v4),则G=(V,E)是一个图。图 中边集E的边也可直接由点对表示,而将E作为多重集(即允许E中有相同元素的 集合)。 例2、设V={v1,v2,v3,v4},E={(v1,v2),(v1,v2),(v2,v3)},则H=(V,E)是 一个图。 e
d (V ) 2m
i 1 i
n
五、顶点的度
推论:任何图(无向图或有向图)中,度为奇数的顶点个
图论--图的基本概念

图论--图的基本概念1.图:1.1⽆向图的定义:⼀个⽆向图G是⼀个有序的⼆元组<V,E>,其中V是⼀个⾮空有穷集,称作顶点集,其元素称作顶点或结点。
E是⽆序积V&V的有穷多重⼦集,称作边集,其元素称作⽆向边,简称边。
注意:元素可以重复出现的集合称作多重集合。
某元素重复出现的次数称作该元素的重复度。
例如,在多重集合{a,a,b,b,b,c,d}中,a,b,c,d的重复度分别为2,3,1,1。
从多重集合的⾓度考虑,⽆元素重复出现的集合是各元素重复度均为1的多重集。
1.2有向图的定义:⼀个有向图G是⼀个有序的⼆元组<V,E>,其中V是⼀个⾮空有穷集,称作顶点集,其元素称作顶点或结点。
E是笛卡尔积V✖V的有穷多重⼦集,称作边集,其元素为有向边,简称为边。
通常⽤图形来表⽰⽆向图和有向图:⽤⼩圆圈(或实⼼点)表⽰顶点,⽤顶点之间的连线表⽰⽆向边,⽤带箭头的连线表⽰有向边。
与1.1,1.2有关的⼀些概念和定义:(1)⽆向图和有向图统称为图,但有时也把⽆向图简称作图。
通常⽤G表⽰⽆向图,D表⽰有向图,有时也⽤G泛指图(⽆向的或有向的)。
⽤V(G),E(G)分别表⽰G的顶点集和边集,|V(G)|,|E(G)|分别是G的顶点数和边数,有向图也有类似的符号。
(2)顶点数称作图的阶,n个顶点的图称作n阶图。
(3)⼀条边也没有的图称作零图,n阶零图记作N n。
1阶零图N1称作平凡图。
平凡图只有⼀个顶点,没有边。
(4)在图的定义中规定顶点集V为⾮空集,但在图的运算中可能产⽣顶点集为空集的运算结果,为此规定顶点集为空集的图为空图,并将空图记作Ø。
(5)当⽤图形表⽰图时,如果给每⼀个顶点和每⼀条边指定⼀个符号(字母或数字,当然字母还可以带下标),则称这样的图为标定图,否则称作⾮标定图。
(6)将有向图的各条有向边改成⽆向边后所得到的⽆向图称作这个有向图的基图。
(7)若两个顶点v i与v j之间有⼀条边连接,则称这两个顶点相邻。
图的基本概念与握手定理

定理2 设D=<V,E>为任意有向图,V={v1,v2,…,vn}, |E|=m, 则
n
n
n
d(vi ) 2m, 且
d (vi ) d (vi ) m
i 1
i 1
i 1
15
握手定理推论及应用
推论 任何图 (无向或有向) 中,奇度顶点的个数是 偶数.
例1 无向图G有16条边,3个4度顶点,4个3度顶 点,其余顶点度数均小于3,问G的阶数n为几?
解 设除3度与4度顶点外,还有x个顶点v1, v2, …, vx, 则 d(vi) 2,i =1, 2, …, x,
于是 32 24+2x
得 x 4, 阶数 n 4+4+3=11.
16
五、图的同构
定义 设G1=<V1,E1>, G2=<V2,E2>为两个图(有向或 无向图), (1)若存在双射函数f:V1V2, 对于vi,vjV1,
分别为D的最大出度、最小出度、最大入度、最小 入度。简记作△、、 △+、+ 、 △- 、- 。
14
四、握手定理
定理1 设G=<V,E>为任意无向图,V={v1,v2,…,vn},
|E|=m, 则
n
d(vi ) 2m
i 1
证 G中每条边 (包括环) 均有两个端点,所以在计算G中各顶点 度数之和时,每条边均提供2度,m 条边共提供 2m 度.
13
三、 结点的度数
在无向图G中,令 △(G)=max{d(v)|v∈V(G)} (G)= min{d(v)| v∈V(G) }
称△(G)和 (G)分别为G的最大度和最小度。
在有向图D中,类似定义△(D)、(G)。另外,令 △+(G) = max{d+(v)| v∈V(D) } +(G) = min{d+(v)| v∈V(D) } △-(G) = max{d-(v)| v∈V(D) } -(G) = min{d-(v)| v∈V(D) }
离散数学第七章图的基本概念

4.无向图的连通性
若无向图G中任何两顶点都连通,则称G是连通图.
对于任意的无向图G.设V1,V2,…,Vk是顶点之间连通关系的 等价类,则称他们的导出子图为G的连通分支.用p(G)表示G 的连通分支数.
V1 e1
e2 e3
V3
e4 V2
V4
a
de
h
i
b
c
f
g
5.有向图的连通性
若略去有向图D中各边的键头,所得无向图是无向连通图,则 称D是弱连通图(或称D是连通图).
(2) mij d (vi )(i 1,2,..., n)
j 1
mn
nm
n
(3) mij mij d(vi ) 2m
j1 i1
i1 j1
i 1
m
(4) mij 0 vi是孤立点 j 1
(5)若第j列与第k列相同, 则说明e j与ek为平行边.
2.有向图的关联矩阵
设有向图D=<V,E>,V={v1,v2,…,vn},E={e1,e2,…,em} 1, vi为ej的始点
e1,e2,e3},{e1,e2,
e2
e4},{e9}等边割集 ,e9是桥.
e3 V4
e5 e6
V5 e4
V6
e9
V7
7.3 图的矩阵表示
1.无向图的关联矩阵
设无向图G=<V,E>,V={v1,v2,…,vn},E={e1,e2,…,em}
令mij为顶点vi与ej的关联次数, 则称(mij)n×m为G的关联矩阵.记为M(G)
若Γ 满足:vi-1,vi为ei的端点(若G为有向图,vi-1是ei的始 点,vi是ei的终点)i=1,2,…,k,则称Γ 为G中通路,v0,vk分 别称为通路的始点和终点,Γ 中边的数目k称为通路长度.
图学基础教程习题集答案

图学基础教程习题集答案第一章:图学基本概念1. 图的定义是什么?答案:图是由顶点(或称为节点)和边组成的数学结构,其中边是顶点之间的连接。
2. 什么是有向图?答案:有向图是一种图,其中的边具有方向性,从一个顶点指向另一个顶点。
第二章:图的表示方法1. 邻接矩阵的优缺点是什么?优点:易于实现,可以快速判断任意两个顶点之间是否存在边。
缺点:空间复杂度高,对于稀疏图来说效率较低。
2. 邻接表的优缺点是什么?优点:空间效率高,对于稀疏图特别适用。
缺点:需要额外的时间来检查两个顶点之间是否存在边。
第三章:图的遍历1. 深度优先搜索(DFS)的基本思想是什么?答案:从图中的一个顶点开始,沿着边尽可能深地搜索,直到无法继续,然后回溯到上一个顶点,继续搜索其他路径。
2. 广度优先搜索(BFS)的基本思想是什么?答案:从图中的一个顶点开始,逐层遍历所有可达的顶点,直到所有顶点都被访问过。
第四章:最小生成树1. 最小生成树问题的定义是什么?答案:在无向图中,最小生成树是一棵连接所有顶点的树,且边的总权重最小。
2. Kruskal算法的基本步骤是什么?答案:Kruskal算法通过按权重递增的顺序选择边,确保选择的边不会形成环,直到所有顶点都被连接。
第五章:最短路径问题1. Dijkstra算法的工作原理是什么?答案:Dijkstra算法通过维护一个优先队列,不断地选择距离起点最近的顶点,并更新其邻接顶点的距离。
2. Bellman-Ford算法与Dijkstra算法的主要区别是什么?答案:Bellman-Ford算法可以处理带有负权重边的图,而Dijkstra算法不能。
第六章:图的着色1. 图的着色问题的定义是什么?答案:图的着色问题是指给图中的每个顶点分配一种颜色,使得相邻的顶点颜色不同。
2. 贪心算法在图的着色问题中的应用是什么?答案:贪心算法在图的着色问题中,从顶点集合中选择一个顶点,为其分配一种颜色,然后移动到下一个顶点,并为其分配一种与相邻顶点不同的颜色。
图论第一章 图的基本概念

0.5 n 0
0.5
1 2 1.5 t1
0.5
00
1 0.8
0.6 0.4 x 0.2
图论及其应用
1
1
0.5 n 0
0.5
1 2 1.5 t1
0.5
00
1 0.8
0.6 0.4 x 0.2
第一章 图的基本概念
本次课主要内容
图的概念与图论模型
(一)、图论课程简介
(二)、图的定义与图论模型 (三)、图的同构 (四)、完全图、偶图与补图 (五)、顶点的度与图的度序列
0.5
00
1 0.8
0.6 0.4 x 0.2
(四)、完全图、偶图与补图
1、每两个不同的顶点之间都有一条边相连的简单图称为 完全图 .
在同构意义下,n个顶点的完全图只有一个,记为 Kn
K2
K3
K5
容易求出: m(Kn )
1 2
n(n
1)
20
1
0.5 n 0
0.5
1 2 1.5 t1
0.5
00
1 0.8
定理:若n阶图G是自补图( G G ),则有:
n 0,1(mod 4)
证明:n阶图G是自补图,则有:
22
H G 1
0.5 n 0
0.5
1 2 1.5 t1
0.5
00
1 0.8
0.6 0.4 x 0.2
m(G)
m(G)
m(Kn )
1 2
n(n
1)
所以:
m(G) 1 n(n 1) 4
由于n是正整数,所以:n 0,1(mod 4)
推论2 正则图的阶数和度数不同时为奇数 。
什么是图的基本概念和特征

什么是图的基本概念和特征图是一种数学结构,用于表示多个对象之间的关系。
图由节点(vertex)和边(edge)组成,节点表示对象,边表示节点之间的关系。
图的基本概念和特征包括节点的度、路径、连通性、连通分量等。
1. 节点的度:节点的度是指与该节点相连的边的数量。
对于有向图来说,节点的度分为入度和出度,分别表示指向该节点的边的数量和由该节点指出的边的数量。
节点的度可以用来描述节点的重要性和连接的紧密程度。
2. 路径:路径是指由边连接的一系列节点的序列。
路径的长度是指路径中包含的边的数量。
最短路径是指连接两个节点之间具有最少边数的路径。
路径可以用来描述节点之间的关系和节点之间的可达性。
3. 连通性:图的连通性表示图中任意两个节点之间是否存在路径。
如果图中任意两个节点之间都存在路径,那么图被称为连通图;如果存在某些节点之间不存在路径,那么图被称为非连通图。
连通性可以用来描述图的整体连接情况。
4. 连通分量:连通分量是指图中的最大连通子图。
一个连通分量包含一组相互可达的节点,并且在该连通分量内部的任意两个节点之间都存在路径,而与该连通分量外的节点之间不存在路径。
图可以由多个连通分量组成。
图有以下几种常见的特征:1. 有向图和无向图:根据边的有向性,图可以分为有向图和无向图。
在无向图中,边没有方向,表示节点之间的双向关系;而在有向图中,边有方向,表示节点之间的单向关系。
2. 权重:图的边可以带有权重,用来表示节点之间的距离、成本等。
带权重的图被称为带权图,而不带权重的图被称为无权图。
3. 稀疏图和稠密图:如果图中的边数接近节点数的平方,那么图被称为稠密图;如果图中的边数相对较少,那么图被称为稀疏图。
稠密图和稀疏图在算法设计和空间复杂度上有不同的考虑。
4. 循环和非循环图:如果图中存在一个节点可以通过一系列边回到自身,那么图被称为循环图;如果图中不存在这样的节点,那么图被称为非循环图(也称为无环图)。
5. 连通图和非连通图:根据连通性,图可以分为连通图和非连通图。
图论基础:图的基本概念和应用

图论基础:图的基本概念和应用图论是数学中的一个分支领域,研究的是图的性质和图上的问题。
图被广泛应用于计算机科学、电子工程、运筹学、社交网络分析等领域。
本文将介绍图论的基本概念和一些常见的应用。
一、图的基本概念1. 顶点和边图是由顶点和边组成的,顶点代表图中的元素,边则代表元素之间的关系。
通常顶点表示为V,边表示为E。
2. 有向图和无向图图可以分为有向图和无向图。
在无向图中,边是没有方向的,顶点之间的关系是双向的;而在有向图中,边是有方向的,顶点之间的关系是单向的。
3. 权重在一些应用中,边可能具有权重。
权重可以表示顶点之间的距离、成本、时间等概念。
有权图是指带有边权重的图,而无权图则是指边没有权重的图。
4. 路径和环路径是指由一系列边连接的顶点序列,路径的长度是指路径上边的数量。
环是一种特殊的路径,它的起点和终点相同。
5. 度数在无向图中,顶点的度数是指与该顶点相关联的边的数量。
在有向图中分为出度和入度,出度是指从该顶点出去的边的数量,入度是指指向该顶点的边的数量。
二、图的应用1. 最短路径问题最短路径问题是图论中的一个经典问题,它研究如何在图中找到两个顶点之间的最短路径。
这个问题有许多实际应用,例如在导航系统中寻找最短驾驶路径,或者在电信网络中找到最短的通信路径。
2. 最小生成树最小生成树是指一个连接图中所有顶点的无环子图,并且具有最小的边权重之和。
这个概念在电力网络规划、通信网络优化等领域有广泛的应用。
3. 路由算法在计算机网络中,路由算法用于确定数据包在网络中的传输路径。
图论提供了许多解决路由问题的算法,如最短路径算法、Bellman-Ford 算法、Dijkstra算法等。
4. 社交网络分析图论在社交网络分析中起着重要的作用。
通过构建社交网络图,可以分析用户之间的关系、信息传播、社区发现等问题。
这些分析对于推荐系统、舆情监测等领域具有重要意义。
5. 电路设计图论在电路设计中也有应用。
通过将电路设计问题转化为图论问题,可以使用图论算法解决电路布线、最佳布局等问题。
图的基本概念及拓扑排序

有n-1条边。 如果在生成树上添加1条边,必定构成一个环。 若图中有n个顶点,却少于n-1条边,必为非连通 图。
最小生成树:若无向连通带权图G=<V,E,W>,T是G的一棵生成树,T的各边权之
和称为T的权,记做W(T),G的所有生成树中权值最小的生成树 称为最小生成树。
带权图: 即边上带权的图。其中权是指每条边可以标上 具有某种含义的数值(即与边相关的数)。
网 络: =带权图
路径: 在图 G=(V, E) 中, 若从顶点 vi 出发, 沿一些边经过一
些顶点 vp1, vp2, …, vpm,到达顶点vj。则称顶点序列 ( vi vp1 vp2 ... vpm vj ) 为从顶点vi 到顶点 vj 的路径。它经过的边(vi, vp1)、(vp1, vp2)、...、(vpm, vj)应当是属于E的边。
最小生成树算法: Prim算法和kruskal算法
简单路径:路径上各顶点 v1,v2,...,vm 均不互相重复。
回 路: 若路径上第一个顶点 v1 与最后一个顶点vm 重合,
则称这样的路径为回路或环。
例:
图的数学表示
点: 用整数0, 1, 2, …, V-1表示 边: 用无序数对(u, v)表示, 或者表示成u-v
4. 你认为,对于给定的两个位置A,B,聪明的机器人从A位置到B位置至少需要判断几次?
5. input
6. 第一行:M 表示以下有M组测试数据(0<M<=8)
7. 接下来每组有两行数据
8.
头一行:N A B(1<=N<=50,1<=A,B<=N)
9.
下一行:K1 K2···Kn(0<=Ki<=N)
图论 第1章 图的基本概念

G
G[{e1 , e4 , e5 , e6 }]
G − {e5 , e7 }
G + {e8 }
图G1,G2的关系
设 G1 ⊆ G, G2 ⊆ G. 若 V (G1 ) V (G2 ) = φ x-disjoint) 若 E (G1 ) E (G2 ) = φ ,则称G1和G2是边不交的 (edge-disjoint) G1和G2的并, G1 G2 其中 V (G1 G2 ) = V (G1 ) V (G2 )
连通性
设 u, v 是图G的两个顶点,若G中存在一条 (u, v)
≡ v表示顶点 u 和v是连通的。 如果图G中每对不同的顶点 u , v都有一条 (u , v)
以 u
道路,则称顶点 u和 v是连通的(connected)。
道路,则称图G是连通的。
连通图
连通图
图G的每个连通子图称为G的连通分支,简
证明:G中含奇数个 1 (n − 1) 度点。 2 | Vo | 为 证明 V (G ) = Vo Ve 由推论1.3.2知, 偶数。因为 n ≡ 1(mod 4) ,所以n为奇数个。 因此,| Ve | 为奇数个。 n ≡ 1(mod 4) , 1 2 ( n − 1) 为偶数。 1 1 d ( x ) = n − 1 − d ( x ) ≠ (n − 1) 设 x ∈Ve。若 d ( x) ≠ 2 (n − 1),则 且 2 为偶数。由 G ≅ G c ,存在y,使得 d ( y) = d ( x) 为偶数。即 y ∈Ve 且 d ( y) ≠ 1 (n − 1) 。Ve 中度不为 2 1 (n − 1) 的点是成对的出现的。 2
G
G[{v1 , v2 , v3 }]
图论的基本概念及其应用

图论的基本概念及其应用图论是离散数学中的一个重要分支,研究的是图的性质和图之间的关系。
图由节点和连接节点的边组成,以解决现实生活中的许多问题。
本文将介绍图论的基本概念,并探讨它在不同领域中的应用。
一、图的基本概念1. 节点和边图由节点(顶点)和边组成,节点代表某个实体或概念,边表示节点之间的关系。
节点和边可以有不同的属性,如权重、方向等。
2. 有向图和无向图有向图中,边有固定的方向,表示节点之间的单向关系;无向图中,边没有方向,节点之间的关系是相互的。
3. 连通图和非连通图连通图是指图中任意两个节点之间都存在路径;非连通图则存在至少一个节点无法到达其它节点。
4. 网络流每条边上有一个容量限制,网络流通过边传输,满足容量限制的条件下尽可能多地进行。
二、图论在计算机科学中的应用1. 最短路径通过图论中的最短路径算法,可以计算出两个节点之间的最短路径。
最短路径在无人驾驶、物流配送等领域中具有重要的应用价值。
2. 最小生成树最小生成树算法用于寻找连接图中所有节点的最小总权重的树形结构。
在通信网络、电力输送等领域中,最小生成树被广泛应用。
3. 网络流问题图论中的网络流算法可以用于解决诸如分配问题、路径规划等优化问题。
例如,在医疗资源调度中,网络流算法可以帮助医院优化资源分配。
三、图论在社交网络分析中的应用1. 社交网络社交网络可以用图模型来表示,节点代表个体,边表示个体之间的联系。
利用图论分析社交网络,可以发现用户群体、影响力传播等信息。
2. 中心性分析中心性分析用于评估节点在网络中的重要性,衡量指标包括度中心性、接近中心性等。
中心节点的识别对于广告投放、信息传播等决策具有指导意义。
3. 社团检测社团检测可以发现社交网络中具有紧密联系的节点群体,进一步分析社交群体的行为模式、用户偏好等。
四、图论在物流优化中的应用1. 供应链管理供应链中的各个环节可以用图模型表示,通过图论算法优化物流路径,提高物流效率。
2. 仓库位置问题通过图论中的最短路径算法和最小生成树算法,可以找到最佳的仓库位置,使物流成本最小化。
本科图论-图基本概念6-2

2) 定义2 一个有向图是一个有序的二元组<V,E>,记作D,其中 (1) V ≠ ø 称为顶点集,其元素称为顶点或结点. (2)E为边集,它是笛卡儿积 V & V的多重子集,其元素称为有向边, 简称边(弧). 有向图D=<V,E> 其中 V={v1,v2,v3 }
2、简单通路和初级通路的关系
有向图中的每一条初级通路,也都必定是简单通路。 反之不成立 回路也可分为简单回路和初级回路。 3、通路的表示:可仅用通路中的边序列表示:e1e2…ek 也可仅用通路中所经过的结点的序列表示:v1v2v3…vk
4、性质: 1)定理 在n阶图D中,若从顶点vi到vj(vi≠vj)存在通路,则从vi到vj存在 长度小于或等于(n-1)的通路 若大于n-1,则存在相同节点(有回路),将回路删去可得 2)在n阶图D中,若从顶点vi到vj存在通路,则vi到vj一定存在长度小于或等 于n-1的初级通路(路径) 3)定理 在一个n阶图D中,若存在vi到自身的回路,则一定存在vi到自身长 度小于或等于n的回路. 4)在一个n阶图D中,若存在vi到自身的简单回路,则一定存在长度小于或等 于n的初级回路.
有环的结点提供的度为2(有向图的环提供入度1和出度1)
3)定义:ᅀ(G)=max{d(v)|v∈V(G)} 为图G中结点最大的度 δ(G)=min{d(v)|v∈V(G)} 为图G中结点最小的度 简记为ᅀ、 δ 定义:ᅀ+(D)=max{d(v)|v∈V(D)} 为图D中结点最大的出度 ᅀ-(D)=max{d(v)|v∈V(D)} 为图D中结点最大的入度 δ+(D)=min{d(v)|v∈V(D)} 为图D中结点最小的出度 δ-(D)=min{d(v)|v∈V(D)} 为图D中结点最小的入度 5、握手定理(欧拉) 1)定理1 设G=<V,E>为任意无向图,V={v1,v2,…,vn},|E| = m, 则 ∑d(vi) = 2 m (所有结点的度数值和为边数的2倍) 证: G中每条边(包括环)均有两个端点,所以在计算G中各顶点度数 之和时,每条边均提供2度,当然,m条边共提供2m度 2) 定理2 设D=<V,E>为任意有向图,V={v1,v2,…,vn},|E| = m , 则 ∑d+(vi) = ∑ d-(vi) = m. 且∑d(vi)=2 m 任何图(无向的或有向的)中,奇度顶点的个数是偶数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章 图的基本概念第一节 图和有向图定义1.1 一个无向图图(graph )G 是指一个二元组),(E V ,其中集合V 中的元素称为顶点(或点,或端点, 或结点)(or vertice, or node, or point), 集合E 中元素为V 中元素组成的无序对,称为边 (edge).注意:1. 上述集合E 中的元素可以相同,有的文献称这样的集合为多重集。
2. 图),(∅∅称为空图,它有时在举反例的时候用到,且有时将一个结论推广到包含空图时会引起不必要的麻烦, 故本书中假设所讨论的图都不是空图。
3. 在一个图=G ),(E V 中,为了表示V 和E 分别是G 顶点集合边集,常将V 和E 分别记为)(G V 和)(G E .我们经常用图形来表示一个图。
用小圆圈或实心点表示图的顶点,用线段把无序对中两个顶点连接起来表示边。
其中顶点的位置,连线的曲直、是否相交等都无关紧要. 例如,=G ),(E V ,V =}{54321,,,,v v v v v ,=G }{),(),,(),,(),,(),,(),,(544231212111v v v v v v v v v v v v ,G 的图形如下.3v 4ve 2 5v1v 2v1e图. 1.设=G ),(E V . 若V 为有限集,则称G 为有限图(finite graph );若V 为单点集,则称G 为平凡图 (trivial graph ). 为方便起见,常用e i 表示边,例如在图1中2e 表示边),(31v v , 而1v ,3v 称为2e 的端点. 两个顶点相同的边称为环 (loop), 具有相同顶点的多条边称为重边 (multiple edge), 不含环和重边的图称为简单图 (simple graph). 例如在图1中1e 为环, 32,e e 为重边,所以此图不是简单图.定义1.2 设图G 的顶点集为)(G V ={}n v v v ,...,,21,边集为)(G E ={}m e e e ,...,,21.G 的邻接矩阵(adjacency matrix ))(G A 是一个n n ⨯矩阵,元素j i a ,为端点的边的数目。
G 的关联矩阵(incidence matrix ))(G M 是一个m n ⨯矩阵,元素j i m ,为1,当i v 是j e 的端点. 否则,元素j i m ,为0. 顶点v 的度(degree )是其作为边的端点的个数, 记为)(v d .例1.3 图1的邻接矩阵和关联矩阵分别如下:⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎦⎤注意:邻接矩阵由顶点的顺序决定. 任意邻接矩阵都是对称的. 邻接矩阵法是将一个图储存于计算机的方法之一. 在关联矩阵或邻接矩阵中,将某顶点对应的行的元素求和,就得到该顶点度数. 关于顶点度数,我们有下面的基本定理.定理1.4 设图G 的顶点集为)(G V ={}n v v v ,...,,21,边集为E =m , 则∑=ni iv d 1)(= .2m 推论 图中度为奇数的顶点个数为偶数.我们称一个图的所有顶点度数的非递增序列为这个图的度序列. 例如图1的度序列为(4,3,2,2,1). 每个图都有一个度序列,反之,并非每个非递增序列都为度序列,例如(5,4,3,2,1)就不可能是某个图的度序列,因为定理1.4告诉我们,一个非递增序列要成为某个图的度序列,必须先满足序列的元素和为偶数. 其实,这个显然的必要条件也是充分的.定理1.5 非负整数1d ,2d ,...,n d 是某个图的所有顶点度数当且仅当∑i d 是偶数. 证明 ⇒ 显然.⇐ 设}{n v v v V ,...,,21=. 显然集合{i v : i d 是奇}数的元素个数为偶数. 将此集合中元素两两配对,对每个元素对,构造一条边使其端点为元素对. 则此时每个顶点i v 需要的度数是偶数(非负),在i v 处加上⎣⎦2/i d 个环,就得到以V 为顶点集的图,且i v 的度为i d .定理1.5的证明是构造性的,当然可以用其它方法来证明,例如用归纳法(对n 或∑i d 进行归纳),证明留给读者. 定理1.5中对度序列的刻画比较简单是因为允许使用环.如果不允许使用环,∑id 是偶数的条件就不充分了. 我们在习题中给出无环图度序列的刻画. 关于简单图度序列的刻画以及更多关于度序列的内容参考[1] .定义 1.6 图G 中顶点和边的交替序列Γ=n n v e e v e v ...2110称为一条),(0n v v -通道(),(0n v v -walk ), 如果1-i v 和i v 是i e 的端点. 0v 和n v 分别称为通道Γ的起点(origin)和终点(terminus),其它顶点称为内点. Γ中边的数目n 称为通道的长度. 若起点和终点相同,称此通道是闭的. 如果Γ中的边互不相同,则称Γ为一条迹(tail ); 如果Γ中的顶点互不相同,则称Γ为一条路径(path ). 起点和内点互不相同的闭通道称为圈(cycle). 若对于图中任意两个顶点i v 和j v ,都存在一条),(j i v v -通道,则称此图是连通的(connected ).在图2中, 为通道, 为闭迹, 为路径定义1.7 设=G ),(E V ,),('''E V G =是两个图. 若V V ⊆',E E ⊆', 则称'G 是G的子图(subgraph). 若'G 是G 的子图且V V =', 则称'G 是G 的生成子图(spanningsubgraph). 设1V ⊆V , 以 1V 为顶点集, 以两端点全在1V 中的全体边为边集的G 的子图称为G 的导出子图(induced subgraph), 记为][1V G .在图3中,定义1.8 图G 的连通分支(connected component) 是指其最大连通子图. 图G 的割点(cutvertex) (割边 (cut-edge or bridge))是指一个顶点(一条边)且删除它会增加连通分支的数目. 我们用v G -)(e G -来表示删除点v (边)e 所得到的子图.在图4中,下面来刻画割边.定理1.9 一条边是割边当且仅当它不属于任何一个圈.证明: 设e )(G E ∈,不妨设G 是连通的(为什么?).⇒ 若e 位于某个圈中, 则不难证明e E -连通,这与e 是割边矛盾,故e 不属于任何一个圈.⇐ 若e 不是割边, 则e E -连通. 设e 的两个顶点分别为21,v v . 由于e E -连通.连通,故e E -中存在一条(21,v v )-路径,这条路径加上e 就构成了一个圈.定义1.10 一个有向图(digraph )D 是指一个二元组),(E V ,其中集合V 中的元素称为顶点(或点,或端点, 或结点), 集合E 中元素为V 中元素组成的有序对,称为边或有向边.有向图也可以用图形表示. 例如:但要注意有向图中边),(b a 是有方向的,箭头必须从a 指向b . 有些概念对有向图或无向图都适用; 有些概念对有向图和无向图而言是有差异的. 在习题中我们给出有向图中一些基本概念的定义.习 题1. 证明:一条),(v u -通道都包含一条),(v u -路径.2. (1) 如果简单图G 的每个顶点的度数为2,G 一定是圈吗?(2) 证明:如果图G 中每一个点的度至少是2,则G 含有一个圈.3. 给定下列各序列:(1)(2,2,2,2,2);(2)(3,2,2,1,1);(3)(2,2,2,1,1);(4)(3,3,3,1,0);(5)(5,4,4,3,1).以上五组数中,那几组数可以构成简单图的度数序列?4. 证明:含有n 个顶点和k 条边的图至少有k n -个连通分支.5. 证明:如果一个图的所有顶点的度都为偶数(这样的图称为偶图),则此图没有割边.6. 对于含有n 个顶点的简单图,如果任意两个顶点都有边相连(即每个顶点的度为1-n ),则称此图为完全图(complete graph), 记为n K . 确定4K 是否包含以下情况(给出例子或证明不包含).(1) 一个不是迹的通道.(2) 一个不是路径的闭迹.(3). 一个不是圈的闭迹.7. 对于图G 和H ,如果存在两个双射θ:)()(H V G V →和)()(:H E G E →λ使得对于任意的)(),(G E u v e ∈=, )(),(v u θθ是)(e λ的两个端点, 则称G 和H 同构(isomorphism), 记为H G ≅. 一个简单图G 的补图(complement )c G 也是一个简单图,其顶点集为)(G V , 且)(),()(),(G E v u G E v u c ∉⇔∈.(1) 证明:4P (4个顶点的路径)和其补图同构. 像这样和其补图同构的图称为自补的 (self-complementary).(2) 证明:cc H G H G ≅⇔≅.(3) 证明简单图集合的同构关系时一种等价关系.(4) 按同构关系给下面4个图分类.第2节 树的性质本节和下一节学习图论中最有用的概念之一——树. 作为图,树在数据存储、查询,通信,电网分析,化学等方面有着重要应用.定义2.1 一个森林(forest )是指一个无圈图. 一棵树(tree )是指一个连通的森林. 度为1的顶点称为叶子(leaf ). 若果一个图的生成子图是一棵树,则称该树是图的生成树 (spanning tree).例2.2 给一所大学的所有学生编排学号,形成一颗树. 以0表示学校,以01, 02, 03,.... 表示学院, 以01, 02, 03...表示各个学院的班级,以001, 002, 003,....表示各班级的学生这结果如下图所示,注意树中的叶子表示一个学生.下面给出树的定价刻画.定理 2.3 对于n 个顶点的图G ,下面命题等价:(1)G 是连通的且无圈.(2) ∀)(,G V v u ∈, G 中只有一条),(v u -路径且G 无环.(3)G 有1-n 条边且无圈.(4)G 是连通的且有1-n 条边.证明:(1)⇒(2). 由于G 是连通的,故∀)(,G V v u ∈, G 中有一条),(v u -路径. 若G 中还有一条不同的),(v u -路径,则不难证明G 中有圈 (证明留作练习) ,与G 中无圈矛盾,所以G 中只有一条),(v u -路径. 无圈推出无环.(2)⇒(3). 上面证明已经指出:∀)(,G V v u ∈, 若G 中只有一条),(v u -路径,则G 中无圈. 下面用归纳法证明G 有1-n 条边. 如果1=n ,结论是显然的 (由于G 无环),下设对于顶点数小于n (2≥n )的图命题成立. 对于G 中任意一条边),(v u ,在图G 中删除此边得到图H . 由于G 中只有一条),(v u -路径,故H 不连通. 不难证明 H 有两个连通分支且无圈,设这两个连通分支分别为1H 和2H . 由(1)⇒(2)知这两个连通分支中任意两顶点间只有一条路径,又由于1H 和2H 的顶点数都小于n ,由归纳假设知1-=i i n e (其中i i n e ,分别表示i H 的边和顶点数,2,1=i ). 又=n 1n +2n =1e +2e +1+1=e +1, 证毕.(3)⇒(4). 设k H H H ...,,21使G 的连通分支. 由 (1) ⇒(2) ⇒(3)知,对每个连通分支i H 都有1-=i i n e (其中i i n e ,分别表示i H 的边和顶点数, k i ,...,2,1=) . 故 ∑==k i i i e 1∑===ki i i n 1k -,即k n e -=. 由于1-=n e ,故1=k ,即G 连通.(4)⇒(1). 若G 中有圈,则从各个圈中删除边. 直到G 中无圈. 又因为删除圈中的边不会破坏连通性 (也即圈中的边一定不是割边,见定理1.9),故最后得到的图*G 是连通的无圈图且顶点数为n . 由于(1) ⇒(2) ⇒(3),故*G 有1-n 条边. 所以*G G =且是无圈的.我们在习题中给出树的其它的定价刻画,下面给出关于生成树的一个结果.定理2.4. G 是连通的当且仅当它有生成树.充分性是显然的,必要性的证明类似于定理2.3证明中的(4)⇒(1),故我们略去. 注意定理2.4给出了确定图G 是否连通的方法,我们将在下一节讨论检测G 是否有一个生成树的算法.我们下面讨论树在计算机学科的一些应用,先给出根树的定义.每一颗树都可以按下面的方式画出来 (例如图 ). 每一个顶点都有层次 (level)0, 1, 2,..., k. 存在的唯一的层次为0的顶点称为根 (root). 所有相邻的顶点相差一个层次, 且1+i 层次上的顶点正好与一个i 层次上的顶点相邻. 这样的树称为根树 (rooted tree ). 显然指定一个顶点作为根后,每一颗树都可以认为是根数. k 称为树高 (height). 与顶点u 相邻且比u 层次低的顶点称为u 的孩子 (children), 比u 层次低且与u 有路径相连的顶点称为u 的后代(descendant). 如果一颗树的每个顶点有不多于m 个孩子,则称此树为m 元 (m -ary)树.如果每个顶点有0个或m 个孩子,则称此树为完全m 元树. 2元根树也称为二叉树 (binary tree). 下图给出了一颗高为3的二叉树.当传输数据时,每一个字符被编码或被指定一个二进制串. 例如我们要传送σεγβα,,,,这五个符号时就需要至少三位二进制串 (为什么?). 由于我们可能要处理一些很大的文件且计算机的储存空间有限,我们常常希望将字符编码成二进制串使得文件总长最小. 不妨设这五个字符在文件中出现得频率分别为51,...,a a ,则如果用三位二进制串传输这一数据集合需要)...(3521a a a σβα+++位.如果允许使用变长度的二进制串,则可能节省很多. 例如我们给上面5个字符分别编码如下:010:;001:;01:;00:;0:σεγβα 则传输这一数据集合需要)(3)(254321a a a a a σεγβα++++位.显然变长度的传输方式节省了传输位数,然而却出现了问题. 如果我们收到二进制串:001..... 则没有办法解码. 出现这样问题的原因很简单,是因为我们在编码过程中一个字符的二进制串是某个字符二进制串的前面部分. 例如上例中α的二进制串是β的前面部分等等. 因此我们分不清楚00是表示两个α还是一个β. 我们称这种情况不出现得编码为前缀码 (prefix code). 下面我们来介绍构造最优前缀编码的算法 (Huffman 1952).Huffman 算法:最优前缀编码输入:权值 (频率或概率) n a a a ,...,,21.输出:前缀码 (一颗二叉树).思想:权值小的字符 (或数据) 应该有较长的编码, 将权值小的数据置于二叉树的深层.步骤:1.取权值最小的j i a a ,为叶子,做一个新顶点为这两个树叶的父亲且其权为j i a a + . 从所有的权中删去j i a a ,加上j i a a +.2.重复1-n 次过程1 后就得到一颗二叉树.3.从二叉树的树根出发,给左边的边标记0,右边的边标记1,则树叶的编码为从树根到树叶的路径上标记的字符串.关于这一算法最优性的证明可参考[1]或[2] . 下面我们用一个例子说明求最优前缀编码的过程.例2.5 在通信中, 0,1,2,3,4,5出现的频率如下:0: 45% 1: 20% 2: 15% 3: 15% 4: 10% 5: 5%求传输它们的最优前缀码.解:按照Huffman 算法得到的二叉树如下图所示. 所以0,1,2,3,4,5的最优前缀编码分别为0: 1 1: 011 2: 012 3: 001 4: 0001 5: 0000按比例传输上述字符1000个需要的二进制数字个数为1000(45%⨯1+20%⨯3+15%⨯3+15%⨯3+10%⨯4+5%⨯4)=2150个. 如果所有字符都用长为3的码字传输,则需要二进制数字3000个. 所以用最优前缀编码省了850个二进制数字.考虑搜索n 个数字列表中的某个数字. 最坏情况是,该数字处于列表的最后位置,则我们需要n 步找到它.下面我们用二叉搜索树储存这些数据,并证明通过这种方法我们搜索某个数的步骤将大大降低.一颗二叉搜索树 (binary search tree) 是一颗给每一个顶点赋值了的二叉树, 且对每一个顶点如果它有孩子,那么它的左孩子和左孩子的后代的赋值比该顶点的赋值小;它的右孩子和右孩子的后代比该顶点的赋值大. 图2.1中给出了一个完全二叉搜索树. 各顶点的赋值为1, 2, ...,7. 例如要搜索7,先是和5比较,7大于5故而和5的右孩子比较,7又大于6,故在和7比较,这样用了3步就找到了. 如果按照列表1,2,3,... 7则需要7步.假如已知一颗二叉搜索树,最坏情况下用多少步可以搜索到某个顶点取决于这颗二叉树的高度. 对于n 个顶点的二叉树,我们自然关心它的最小高度是多少.定理2.6 n 个顶点的二叉树的最小高度为⎡⎤1)1(log 2-+n .定理的证明我们留作习题. 由此定理知对于n 个数据, 我们利用二叉搜索树搜索某个数据最多需要⎡⎤)1(log 2+n 步. 这比按顺序查找列表中的项要好很多,因为∞=+∞→)1(log lim2n n n .习题.1. 图G 中有两条),(v u -路径,则G 中含圈.2. 图G 是树⇔G 连通且G 中每一条边都是割边⇔在G 中任意添加一条以)(G V 中顶点为端点的边都构成一个圈.3. 设G 是一颗树. 证明:G 的顶点全部是奇数度当且仅当对所有的)(G E e ∈,e G -的两个连通分支都有奇数个顶点.4. 设1G , 2G 是连通图G 的两个生成树并且)()(21G E G E e -∈, 则存在边)()(12G E G E e -∈*, 使得*+-e e G 1是G 的一颗生成树.5. 用20个消息符号构成的集合,其中各个符号的频率分别为1,2,3,4,4,5, 6,7,7,9. 求传输这些消息符号的最优前缀编码,并画出编码树.6. 考虑下列数据集合:2个A ,3个B ,5个C ,5个D.(1)证明Huffman 算法可以产生不同高度的最优代码树.(2)如何修改Huffman 算法使得其产生高度最小的最优代码树.7. 证明定理2.6.(1) 证明:树的第l 层最多有l2个顶点.(2) 证明公: )1(11 (11)2≠--=+++++x x x x x x l l. (3)证明:对n 个顶点且高度为l 的二叉树有121-≤+l n .(4)证明:存在n 个顶点的二叉树且其高度为⎡⎤1)1(log 2-+n (考虑完全二叉树).(5)证明:n 个顶点的二叉树的最小高度为⎡⎤1)1(log 2-+n8. 假设在某二叉查找树中,有1到1000之间的一些数,现在要找出363这个数,下列的节点序列中,哪一个是不可能检查的序列. (Cormen et al [])(1)2,252,401,398,330,344,397,363.(2) 924,220,911,244,898,258,362,363(3) 925,202,911,240,912,245,363(4) 2,399,387,219,266,282,381,278,363(5)925,278,347,621,299,392,358,363.。