图论学习笔记(四)图的矩阵表示

前言:参考教材:《集合论与图论》第三版 屈婉玲,刘捍贫,刘田

第十章 图的矩阵表示

10.1关联矩阵

本节要求图是无环图,顶点和边是标定的,并且加法是mod2意义下的

有向图的关联矩阵:D=<V,E>为无环有向图,V={v_1,…,v_n},E={e_1,…,e_m},定义n*m阶矩阵[m_ij]:m_ij=1,若v_i为e_j的始点;m_ij=0,若v_i与e_j不关联;m_ij=-1,若v_i为e_j的终点

Property:(1)每一列恰有一个1和一个-1,其余为0

(2)第i行1的个数为v_i的出度,-1的个数为v_i的入度

(3)两列相同则为平行边

无向图的关联矩阵:D=<V,E>为无环无向图,V={v_1,…,v_n},E={e_1,…,e_m},定义n*m阶矩阵[m_ij]:m_ij=1,若v_i与e_j关联;m_ij=0,若v_i与e_j不关联

Property:(1)每一列恰有两个1,其余为0

(2)第i行1的个数为v_i的度数

(3)两列相同则为平行边

(4)如果G有k个连通分支,则经过适当标定可以让M(G)成为k分块矩阵

基本关联矩阵:设M(G)无向连通图的关联矩阵,则从M(G)中任意删掉一行后得到的矩阵称为G的基本关联矩阵,记为M_f(G),并称删掉一行对应的顶点为参考点(之所以叫基本,是因为就算没有这一行也可以通过数数来补回来这一行(信息量不变)

Theorem:n阶无向连通图G的关联矩阵/基本关联矩阵的秩r(M(G))=n-1(注意:是在mod2意义下

Proof:只需要注意到基本关联矩阵的满秩性事实上等价于图的连通性即可

Corollary:G是连通图当且仅当r(M(G))=n-1

Algorithm:求连通图G的所有生成树:首先任意去掉一行得到一个基本关联矩阵,然后在基本关联矩阵里面用mC(n-1)的方式取出所有的n-1元边组,计算得到的n-1阶方阵的行列式,当且仅当其值为0时构成一棵生成树

10.2邻接矩阵与相邻矩阵

邻接矩阵(有向图):n阶标定有向图中,取[a_ij]:a_ij为顶点v_i到v_j所连边数,记为D的邻接矩阵A(D),简记为A

Property:(1)第i行的和为v_i的出度;第j列的和为v_j的入度

(2)A^l中元素a_ij(l)即为v_i到v_j的长为l的通路数(可以是复杂通路),a_ii(l)即为v_i到v_i的长为l的回路数,所有元素之和为所有长为l的通路的总数

(3)B_r=A+A2+…+Ar中所有元素的和为D中长度≤r的通路的总数;迹为长度≤r的回路的总数

这个地方的重点在于求A^l的时候不要算错

可达矩阵(有向图):n阶标定有向图D中,[p_ij]:若v_i可达v_j,则p_ij=1,否则p_ij=0,则称为D的可达矩阵,记为P(D)

Property:(1)主对角元均为1

(2)若D是强连通的,则D中元素全为1

(3)若D有k个连通分支,则D可以分为k个块

相邻矩阵(无向图):n阶标定无向简单图G中,[a_ij]:若v_i和v_j相邻,则令a_ij=1,否则为0,称为G的相邻矩阵,记为A(G)

Property:(1)对称(2)第i行/列和为v_i的度数(3)元素和为边数的两倍

(4)A^l中元素a_ij(l)即为v_i到v_j的长为l的通路数(可以是复杂通路),a_ii(l)即为v_i到v_i的长为l的回路数,所有元素之和为所有长为l的通路的总数

(5)v_i到v_j的距离即为使得a_ij(l)最小的l

连通矩阵:同理,设n阶无向简单图G中,v={v_1,…,v_n},[p_ij]:p_ij=1,若v_i和v_j连通;否则p_ij=0

Property:(1)主对角元均为1 (2)若D是连通的,则D中元素全为1

(3)若D有k个连通分支,则D可以分为k个块

习题类型

1.求关联矩阵;用关联矩阵求所有的生成树

2.求长度为/≤i的通路/回路的条数

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、结构(有向、无向等)以及集合和队列等抽象数据类型。 存储结构(物理结构):描述数据在计算机中如何具体存储。例如,数组的连续存储,链表的动态分配节点,树和邻接矩阵或邻接表表示等。 基本操作:针对每种数据结构,定义了一系列基本的操作,包括但不限于插入、删除、查找、更新、遍历等,并分析这些操作的时间复杂度和空间复杂度。 算法: 算法设计:研究如何将解决问题的步骤形式化为一系列指令,使得计算机可以执行以求解问题。 算法特性:包括输入、输出、有穷性、确定性和可行性。即一个有效的算法必须能在有限步骤内结束,并且对于给定的输入产生唯一的确定输出。 算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法,分支限界法等。 算法分析:通过数学方法分析算法的时间复杂度(运行时间随数据规模增长的速度)和空间复杂度(所需内存大小)来评估其效率。 学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。
图论中,关联矩阵邻接矩阵是两种不同的矩阵表示方法。 关联矩阵是通过点和边共同定义的。在关联矩阵中,对于中的每个点和每条边,都有一个对应的元素。关联矩阵的行数由点的个数决定,列数由边的个数决定。如果点和边之间有连接关系,则对应的元素为1,否则为0。关联矩阵需要为每个点和每条边分配序号来进行表示邻接矩阵只需要给点编号就可以进行表示。在邻接矩阵中,对于中的每对点,都有一个对应的元素。邻接矩阵的行和列都代表着中的点,如果两个点之间有连接关系,则对应的元素为1,否则为0。邻接矩阵可以用于表示无向和有向,并且可以通过转置操作相互转换。 因此,关联矩阵邻接矩阵区别在于它们的定义方式和表示对象的不同。关联矩阵需要给每个点和边分配序号,而邻接矩阵只需要给点分配序号。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [图论(4)邻接矩阵,关联矩阵](https://blog.csdn.net/chk_plusplus/article/details/105241486)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [关联矩阵邻接矩阵的转换及Matlab实现](https://blog.csdn.net/weixin_55105724/article/details/117464550)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值