图论学习-2 树 (思维导图)树的定义 性质 生成树 最小生成树算法 根树 最优二元树

在这里插入图片描述

树的概念

  • 森林是无圈图
  • 树是连通的无圈图
  • 树和森林都是简单图,也都是二部图
  • 树的一度点是树叶

树的性质

树的基本性质

  • 定理1:G中任意两顶点间有且仅有一条路相连

    • 证明:假设有两条路,则两条路的一部分必能构成圈
  • m=n-1

    • 推论1:由k棵树组成的森林满足m=n-k
    • 证明:数学归纳法,任意去一条边,则得到两个连通分支,分别得证
  • 连通且无圈

  • 在G中任意不相邻的两顶点间增加一条边,就得到唯一的一个圈

    • 证明:由定理1,已经存在一条路,然后加一个边,则得到一个圈,并且是唯一的圈
  • 推论2:每棵非平凡树至少有两片树叶

    • 证明:反证,从度的角度来看,因为m=n-1,所以总度数为2m=2n-2,由于只有一个叶子,树的最小度大于1,所以总度数又可以表示成1+2*(n-1)=2n-1,总度数最小值>2n-2=总度数,矛盾,所以最少有2个树叶
  • 定义:图G是非平凡的无向连通图,对于G中的每一条边e,G-e都不连通,称G为最小连通图

    • 即,图G中每一条边都是割边
    • 定理2:非平凡图G是树的充要条件是G为最小连通图
  • 根据度序列判断树

    • 正整数序列,d1>=d2>=...>=dn,且sum[d1...dn]=2(n-1),则为树

      • 由m=n-1得来

树的中心

  • 点v的离心率

    -

    • 即对点v,最远的距离就是离心率,其中的心可以理解成v,以自我为中心
    • 离心率是点的属性
  • 图的半径

    -

    • 所有顶点中,最小离心率
  • 图的中心点

    • 离心率等于半径的点
  • 图的中心

    • 中心点的集合
  • 图的直径

    • 所有顶点中,最大离心率
  • 定理3:每棵树都有一个 由一个点或两个邻接的点组成的中心

生成树

图G的生成子图T是一棵树,则T是图G的一棵生成树(若T为森林,则是生成森林)

  • G中生成树的边称为树枝
  • G中非生成树的边称为弦

定理5:每个连通图至少包含一颗生成树

  • 证明,如果本身无圈,则本身就是一棵树,如果本身有圈,则在保持连通性的情况下去掉一条圈,如此下去,就能得到连通的无圈图,即生成树
  • 引申出一种求生成树的方法--破圈法

    • 得到的生成树不唯一

