【机器学习|数学基础】Mathematics for Machine Learning系列之图论(2):图的矩阵表示

在这里插入图片描述

前言

Hello!小伙伴!
非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~
 
自我介绍 ଘ(੭ˊᵕˋ)੭
昵称:海轰
标签:程序猿|C++选手|学生
简介:因C语言结识编程,随后转入计算机专业,有幸拿过一些国奖、省奖…已保研。目前正在学习C++/Linux/Python
学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!
 
机器学习小白阶段
文章仅作为自己的学习笔记 用于知识体系建立以及复习
知其然 知其所以然!

系列文章

【机器学习|数学基础】Mathematics for Machine Learning系列之图论(1):图的基本概念

1.3 图的矩阵表示

1.3.1 邻接矩阵

无向图的邻接矩阵

G = ( V , E ) G=(V,E) G=(V,E)是一个无向图, V = { ν 1 , ν 2 , . . . , ν n } V=\{\nu_1,\nu_2,...,\nu_n\} V={ν1,ν2,...,νn},则 G G G的邻接矩阵 A = ( a i j ) n × n A=(a_{ij})_{n×n} A=(aij)n×n,其中

a i j = { m , 若 ν i 与 ν j 有 m 条 边 连 接 0 , ν i 与 ν j 不 相 邻 a_{ij}=\begin{cases} m,若\nu_i 与 \nu_j 有m条边连接\\ 0,\nu_i 与 \nu_j不相邻 \end{cases} aij={mνiνjm0νiνj

注:环算两次


举例

当图是简单图时(无环无重边)
在这里插入图片描述
当图含有环时
在这里插入图片描述

小结

  • 无向图的邻接矩阵是一个对称方阵
  • 无向图的邻接矩阵中每一行或每一列元素之和是对应顶点的次数
  • 如果该无向图是简单图,那么其邻接矩阵是一个对称(0,1)矩阵,且对角线元素全为0

有向图的邻接矩阵

D = ( V , E ) D=(V,E) D=(V,E)是一个有向图, V = { ν 1 , ν 2 , . . . , ν n } V=\{\nu_1,\nu_2,...,\nu_n \} V={ν1,ν2,...,νn},则 D D D的邻接矩阵 A = ( a i j ) n × n A=(a_{ij})_{n×n} A=(aij)n×n,其中 a i j = m a_{ij}=m aij=m,意思是 ν i \nu_i νi指向 v j v_j vj的弧有 m m m条, m m m可以为0

有向图的邻接矩阵不一定对称,第 i i i行的元素之和为 ν i \nu_i νi的出次,第 j j j列的元素之和为 ν j \nu_j νj的入次


举例

在这里插入图片描述

小结

图与邻接矩阵一一对应

  • 有图即可画出其邻接矩阵
  • 有邻居矩阵即可画出相应的图

加权有向图的带权邻接矩阵

若为有向图 D = ( V , E ) D=(V,E) D=(V,E)的每条边赋予一个数,则称 D D D为加权有向图

D = ( V , E ) D=(V,E) D=(V,E)是一个简单加权有向图, V = { ν 1 , ν 2 , . . . , ν n } V=\{\nu_1,\nu_2,...,\nu_n\} V={ν1,ν2,...,νn},则 D D D的邻接矩阵 A = ( a i j ) n × n A=(a_{ij})_{n×n} A=(aij)n×n,其中

a i j = { w i j , 若 ( ν i , ν j ) ∈ E 且 w i j 是 它 的 权 0 , 若 i = = j ∞ , 若 ( ν i , ν j ) ∉ E a_{ij}=\begin{cases} w_{ij},若(\nu_i,\nu_j)\in E且w_{ij}是它的权\\ 0,若i == j\\ \infty,若(\nu_i,\nu_j)\notin E \end{cases} aij=wij(νi,νj)Ewij0i==j(νi,νj)/E


举例
在这里插入图片描述

在这里插入图片描述

加权无向图的带权邻接矩阵类似,但为对称阵

1.3.2 关联矩阵

无向图的关联矩阵

G = ( V , E ) G=(V,E) G=(V,E)是一个无向图, V = { ν 1 , ν 2 , . . . . , ν n } V=\{\nu_1,\nu_2,....,\nu_n\} V={ν1,ν2,....,νn} E = { e 1 , e 2 , . . . , e m } E=\{e_1,e_2,...,e_m\} E={e1,e2,...,em},则 G G G的关联矩阵 M = ( m i j ) n × m M=(m_{ij})_{n×m} M=(mij)n×m,其中

m i j = { 2 , 若 e j 是 ν i 上 的 环 1 , 若 ν i 与 e j 相 关 联 0 , 若 ν i 与 e j 不 相 关 联 m_{ij}=\begin{cases} 2,若e_j 是\nu_i 上的环\\ 1 , 若\nu_i 与 e_j 相关联\\ 0,若\nu_i 与 e_j 不相关联 \end{cases} mij=2ejνi1νiej0νiej

无向图的关联矩阵每一列的元素之和为2,且第 i i i行的元素之和是 ν i \nu_i νi的次数

简单图的关联矩阵是(0,1)矩阵


举例
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

有向图的关联矩阵

G = ( V , E ) G=(V,E) G=(V,E)是一个有向无环向图, V = { ν 1 , ν 2 , . . . . , ν n } V=\{\nu_1,\nu_2,....,\nu_n\} V={ν1,ν2,....,νn} E = { e 1 , e 2 , . . . , e m } E=\{e_1,e_2,...,e_m\} E={e1,e2,...,em},则 G G G的关联矩阵 M = ( m i j ) n × m M=(m_{ij})_{n×m} M=(mij)n×m,其中

m i j = { 1 , 若 ν i 是 e j 的 起 点 − 1 , 若 ν i 是 e j 的 终 点 0 , 其 他 m_{ij}=\begin{cases} 1,若\nu_i 是e_j的起点\\ -1 , 若\nu_i 是e_j的终点\\ 0,其他 \end{cases} mij=1νiej1νiej0

有向图的关联矩阵每一列之和为零;每一行“1”的数目是对应顶点的出次,“-1”的数目是对应顶点的入次;完全为“0”的行对应的顶点是孤立点


在这里插入图片描述
在这里插入图片描述

1.3.3 边矩阵

在这里插入图片描述

结语

说明:

  • 参考于 课本《图论》
  • 配合书中概念讲解 结合了自己的一些理解及思考

文章仅作为学习笔记,记录从0到1的一个过程

希望对您有一点点帮助,如有错误欢迎小伙伴指正

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海轰Pro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值