首页 > 其他分享 >矩阵树定理学习笔记

矩阵树定理学习笔记

时间:2024-08-03 19:17:59浏览次数:14  
标签:定义 矩阵 定理 个数 笔记 生成 行列式 deg

用来求和一个图的生成树个数相关的算法,时间复杂度 \(O(n^3)\)。

你要会求一个矩阵的行列式,这是 和行列式有关的前置知识

定理阐述

对于无向图

定义度数矩阵 \(D_{i,j}=[i=j]\deg_i\),其中 \(\deg_i\) 表示 \(i\) 的度数。

定义邻接矩阵为 \(E_{i,j}\) 为边 \((i,j)\) 的个数。

定义 Kirchhoff 矩阵为 \(L=D-E\),则把 \(L\) 去掉第 \(i\) 行和第 \(i\) 列(\(i\) 是这棵树的根,因为是无向图,所以随意),这个无向图的生成树个数为剩下矩阵的行列式。

对于内向生成树

定义度数矩阵 \(D_{i,j}=[i=j]\deg_i\),其中 \(\deg_i\) 表示 \(i\) 的出度。

定义邻接矩阵为 \(E_{i,j}\) 为边 \((i,j)\) 的个数。

定义 Kirchhoff 矩阵为 \(L=D-E\),则把 \(L\) 去掉第 \(i\) 行和第 \(i\) 列(\(i\) 是这棵树的根),这个无向图的生成树个数为剩下矩阵的行列式。

对于外向生成树

定义度数矩阵 \(D_{i,j}=[i=j]\deg_i\),其中 \(\deg_i\) 表示 \(i\) 的如度。

定义邻接矩阵为 \(E_{i,j}\) 为边 \((i,j)\) 的个数。

定义 Kirchhoff 矩阵为 \(L=D-E\),则把 \(L\) 去掉第 \(i\) 行和第 \(i\) 列(\(i\) 是这棵树的根),这个无向图的生成树个数为剩下矩阵的行列式。

利用行列式性质的证明

只证明无向图的情况,对于内向生成树和外向生成树的情况是类似的。

行列式:\(\det(A)=\sum _{p_{1,2\dots n}} (-1)^{\pi(p)} \prod _{i=1}^n a_{i,p_i}\)。

钦定父亲,也就是行列式里枚举的排列,后面的连乘数值上这种情况的方案数,当 \(p_i=i\) 时表示点 \(i\) 可以随便选父亲,因此有度数种情况。

如果出现了环,假设长度为 \(k\),那么这个环对 \((-1)^{\pi(p)}\) 的影响是 \((-1)^{k-1}\) 的。但由于 Kirchhoff 矩阵为 \(L=D-E\),边权乘了 \(-1\),所以它实际上对系数的影响是 \((-1)^{2k-1}=-1\)。

一个环对系数的影响是 \(-1\),可以看作容斥系数,所以行列式的值就是生成树的个数。

BEST 定理

对于一个有向欧拉图,不同的欧拉回路个数是所有点入度减一的阶乘的乘积,乘以内向生成树的个数。

标签:定义,矩阵,定理,个数,笔记,生成,行列式,deg
From: https://www.cnblogs.com/fydj/p/-/MatrixTree

相关文章

  • 笔记——AVL树
    和普通的二叉搜索树的区别:普通的二叉搜索树只满足左子树小于个根,右子树大于根,不会进行平衡(降低高度)这就导致可能退化,这样查找插入数据的时间复杂度就是o(n)而为了防止二叉搜索树退化,AVL树引入了平衡因子的概念,使树的每一层都是满的,只有树的一层满后才插入下一层,利用平衡因......
  • OpenCV计算机视觉学习(16)——仿射变换学习笔记
    如果需要其他图像处理的文章及代码,请移步小编的GitHub地址传送门:请点击我如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice在计算机视觉和图像处理中,仿射变换是一种重要的几何变换方法。它可以通过线性变换和平移来改变图像的形状和位置,广泛应......
  • Objective-C学习笔记(协议和代理)
    协议协议是多个类共享的一个方法列。协议中列出的方法没有相应的实现,计划由其他人来实现。可以定义这些方法为必须实现的,也可以为可选择实现的@protocal协议名//在此处添加必须实现的协议方法@optional//在此处添加可选择实现的协议方法@end遵循协议也符合继承关系......
  • 【笔记】动态规划选讲:凸优化技术大赏 2024.8.3
    如果您是搜索引擎搜进来的。很抱歉,没有您需要搜索的题目的题解。典题\(n\)个物品的背包,重量在\(1\sim4\)之间,价值在\(1\sim10^9\)之间。\(n\leq10^5\)。Minkowski和会遇到不连续的问题。不妨按照\(i\bmod12\)划分dp数组,每个剩余系都是凸的。枚举拿了\(......
  • FFmpeg开发笔记(四十三)使用SRS开启SRT协议的视频直播服务
    ​《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKit。SRS是一......
  • Pytorch笔记|小土堆|P14-15|torchvision数据集使用、Dataloader使用
    学会看内置数据集的官方文档:https://pytorch.org/vision/stable/generated/torchvision.datasets.CIFAR10.html#torchvision.datasets.CIFAR10示例代码:importtorchvisionfromtorch.utils.tensorboardimportSummaryWriterfromtorchvisionimporttransforms#ToTensorte......
  • java学习笔记9
    一、线程与进程        线程是指计算机中能够执行独立任务的最小单位。它是进程的一部分,一个进程可以包含多个线程。每个线程都是独立运行的,它们共享进程的资源,如内存空间和文件句柄等。线程之间可以通过共享内存进行通信,因此线程之间的切换开销较小。      ......
  • 硬件开发笔记(二十九):TPS54331电源设计(二):12V转3.3V和12V转4V原理图设计
    若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/140868749长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…硬件相关开发......
  • 谷粒商城实战笔记-115-全文检索-ElasticSearch-进阶-bool复合查询
    文章目录1,must2,mustnot3,should1,must{"query":{"bool":{"must":[{"match":{"gender":"M"}},{"matc......
  • 谷粒商城实战笔记-118-全文检索-ElasticSearch-进阶-aggregations聚合分析
    文章目录一,基本概念主要聚合类型二,实战1,搜索address中包含mill的所有人的年龄分布以及平均年龄,但不显示这些人的详情2,按照年龄聚合,并且请求每个年龄的平均薪资Elasticsearch的聚合(Aggregations)功能允许用户对数据集进行聚合分析,从而获得数据的摘要信息。聚......