拉普拉斯矩阵(Laplacian matrix)及其变体详解
拉普拉斯矩阵(Laplacian matrix) 也叫做导纳矩阵、基尔霍夫矩阵或离散拉普拉斯算子,是图论中用于表示图的一种重要矩阵。
定义
给定一个具有 n n n个顶点的简单图 G = ( V , E ) G=(V, E) G=(V,E), V V V为顶点集合, E E E为边集合,其拉普拉斯矩阵可定义为:
L = D − A L=D-A L=D−A其中 A ∈ R n × n A \in \mathbb{R}^{n \times n} A∈Rn×n为邻接矩阵(adjacency matrix), D ∈ R n × n D \in \mathbb{R}^{n \times n} D∈Rn×n为度矩阵(degree matrix)。
注意, A A A中的元素仅仅可能是 0 和 1,且其对角元素全为 0。 D D D是一个对角矩阵,其对角线上的元素计算方式为 D i i = ∑ j A i j D_{i i}=\sum_{j} A_{i j} Dii=∑jAij。
进一步地, L L L的每个元素值的具体计算方式如下所示:
L i j = { D i i if i = j − 1 if i ≠ j and v i is adjacent to v j 0 otherwise L_{ij}=\left\{\begin{array}{ll}{D_{ii}} & {\text { if } i=j} \\ {-1} & {\text { if } i \neq j \text { and } v_{i} \text { is adjacent to } v_{j}} \\ {0} & {\text { otherwise }}\end{array}\right. Lij=⎩⎨⎧Dii−10 if i=j if i=j and vi is adjacent to vj otherwise
示例
给定一个简单的图 G = ( V , E ) G=(V, E) G=(V,E),其示意图如下所示(例子来自wiki百科):
根据该示意图,可以获得 G G G对应的邻接矩阵 A A A,如下所示:
A = ( 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 0 0 1 0 0 ) A=\left(\begin{array}{llllll}{0} & {1} & {0} & {0} & {1} & {0} \\ {1} & {0} & {1} & {0} & {1} & {0} \\ {0} & {1} & {0} & {1} & {0} & {0} \\ {0} & {0} & {1} & {0} & {1} & {1} \\ {1} & {1} & {0} & {1} & {0} & {0} \\ {0} & {0} & {0} & {1} & {0} & {0}\end{array}\right) A=⎝⎜⎜⎜⎜⎜⎜⎛010010101010010100001011110100000100⎠⎟⎟⎟⎟⎟⎟⎞
根据度矩阵的计算方式,可以获得 G G G对应的度矩阵 D D D,如下所示:
D = ( 2 0 0 0 0 0 0 3 0 0 0 0 0 0 2 0 0 0 0 0 0 3 0 0 0 0 0 0 3 0 0 0 0 0 0 1 ) D=\left(\begin{array}{llllll}{2} & {0} & {0} & {0} & {0} & {0} \\ {0} & {3} & {0} & {0} & {0} & {0} \\ {0} & {0} & {2} & {0} & {0} & {0} \\ {0} & {0} & {0} & {3} & {0} & {0} \\ {0} & {0} & {0} & {0} & {3} & {0} \\ {0} & {0} & {0} & {0} & {0} & {1}\end{array}\right) D=⎝⎜⎜⎜⎜⎜⎜⎛200000030000002000000300000030000001⎠⎟⎟⎟⎟⎟⎟⎞
根据拉普拉斯矩阵的定义 L = D − A L=D-A L=D−A,可以获得 G G G对应的拉普拉斯矩阵 L L L,如下所示:
L = ( 2 − 1 0 0 − 1 0 − 1 3 − 1 0 − 1 0 0 − 1 2 − 1 0 0 0 0 − 1 3 − 1 − 1 − 1 − 1 0 − 1 3 0 0 0 0 − 1 0 1 ) L=\left(\begin{array}{rrrrrr}{2} & {-1} & {0} & {0} & {-1} & {0} \\ {-1} & {3} & {-1} & {0} & {-1} & {0} \\ {0} & {-1} & {2} & {-1} & {0} & {0} \\ {0} & {0} & {-1} & {3} & {-1} & {-1} \\ {-1} & {-1} & {0} & {-1} & {3} & {0} \\ {0} & {0} & {0} & {-1} & {0} & {1}\end{array}\right) L=⎝⎜⎜⎜⎜⎜⎜⎛2−100−10−13−10−100−12−10000−13−1−1−1−10−130000−101⎠⎟⎟⎟⎟⎟⎟⎞显然,拉普拉斯矩阵都是对称的。
性质
- 拉普拉斯矩阵是半正定矩阵;
- 特征值中0出现的次数就是图连通区域的个数;
- 最小特征值是0,因为拉普拉斯矩阵每一行的和均为0;
- 最小非零特征值是图的代数连通度。
变体
除了最普通的拉普拉斯矩阵形式 L = D − A L=D-A L=D−A外,还具有多种常见的形式,如Symmetric normalized Laplacian和Random walk normalized Laplacian。
Symmetric normalized Laplacian的定义如下:
L s n = D − 1 2 L D − 1 2 = I − D − 1 2 A D − 1 2 L^{sn}=D^{-\frac{1}{2}} L D^{-\frac{1}{2}}=I-D^{-\frac{1}{2}} A D^{-\frac{1}{2}} Lsn=D−21LD−21=I−D−21AD−21 L i j s n = { 1 if i = j and D i i ≠ 0 − 1 D i i D j j if i ≠ j and v i is adjacent to v j 0 otherwise L_{ij}^{sn}=\left\{\begin{array}{ll}{1} & {\text { if } i=j \text { and } D_{ii} \neq 0} \\ {-\frac{1}{\sqrt{D_{ii} D_{jj}}}} & {\text { if } i \neq j \text { and } v_{i} \text { is adjacent to } v_{j}} \\ {0} & {\text { otherwise }}\end{array}\right. Lijsn=⎩⎪⎨⎪⎧1−DiiDjj 10 if i=j and Dii=0 if i=j and vi is adjacent to vj otherwise
Random walk normalized Laplacian的定义如下:
L r w = D − 1 L = I − D − 1 A L^{r w}=D^{-1} L=I-D^{-1} A Lrw=D−1L=I−D−1A L i j r w = { 1 if i = j and D i i ≠ 0 − 1 D i i if i ≠ j and v i is adjacent to v j 0 otherwise L_{ij}^{rw}=\left\{\begin{array}{ll}{1} & {\text { if } i=j \text { and }D_{ii} \neq 0} \\ {-\frac{1}{D_{ii}}} & {\text { if } i \neq j \text { and } v_{i} \text { is adjacent to } v_{j}} \\ {0} & {\text { otherwise }}\end{array}\right. Lijrw=⎩⎨⎧1−Dii10 if i=j and Dii=0 if i=j and vi is adjacent to vj otherwise
本文参考资料
- 图拉普拉斯–百度百科
- 拉普拉斯矩阵–简书
- 拉普拉斯矩阵(Laplacian matrix)–简书
转载请注明出处:https://blog.csdn.net/qq280929090/article/details/103591577
拉普拉斯矩阵(Laplacian matrix)及其变体详解相关推荐
- ResNet残差网络及变体详解(符代码实现)
本文通过分析深度网络模型的缺点引出ResNet残差网络,并介绍了几种变体,最后用代码实现ResNet18. 文章目录 前言 模型退化 残差结构 ResNet网络结构 Pre Activation Re ...
- RNN-GRU-LSTM变体详解
首先介绍一下 encoder-decoder 框架 中文叫做编码-解码器,它一个最抽象的模式可以用下图来展现出来: 这个框架模式可以看做是RNN的一个变种:N vs M,叫做Encoder-Decod ...
- 【FFmpeg】结构体详解(二):AVStream、AVPacket、AVOutputFormat
FFmpeg结构体详解 7.AVStream 8.AVPacket 9.AVOutputFormat 7.AVStream AVStream 是存储每一个视频/音频流信息的结构体. 重要的变量如下所示 ...
- 【FFmpeg】结构体详解(一):AVCodec、AVCodecContext、AVCodecParserContext、AVFrame、AVFormatContext 、AVIOContext
FFmpeg结构体详解 一.FFmpeg中最关键的结构体之间的关系 1.解协议(http,rtsp,rtmp,mms) 2.解封装(flv,avi,rmvb,mp4) 3.解码(h264,mpeg2, ...
- Tomcat 8熵池阻塞变慢详解
Tomcat 8熵池阻塞变慢详解 Tomcat 8启动很慢,且日志上无任何错误,在日志中查看到如下信息: Log4j:[2015-10-29 15:47:11] INFO ReadProperty:1 ...
- 计算机科学类专升本复习之“C语言结构体”详解(初稿)
C语言结构体详解,C语言struct用法详解 前面所学到的"数组":它是一组具有"相同类型"的数据的集合. 但是在实际的编程中,我们往往还需要 一组" ...
- C语言结构体详解(结构体定义,使用,结构体大小等)
c语言结构体详解 1.c语言结构体 1.1 结构体基础知识 1.2 结构体声明 1.3 结构体特殊声明 1.4 结构体的自引用 1.5 结构体的大小的计算 1.5.1了解结构体大小计算规则 1.5.2 ...
- C# 之 结构体详解
C# 之 结构体详解 一.结构体的定义 二.结构体的初始化 1.实例构造函数 2.静态构造函数 三.结构体的使用 1.赋值操作 2.作为方法参数和返回值 一.结构体的定义 概念:C#的结构体类型(或称 ...
- windows内核开发笔记七:内核开发OVERLAPPED结构体详解
windows内核开发笔记七:内核开发OVERLAPPED结构体详解 typedef struct _OVERLAPPED { DWORD Internal; DWORD InternalHi ...
最新文章
- 支付系统整体架构详解
- 5G LAN — 解决方案示例
- 2020-11-25(《深入理解计算机系统》多级页表详解)
- django 灵活的后台查询
- 国外计算机专业入门语言,【转自知乎】给想要报考计算机专业学生的一些建议...
- [BZOJ1059][ZJOI2007]矩阵游戏
- 条件判断_判断疑似陨石应具备什么条件下,才能判断陨石真伪
- linux系统下如何优化mysql运行环境
- 【WPF】Slider 任意位置拖动
- arduino定时器控制舵机_Arduino通过串口控制舵机角度
- 栅格数据中的 Zone 与 Region
- Xposed入门篇之安装xposed框架
- 基于java中国跳棋游戏
- 缓解眼睛疲劳的一些解决方案
- Java计算某年某月天数_编程计算某年某月某日是该年的第多少天。例如:2016年3月2日是2016的 第62 天。(java)...
- REST Assured 使用详解
- 几个 ICON 图标 网站
- Verdi和DVE 中高亮设置波形颜色
- acpc2013 G. The Stones Game (思维)
- 2020年蓝旭工作室暑期前端培训班Day1——HTML5 CSS3
热门文章
- ARCGIS SERVER 授权
- 热塑性塑料/热塑性橡胶
- vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in nextTick: “TypeError: Cannot read properties of und
- Ural 1671 - Anansi's Cobweb 倒过来做...并查集维护..
- PHP程序员战地日记
- 理想中2.5D的网络拓扑图
- 怎么恢复苹果内置的计算机,苹果自带软件删了怎么恢复原状
- Linux 下检查 VT-d / IOMMU 是否开启
- 计算机专业的学生买什么电脑,设计类学生买什么电脑
- 加速应用开发 | Firebase Summit 2021 精彩回顾