离散数学图论知识总结

前言

马上过段时间期末就要离散考图论了,很多知识根本记不住(因为一部分是用日语学习的),在这里稍微码一下。

第一部分 图的定义和握手定理

基本定义

  1. 给出一个名为G无向图,V(G)表示图的点集合,E(G)表示图的边集合(有向图为A(D),叫做弧集合)。|G| 表示图的结点数(日语中也叫做位数) ,||G||表示图的边的数量(日语中叫做size)。
  2. 简单图(单纯图):没有自回路和平行边
  3. 多重边图(多重图):没有自回路,有平行边
  4. 伪图(广义图):有自回路,有平行边
  5. 正则图:一个图中所有结点的度数都相同的图,每个点的度数为k,则叫这个图为k正则图。
  6. 同构(同型):一个图和另一个图的点集合之间存在双射(一对一写像),且边也存在双射,则两个图同构(记作 G ≅ H G \cong H GH
  7. 度数(次数):无向图G中,点v所连接的所有边的数量成为这个点的度数(记作 d e g G ( v ) deg_G(v) degG(v)),而最小度数是一个图度数最小点的度数( δ ( G ) \delta(G) δ(G)),最大度数是一个图最大度数点的度数( Δ ( G ) \Delta(G) Δ(G))。
  8. 握手定理:一个图的所有度数之和等于这个图边数量的两倍。奇数度数的结点的个数是偶数个。(有向图中,所有出度等于入度等于边数)

重要算法

Havel–Hakimi算法:

这个算法的作用是告诉我们给定一个度数序列,能否构成一个简单图,又称为一个序列是否可以简单图化。具体算法流程是,先将序列按从大到小排序,去掉第一个数,然后到第一个数+1构成的下标为止的所有数-1,以此类推,如果最后剩下的是一个全零序列,则该序列可以简单图化。

第二部分 各种图以及各种图的计算

基本定义

  1. 完全图 K n K_n Kn:所有点之间都存在边的简单图
  2. 完全二部图 K n , m K_{n,m} Kn,m:一个含有n个点的点集和另一个含有m个点的点集,点集之间所有点都有边,点集内部所有点都无边的简单图
  3. 二部图:存在两个点集,点集内部一定不存在边,点集之间的部分点存在边
  4. 子图(部分图):图H的所有点都在图G的点集中,且H所有的边都在G的边集中,则称H是G的子图(部分图)
  5. 全域部分图:当V(H)=V(G)时,子图被称为全域部分图
  6. p n p_n pn:点集合内所有的点有且只有按顺序连接(自己编的)
  7. 闭路 C n C_n Cn:道末尾的节点连到初始结点上行成环
  8. G ∪ H G\cup H GH两个图的点集加两个图的边集构成的图
  9. G+H:两个图的点集加两个图的边集之外,再让每个点集里的点都和另外一个点集里的任意点都有边
  10. 点的除去:从图G中去掉一个点集W,并去掉点集合所关联的所有的边,记作G-W
  11. 边的除去:从图G中去掉以一个边集合A,记作G-A
  12. 补图 G ˉ \bar{G} Gˉ:从V(G)作为点集合做成的完全图去掉E(G)所得到的图
  13. 缩约G/e:从图G中去掉边e,并将e的两个端点合并成一个端点所得到的图

第三部分 最短路径和周游问题

基本定义

  1. 连通(连接):一个图中任意一个点都可以找到去其他任意点的路径,则成为连通,否则非连通
  2. 连接度 κ ( G ) \kappa(G) κ(G):从图G中任意去掉k-1个基点后图依然连通,则称为这是一个k连接图,而满足这个图最大的k值被成为这个图的连接度
  3. 边连接度 λ ( G ) \lambda(G) λ(G):从图G中任意去掉k-1条边后图依然连通,则称为这是一个k边连接图,而满足这个图的最大k值被称为这个图的边连接度
  4. 定理(连接度 边连接度 最小次数的关系):队医一个图,连接度小于等于边连接度小于扽与最小次数
  5. 欧拉回路:通过一个图中所有边的回路
  6. 欧拉图:有欧拉回路的图称为欧拉图
  7. 欧拉定理:一个连通的多重边图是欧拉图(即所有点的度数都是偶数)
  8. 哈密尔顿回路:经过且只经过图中所有点一回的回路
  9. 哈密尔顿图:有哈密尔顿回路的图

重要算法

1.判断一个图是否连通

将所有节点看作单独的集合,然后从边集合中一个个拿出边,如果边的两端点不在一个集合,将他们合并成一个集合,知道边集合变为空集,这时如果所有点都在一个集合里面,则这个图是一个连通图。

2. 最短路径问题(Dijkstra算法)

第一步:构建一个空的点集合U并放入起点。初始化所有结点到起点的距离,起点到起点是0,和起点有边相邻的点距离记作该边的边长且父结点记作起点,其余点距离为无限大,父节点为空
第二步:将到起点最近的点a放入U,并更新所有和a点有关系的点的到起点的距离,如果这些点到起点的距离因此而缩小则更新这些点的距离l并,记录其父节点为a
第三步:重复第二步直到终点t被放入集合U

3. 中国邮递员问题(找到一条欧拉回路)

给定一个多重边图,要求我们走过所有边至少一回,并且得到的权重和最小。具体的操作是,我们先找出图中所有度数为奇数的点,并将这些点两两组合构成边(每个点只能构成一条边)。然后我们会得到多种边的组合,选取其中权重和最小的那一组(日文中是完全マッチング),复制该条边到原图上,得到的新图就是这个问题的一个解。

4.哈密尔顿图(ハミルトン)和周游世界(セールスマン)问题 (最邻近插入法)

要求我们在一个给定权重的图中周到一条哈密尔顿回路且该回路的权重和最小。具体操作是, 取出图中任意一个结点构成回路,并将其放入提前准备好的空的点集合U,之后找一个和这个点集合距离最近的点(即这个点集合外任意点到点集合内任一点的距离中最小的那个)放入点集合,然后将新插入的结点放在已有回路的任意位置上,并找到这些新回路中最小的那个。重复上述步骤直到所有点放入点集合U。

第四部分 树

基本定义

  1. 数(木):一个连通且没有回路的图称为树
  2. 树T的基本性质: (1) ∣ ∣ T ∣ ∣ = ∣ T ∣ − 1 || T||=|T|-1 T=T1 (2)端点个数= 2 + ∑ x ∈ W ( d e g T ( x ) − 2 ) 2 +\sum_{x\in W}(deg_T(x)-2) 2+xW(degT(x)2)W是度数3及其以上点的集合
  3. 中心:点v到最远点的距离是点v的离心值,离心值最小的点是中心
  4. 半径rad(G):图G的中心到最远点的距离
  5. 直径diam(G):图G离得最远的两个点之间的距离
  6. 重心:点v到图中所有点距离之和最小,则称v是图的重心
  7. 树的中心定理:树的中心可以是一个或者两个,当是两个的时候这两个点必须相邻,对于结点数大于三的树,去掉所有端点之后树的中心不变半径减1
  8. 树的重心定理:树的重心可以是一个或者两个,当是两个的时候这两个点必须相邻,将树的一条边切断,哪边节点多重心在哪边,如果结点两边一样多,则这条边的两个端点都是重心
  9. 全域树(全域木):一个连通图G的全域部分图是树
  10. 最小权重全域树:全域树中权重和最小的那个
  11. (T,v):树T且根结点是v

重要算法

1.寻找最小权重树

就是贪心算法,首先开一个空集合U,把任意结点放入期中,然后从剩下节点中找到这个集合权重最小的边,然后将找到的点依次放入集合中,当选中的边数等于原图节点数-1的时候停止

2.判断两个给定根结点的数是否同构

第一步:将所有端点标记为0
第二步:将他们的父结点标记为所有子结点的标记的连接,并对这些父结点中的非端点进行排序,从1开始逐次+1打标签
第三步:对父结点的父结点进行第二步,直到到达根
备注:对于给出中心没有给出根的树,当中心只有一个的时候,中心就是根,中心有两个的时候,连接中心的那条边新加一个结点,用这个结点作为根

第五部分 平面图

基本定义

  1. 平面的图:可以画成所有边都不交叉的图
  2. 平面图:所有边都不交叉的图(所有平面的图都可以画成边为直线的平面图)
  3. 领域:边围城的部分为领域,图外侧的领域是外领域,一个领域的次数是围城这个领域的边的数量
  4. 欧拉公式:对于一个连通图G,p是端点数,q是边数,r是领域数,有 p − q + r = 2 p-q+r=2 pq+r=2(递推法证明)
  5. 对偶图(双对图) G ∗ G^* G: 在平面图G的各个领域中找一个点,并将有共有边的领域所对应点连起来的图称为对偶图( ∣ ∣ G ∣ ∣ = ∣ ∣ G ∗ ∣ ∣ ||G||=||G^*|| G=G)
  6. 根据5,得平面图G的领域次数的和等于2||G||
  7. 极大平面图:包含外领域在内的所有领域都是三角形的平面图(非极大的简单平面图可以通过加边的形式变成极大平面图)
  8. 所有结点数大于3的简单平面图 q ≤ 3 p − 6 q\leq3p-6 q3p6,p是端点数,q是边数(证明方法是先说每个领域的次数都大于3,算出最小的领域次数总和,这个和小于等于两倍的边数,领域次数可以用欧拉公式表示)
  9. 平面图存在度数小于等于5的结点,所有领域是四边形以上的连接平面图有 q ≤ 2 p − 4 q\leq2p-4 q2p4(证明方法同上,这三个定理都可以用来判定一些图是否可以是平面图)
  10. 图的细分:在图的边上插入新结点得到的图

第六部分 图的染色

基本定义

  1. k-彩色可能:可以用k种颜色将图中所有点染色,并保证相邻点颜色不同
  2. 染色数 χ ( G ) \chi(G) χ(G):对图G染色的最小色数
  3. 外平面图:所有点都在构成外领域边上的图
  4. 4色定理:所有平面图的染色数都小于等于4
  5. 3色定理:外平面图的染色数都小于等于3
  6. 染色数上限定理:图G的染色数小于其最大度数+1( χ ( G ) ≤ Δ ( G ) + 1 \chi(G)\leq\Delta(G)+1 χ(G)Δ(G)+1
  7. k-边彩色可能:可以用k种颜色将图中所有边染色,并保证相邻边颜色不同
  8. 染色数 χ , ( G ) \chi^,(G) χ,(G):对图G边染色的最小色数
  9. 对于 K n K_n Kn,n为奇数时,边染色数是n,n为偶数时,边染色数是n-1(证明方法是夹逼)
    10.边染色数上限定理(ビジング定理): 图G的边染色数是 Δ ( G ) \Delta(G) Δ(G)或者 Δ ( G ) + 1 \Delta(G)+1 Δ(G)+1

重要算法

1.计算一个图的染色数

首先画出这个图的补图,然后将补图分割成复数个完全图,去掉完全图之间的边,得到的完全图的数量就是染色书数

第七部分 网络

基本定义

  1. 容量c(a):有向图的弧a的通量上限
  2. 网络:有向图的每条弧都有容量,且定义了入口和出口
  3. 弧的流量f(a):有向图弧a的通量
  4. 流f:有向图的弧a到f(a)的映射
  5. val(f):流f的流量,是一个图上弧出度和入度差的最大值
  6. カット容量:给定点集合所有出容量的和称为カット容量
  7. 最大流最小cut定理:一个图流量的最大值等于其cut容量的最小值

重要算法

1.求解网络最大流(Dinic算法)—增流网络

第一步:画出当前网络的增量网络
增量网络的画法:正方向为差,逆方向为该边元网络的值,当值为0时这个边不存在
第二步:依据增量网络画出辅助增量网络
将起点到每个结点的边数记作该结点的层数(只看正向边)。并连接所有正向边,去掉同层结点之间的边。
第三步:在辅助增量网络中选取一条从起点到终点的增量路径,选取路径上的最小值作为增量
第四步:将增量更新到原始网络上
第五步:重复步骤123,直到辅助增量网络中找不到一条从起点到终点的路,这时我们将得到最大流网络,而起点的出度之和就是我们的最大流

你可能感兴趣的:(图论)