生成树有多少个

  • 凯莱递推计数法

    • 凯莱定理 棵数
    • G.e意为删掉e,并把两个e的两个端点合并。G-e就是单纯的删掉e

    - 每次都分成删边和缩边,知道不能进行下去,用树状图来表示,最终的叶子数目就是图G生成树的数目

    - 这个用矩阵树定理最简单,因为拉普拉斯矩阵好写
    
  • 凯莱公式计算量大,不能具体指出每棵生成树,意义不是太大
  • 矩阵树定理

    • 拉普拉斯矩阵L

      -

      • 就是对角阵-邻接矩阵。对角阵的对角元素就是该节点的度
    • G的生成树的棵数为L的任意一个代数余子式的值

    • 例题

      • 因为是完全图,有对称性,所以每棵生成树的边数都是n-1,Kn的所有生成树的总边数为(n-1)n^(n-2),e这条边出现在生成树的次数就是总数/总边数,然后用总的生成树数目减去包含e的生成树的数目即可得到
      • 还是矩阵树好证明
  • 回路系统

    • 基本回路

      • T是连通图G的一颗生成树,由G的对应与T一条弦与T中树枝构成的唯一圈C,称为G关于T的一个基本圈(基本回路)
      • 基本回路的数目是:对于G(n,m)其生成树的边数是n-1,则剩下m-(n-1)条弦,每加进一条弦,则有一个基本回路,所有一共有m-n+1个基本回路。它们称为G对应与T的基本回路组
    • 回路空间

      • 定理9:图G的两个不同的回路,它们的对称差是一个回路或是两个回路的并

        • 对于证明,就是其中一点v在C1和C2中的度都是偶数,最终在对称差中的度也是偶数,顶点度数为偶数的连通图本身可以构成一个包含所有边的回路
      • 定理10:设T是连通图G=(n,m)的一颗生成树,C1,C2...Cm-n+1是G对应于T的将基本回路组。定义1Gi=Gi,0Gi=∅,G1是G的回路,则G的回路组作成的集合对于该陈发和图的对称差运算来说作成属于F={0,1}上的m-n+1维向量空间。

        • 证明的话,首先是线性无关,线性无关很简单,反证,存在一组不全为0的数使得····为空集,但是任意两个基本回路包含两条不同弦,所以只要有不为0的,就不可能对称差结果为空。其次是证明G的任意回路都可以由基本回路组线性表出。任意找一个回路B,将其分为弦们和树枝们。首先来表出弦们,因为每一个基本回路都有一个弦,所以可以用基本回路组来表出弦们,用B1来表示弦们,B1由基本回路组线性表出,可以证明,两个回路的对称差一定是回路(这句话是核心),所以B1是回路,B也是回路,B1和B做对称差只包含树枝,不是回路,但回路与回路的对称差应该也是回路,这显然矛盾
      • 对于定理10,这样解读,图G的所有回路是一个空间(当然,回路包括基本回路,也大于基本回路),这个回路空间以图G以任意生成树T的所有基本回路Gi为基。基有多少个呢,m-n+1,所以回路空间是m-n+1维的。然后,如何用基来表示回路空间呢,对于每个基向量来说,要么系数为1要么为0,然后向量间的运算规则是对称差,用对称差来代替加法。

  • 最小生成树

    概念

    • 生成树各边权值之和最小

    这三个方法都是贪婪的,每一步都是局部最优,如果组合优化问题满足拟阵的结构,则可以贪婪得到最优解,如果不满足,则不可

    Kruskal算法

    • 算法过程:在保证不成圈的情况下一直选最小权重的边
    • 定理1:由Kruskal算法得到的任何生成树一定是最小生成树

    破圈法

    • 算法过程:从图G的任意圈开始,去掉该圈中权值最大的一条边,称为破圈,不断破圈,知道图G中没有圈为止,最后剩下的G的子图就是G的最小生成树。

    prim算法

    • 算法过程:对于任意一个顶点u,选择与u关联的且权值最小的边作为最小生成树的第一条边e1,然后在剩下的边里,在与已经选取边只有一个公共端点的所有边中,选取权值最小的边,如此进行

    根树

    • 基本概念

      • 有向树
      • 入度
      • 出度
      • 点v的度=点v的入度+点v的出度
    • 概念:一颗非平凡的有向树T,如果恰有一个顶点的入度为0,其余所有顶点的入度为1,则它是根树

      • 入度为0的点是树根
      • 出度为0的点为树叶
      • 入度为1,出度大于等于1的点为内点
      • 内点和树根统称分支点
    • 根树的概念与性质

      • 层数

        • 点v到树根的距离
      • 树高

        • 所有顶点中最大的层数为树高
      • 子根树

        • 对于根树T,有点v及v的后代导出的子图,称为根树T对应点v的子根树
      • m元根树

        • 对于根树T,每个分支点至多m个儿子
        • 定理2:在完全m元根树T中,若树叶数为t,分支点数为i,则:(m-1)i = t-1

          • 正面:由m = i+t-1和2m = t + m +(i-1)(m+1)可得

    最优二元树

    • 首先它是二元树,t片树叶,其次它要保证权值越小的叶子层数越大,权值越大的叶子层数越小,从而权值与层数的乘积最小
    • 哈夫曼算法

      • t个叶子节点,各有权值,从中选择出两个最小的,画出它俩共有的父亲节点,其父亲节点的权值为它俩的和,然后从叶子节点集合中删去它俩,加入它俩的爸,如此进行,直到集合中只剩一个点,从而哈弗曼树也画好了
      • 总体的思想是,权值小的放在下面先画,然后用父亲节点代替二元组来和其他做比较
  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值