目录
前言
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与νj有m条边连接0,ν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)∈E且wij是它的权0,若i==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=⎩⎪⎨⎪⎧2,若ej是νi上的环1,若νi与ej相关联0,若νi与ej不相关联
无向图的关联矩阵每一列的元素之和为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,若νi是ej的起点−1,若νi是ej的终点0,其他
有向图的关联矩阵每一列之和为零;每一行“1”的数目是对应顶点的出次,“-1”的数目是对应顶点的入次;完全为“0”的行对应的顶点是孤立点
1.3.3 边矩阵
结语
说明:
- 参考于 课本《图论》
- 配合书中概念讲解 结合了自己的一些理解及思考
文章仅作为学习笔记,记录从0到1的一个过程
希望对您有一点点帮助,如有错误欢迎小伙伴指正