作业4:图的矩阵表示及计算
图的矩阵表示及习题-答案讲解
177图的矩阵表示图是用三重组定义的,可以用图形表示。
此外,还可以用矩阵表示。
使用矩阵表示图,有利于用代数的方法研究图的性质,也有利于使用计算机对图进行处理。
矩阵是研究图的重要工具之一。
本节主要讨论无向图和有向图的邻接矩阵、有向图的可达性矩阵、无向图的连通矩阵、无向图和有向图的完全关联矩阵。
定义9.4.1 设 G =<V ,E >是一个简单图,V =⎨v 1,v 2,…,v n ⎬ A (G )=(ij a ) n ×n其中:1j i v v v v a j i j i ij =⎩⎨⎧=无边或到有边到 i ,j =1,…,n称A (G )为G 的邻接矩阵。
简记为A 。
例如图9.22的邻接矩阵为:⎪⎪⎪⎪⎪⎭⎫⎝⎛=0111101011011010)(G A 又如图9.23(a)的邻接矩阵为:⎪⎪⎪⎪⎪⎭⎫⎝⎛=0001101111000010)(G A 由定义和以上两个例子容易看出邻接矩阵具有以下性质:①邻接矩阵的元素全是0或1。
这样的矩阵叫布尔矩阵。
邻接矩阵是布尔矩阵。
②无向图的邻接矩阵是对称阵,有向图的邻接矩阵不一定是对称阵。
178③邻接矩阵与结点在图中标定次序有关。
例如图9.23(a)的邻接矩阵是A (G ),若将图9.23(a)中的接点v 1和v 2的标定次序调换,得到图9.23(b),图9.23(b)的邻接矩阵是A ′(G )。
⎪⎪⎪⎪⎪⎭⎫⎝⎛='0010101100011100)(G A 考察A (G )和A ′(G )发现,先将A (G )的第一行与第二行对调,再将第一列与第二列对调可得到A ′(G )。
称A ′(G )与A (G )是置换等价的。
一般地说,把n 阶方阵A 的某些行对调,再把相应的列做同样的对调,得到一个新的n 阶方阵A ′,则称A ′与A 是置换等价的。
可以证明置换等价是n 阶布尔方阵集合上的等价关系。
虽然,对于同一个图,由于结点的标定次序不同,而得到不同的邻接矩阵,但是这些邻接矩阵是置换等价的。
作业4图 参考答案
作业4. 图非编程作业参考答案:1.已知带权无向图如图所示:(1). 根据普里姆(Prim)算法,求它的从顶点a出发的最小生成树(写出过程,即添加顶点、边次序);(2). 根据克鲁斯卡尔(Kruskal)算法,求该图的最小生成树(写出过程,即添加边次序)。
普里姆(Prim)算法:aadaed2aced23acbed1234234克鲁斯卡尔(Kruskal)算法:acbedacbed1acbed12acbed123acbed12342. 已知带权有向图如图所示:(1). 画出该图的邻接矩阵存储结构;(2). 请写出该图的一个拓扑有序序列;(3). 求从顶点a到其余各顶点之间的最短路经及最短路经长度,并给出计算过程。
图G的一个拓扑序列:abdfecgh afbdecghabdfegch afbdegch2421∞∞∞⎢∞∞g02690301050280730∞∞∞∞⎡⎤⎢⎥∞∞∞∞∞⎢⎥⎢⎥∞∞∞∞∞∞⎢⎥∞∞∞∞∞∞⎢⎥⎢⎥∞∞∞∞∞⎢⎥∞∞⎥⎢⎥∞∞∞∞∞⎢⎥∞∞∞∞∞∞⎢⎥⎣⎦a b c d e f g habcdefh从a出发到其它顶点的最短路径及其计算过程:编程作业:请编写一个完整的程序,建立有向图的邻接表存储结构,并判断两顶点间是否有路径存在,要求:(1) 主函数功能:①从键盘读入有向图的顶点数、有向边数,调用函数CreateAdjList()建立邻接表;②在主函数中输出每个顶点的数据域及其所有邻接点;③从键盘读入两个顶点vs 、v t(ts )的数据域,调用函数Path()判断其间是否存在路径;(2) CreateAdjList():建立有向图邻接表。
功能:从键盘接收各顶点数据域及各条有向边所依附的顶点(如:“2,3”代表该边依附的两个顶点在表头数组中的下标为2和3),要求单链表中结点按数据域升序排序;(3) Path(): 判断两顶点间是否存在路径,如果存在,将打印该路径(若存在多条路径,打印其中一条即可)。
矩阵的运算及其运算规则
矩阵的运算及其运算规则矩阵是代数中一种重要的数学工具,它由数个数按照规定的行列顺序排列而成。
矩阵的运算包括加法、减法、数乘、乘法以及转置等,这些运算规则在代数中有着重要的应用。
一、矩阵的加法和减法矩阵的加法和减法规则相同,对应位置的元素进行相加或相减。
具体来说,如果有两个m×n(m行n列)的矩阵A和B,它们的和为C,则A和B之间的加法运算可以表示为:C = A + B。
其中,C的元素cij就是A和B相对应位置元素之和。
同样,矩阵的减法也是对应位置的元素进行相减操作。
例如,对于如下两个矩阵:A=[[1,2],[3,4]]B=[[5,6],[7,8]]则A和B的和、差分别为:A+B=[[1+5,2+6],[3+7,4+8]]=[[6,8],[10,12]]A-B=[[1-5,2-6],[3-7,4-8]]=[[-4,-4],[-4,-4]]二、矩阵的数乘矩阵的数乘是指将矩阵的每个元素都与一个常数k相乘。
具体来说,如果有一个m×n的矩阵A和一个实数k,则矩阵A乘以k的结果为B,可表示为:B = kA。
其中,B的元素bij等于k与A相对应位置元素的乘积。
例如,对于如下矩阵:A=[[1,2],[3,4]]k=2则A乘以k的结果为:B=kA=2A=[[2,4],[6,8]]三、矩阵的乘法矩阵的乘法是指给定两个矩阵A和B,如果A的列数等于B的行数,则可以将它们相乘得到一个新的矩阵C。
具体来说,如果A是一个m×n 的矩阵,B是一个n×p的矩阵,则矩阵C的大小为m×p。
C的元素cij 可以通过计算A的第i行与B的第j列对应位置元素的乘积之和得到。
例如,对于如下两个矩阵:A=[[1,2],[3,4]]B=[[5,6],[7,8]]则A和B的乘积为:C=AB=[[1×5+2×7,1×6+2×8],[3×5+4×7,3×6+4×8]]=[[19,22], [43,50]]注意,在矩阵乘法中,矩阵的位置很重要,即AB一般不等于BA。
离散数学-图的矩阵表示
分析:从 到 长度为2的路,中间必须经过 如果图G 中有路 存在,则肯定有 ,反之如果 图G中不存在路 ,那么 或者 ,即 于是从结点 到 的长度为2的路的数目就 等于:
按照矩阵的乘法规则,上式恰好等于矩阵 的元素,即 表示从 到 ; 的长度为2的路的数目
中第i行,第j列
考虑从vi到v j的长度为3的路的数目,可以看作是由vi到vk的长度为1的路,再 联结vk 到v j的长度为2的路,则类似可知从vi到v j的长度为3的路的数目为: a
( 3) ij ( 2) aik akj ,即为( A(G )) 3的第i行,第j列元素。 k 1 n
行相加运算: 有向图:对应分量普通加法运算; 无向图:对应分量模2加法运算。 行相加相当于G中对应结点的合并。 air a jr 1 ,说明v 和v 中只有一个结点是边e 的端点,合并 i j r 后仍是er的端点。
air a jr 0 ,有两种情况:
a、vi,vj都不是er的端点; b、vi,vj都是er的端点,合并后删去自回路。 若合并后完全关联矩阵中出现元素全为0的列,表明对应的 边消失。 有了这种运算,就可以运用这种运算求关联矩阵的秩
1 0 1 0
0 1 0 0
0 1 ,求G的可达性矩阵。 1 0
Байду номын сангаас
0 2 A2 1 0
0 1 1 1
1 0 1 0
1 1 1 0
2 1 A3 2 0
4 5 7 2 2 4 4 1
1 2 2 0
3 6 7 2
0 1 1 1
由前面的定理7-2.1的推论可知,如果在vi到vj之间存在路,必定存在 一条长度不超过n的通路,所以l只需计算到n就可以了。
图的矩阵表示及习题-答案汇总
177图的矩阵表示图是用三重组定义的,可以用图形表示。
此外,还可以用矩阵表示。
使用矩阵表示图,有利于用代数的方法研究图的性质,也有利于使用计算机对图进行处理。
矩阵是研究图的重要工具之一。
本节主要讨论无向图和有向图的邻接矩阵、有向图的可达性矩阵、无向图的连通矩阵、无向图和有向图的完全关联矩阵。
定义9.4.1 设 G =<V ,E >是一个简单图,V =⎨v 1,v 2,…,v n ⎬ A (G )=(ij a ) n ×n其中:1j i v v v v a j i j i ij =⎩⎨⎧=无边或到有边到 i ,j =1,…,n称A (G )为G 的邻接矩阵。
简记为A 。
例如图9.22的邻接矩阵为:⎪⎪⎪⎪⎪⎭⎫⎝⎛=0111101011011010)(G A 又如图9.23(a)的邻接矩阵为:⎪⎪⎪⎪⎪⎭⎫⎝⎛=0001101111000010)(G A 由定义和以上两个例子容易看出邻接矩阵具有以下性质:①邻接矩阵的元素全是0或1。
这样的矩阵叫布尔矩阵。
邻接矩阵是布尔矩阵。
②无向图的邻接矩阵是对称阵,有向图的邻接矩阵不一定是对称阵。
178③邻接矩阵与结点在图中标定次序有关。
例如图9.23(a)的邻接矩阵是A (G ),若将图9.23(a)中的接点v 1和v 2的标定次序调换,得到图9.23(b),图9.23(b)的邻接矩阵是A ′(G )。
⎪⎪⎪⎪⎪⎭⎫⎝⎛='0010101100011100)(G A 考察A (G )和A ′(G )发现,先将A (G )的第一行与第二行对调,再将第一列与第二列对调可得到A ′(G )。
称A ′(G )与A (G )是置换等价的。
一般地说,把n 阶方阵A 的某些行对调,再把相应的列做同样的对调,得到一个新的n 阶方阵A ′,则称A ′与A 是置换等价的。
可以证明置换等价是n 阶布尔方阵集合上的等价关系。
虽然,对于同一个图,由于结点的标定次序不同,而得到不同的邻接矩阵,但是这些邻接矩阵是置换等价的。
矩阵运算练习 → 矩阵运算示例
矩阵运算练习→ 矩阵运算示例矩阵运算示例1. 简介矩阵是数学中重要的概念之一,广泛应用于线性代数和计算机科学中。
矩阵运算是对矩阵进行特定运算的过程,可以实现各种数学和计算操作。
2. 矩阵加法矩阵加法是指对两个矩阵进行元素相加的操作。
两个矩阵必须具有相同的行数和列数。
具体操作如下所示:给定两个矩阵:A = [[1, 2],[3, 4]]B = [[5, 6],[7, 8]]通过矩阵加法,可以得到它们的和:A +B = [[1+5, 2+6],[3+7, 4+8]] = [[6, 8],[10, 12]]3. 矩阵乘法矩阵乘法是指对两个矩阵进行特定运算得到新的矩阵的操作。
两个矩阵的列数要与另一个矩阵的行数相等。
具体操作如下所示:给定两个矩阵:A = [[1, 2],[3, 4]]B = [[5, 6],[7, 8]]通过矩阵乘法,可以得到它们的乘积:A *B = [[1*5 + 2*7, 1*6 + 2*8],[3*5 + 4*7, 3*6 + 4*8]] = [[19, 22],[43, 50]]4. 矩阵转置矩阵转置是指将矩阵的行与列进行互换的操作。
具体操作如下所示:给定一个矩阵:A = [[1, 2, 3],[4, 5, 6]]通过矩阵转置,可以得到它的转置矩阵:A^T = [[1, 4],[2, 5],[3, 6]]5. 矩阵求逆矩阵求逆是指根据特定规则计算出一个矩阵的逆矩阵的操作。
具体操作如下所示:给定一个矩阵:A = [[1, 2],[3, 4]]通过矩阵求逆,可以得到它的逆矩阵:A^(-1) = [[-2, 1],[1.5, -0.5]]6. 总结矩阵运算是一种重要的数学工具,可以应用于多个领域。
矩阵加法和矩阵乘法是最基本的矩阵运算,转置和求逆是矩阵运算的衍生操作。
通过熟练掌握矩阵运算,我们可以在数学、计算机科学和其他领域中应用它们解决复杂问题。
以上是关于矩阵运算的简单示例,希望对您有所帮助。
矩阵知识点总结图解
矩阵知识点总结图解一、矩阵的定义1.1 矩阵的概念矩阵是一个由m行n列的数域中的数字组成的矩形数组。
例如,一个3行2列的矩阵可以表示为:\[ \begin{bmatrix}a_{11} & a_{12} \\a_{21} & a_{22} \\a_{31} & a_{32} \\\end{bmatrix}\]1.2 矩阵的基本术语- 行数:矩阵中的行数为m。
- 列数:矩阵中的列数为n。
- 元素:矩阵中的每个数字称为元素,如矩阵中的a11、a12等。
- 维数:一个m行n列的矩阵的维数为m×n。
1.3 矩阵的表示矩阵可以用方括号表示,矩阵中的元素用逗号隔开,例如:\[ A = \begin{bmatrix}1 &2 &3 \\4 &5 &6 \\\end{bmatrix}\]二、矩阵的基本运算2.1 矩阵的加法对于两个相同维数的矩阵A和B,它们的加法定义为矩阵中相应位置元素的和。
即:\[ A + B = \begin{bmatrix}a_{11}+b_{11} & a_{12}+b_{12} & a_{13}+b_{13} \\a_{21}+b_{21} & a_{22}+b_{22} & a_{23}+b_{23} \\\end{bmatrix}\]2.2 矩阵的数乘对于一个m行n列的矩阵A和一个数k,它们的数乘定义为矩阵中每个元素与k的乘积。
即:\[ kA = \begin{bmatrix}ka_{11} & ka_{12} & ka_{13} \\ka_{21} & ka_{22} & ka_{23} \\\end{bmatrix}\]2.3 矩阵的乘法对于一个m行n列的矩阵A和一个p行q列的矩阵B,若n=p,则它们的乘法定义为:\[ AB = C \]其中C是一个m行q列的矩阵,其中元素cij的计算方式为:\[ c_{ij} = a_{i1}b_{1j} + a_{i2}b_{2j} + \cdots + a_{in}b_{nj} \]2.4 矩阵的转置一个m行n列的矩阵A的转置是一个n行m列的矩阵,其中元素aij转置为aji。
图论图的矩阵表示
返回 结束
7.3.1 图的矩阵表示
2
存储原则:ቤተ መጻሕፍቲ ባይዱ存储结点集和边集的信息.
(1)存储结点集; (2)存储边集: 存储每两个结点 是否有关系。
返回 结束
邻接矩阵
7.3.1 邻接矩阵
1.无向图的邻接矩阵
ij a表示 定义 1.6.2设 G (V , E )的顶点集为 V v1 , v2 , , v p,用 (G) (aij ) p p为 G 的邻 G 中顶点 vi与v j 之间的边数。称矩阵M A(G) 接矩阵。
从图的邻接矩阵的定义容易得出以下性质:
(1)
M (G) 是一个对称矩阵; A(G) (G) 中第i 行(列)的元素之和等于顶点 vi 的度数; (2) 若M (G)为无环图。则M A(G) A(G)
(3) 两个图G 与H 同构的充要条件是存在一个置换矩阵 P ,使得
相当于将单位 矩阵中相应的 行与行,或者 列与列互换的 矩阵
3
G 的邻接矩阵为: 例2下图所示 v
3
e1
e2
v2
v1
e3
v1
e9 e5
e8
对应的邻接矩阵
图的矩阵表示(1)
v1 e 2 e4
v2 e5 e6 v3
5
关联矩阵的性质
(1) 图中每一边关联两个结点(当vi = v j时该边形成一个环), 故矩阵M(G)的每一列元之和等于2. (2) 每一行中元素的和数是对应该结点的度数
∑
m j =1
mij = d (vi ), i = 1,2,..., n
4
无向图的关联矩阵
设无向图G=<V,E>, V={v1, v2, …, vn}, E={e1, e2, …, em}. 设无向图 的关联次数, 的关联矩阵, 令mij为vi与ej的关联次数 称(mij)n×m为G的关联矩阵 记为 的关联矩阵 × M(G). mij的可能取值为:0,1,2 的可能取值为:0,1,2 例如 M(G)= 211000 010111 000011 000000 001100
13
实例
长为3的通路各有多少条 的通路各有多少条? 例1 (1) v1到v4,v4到v1长为 的通路各有多少条 (2) v1到自身长为 到自身长为1,2,3,4的回路各有多少条 的回路各有多少条? 的回路各有多少条 (3) 长为 的通路共有多少条 其中有多少条回路 长为4的通路共有多少条 其中有多少条回路? 的通路共有多少条?其中有多少条回路 (4) 长度小于等于 的回路共有多少条 长度小于等于4的回路共有多少条 的回路共有多少条? (5) 写出 的可达矩阵 并问 是强连通的吗 写出D的可达矩阵 并问D是强连通的吗 的可达矩阵, 是强连通的吗? 解 v1 1 2 1 0 A= 0 0 1 0 0 0 0 1 0 0 1 0
图一般可以用邻结矩阵来表示,是双射得。 比如跳马问题等就是这么处理得!
2
用邻接矩阵表示一个图时 1、 输出一个图的边数,以及两端顶点 、 输出一个图的边数, 2、 增加、删除一条边(输出新图对应的邻 、 增加、删除一条边( 接矩阵) 接矩阵)
矩阵的运算与性质练习题及解析
矩阵的运算与性质练习题及解析一、基础概念在矩阵的运算与性质练习题及解析中,首先需要了解矩阵的基本概念。
矩阵是由 m 行 n 列的数构成的一个长方形的数表。
表示为:A = [a_ij]其中,a_ij 表示第 i 行第 j 列的元素。
例如:A = [1 2 3][4 5 6]这是一个 2 行 3 列的矩阵,其中 a_11 = 1, a_12 = 2, a_13 = 3, a_21 = 4, a_22 = 5, a_23 = 6。
二、矩阵的运算1. 矩阵的加法矩阵的加法规则是对应位置的元素相加。
例如:A = [1 2]B = [3 4] A + B = [4 6][5 6] [7 8] [12 14]即 A + B = [a_11 + b_11 a_12 + b_12][a_21 + b_21 a_22 + b_22]2. 矩阵的数乘矩阵的数乘是指将矩阵的每个元素分别乘以一个数。
例如:A = [1 2] 2A = [2 4][3 4] [6 8]即 2A = [2a_11 2a_12][2a_21 2a_22]3. 矩阵的乘法矩阵的乘法是指两个矩阵按一定规则相乘得到一个新的矩阵。
规则是矩阵的行乘以另一个矩阵的列,并将结果相加。
例如:A = [1 2]B = [3 4] AB = [1*3+2*7 1*4+2*8] = [17 22][5 6] [7 8] [5*3+6*7 5*4+6*8] [47 58]即 AB = [a_11b_11+a_12b_21 a_11b_12+a_12b_22][a_21b_11+a_22b_21 a_22b_12+a_22b_22]三、矩阵的性质1. 矩阵的转置矩阵的转置是指将矩阵的行与列互换得到的新矩阵。
例如:A = [1 2 3] A^T = [1 4][4 5 6] [2 5][3 6]2. 矩阵的逆一个矩阵存在逆矩阵的条件是该矩阵为方阵且行列式不为零。
逆矩阵满足以下性质:A * A^(-1) = I,其中 I 是单位矩阵。
离散数学-图的矩阵表示
使用压缩矩阵
对于稠密图(边数较多的 图),可以使用压缩矩阵 来减少存储空间和计算时 间。
使用动态规划
对于某些特定的问题,可 以使用动态规划来优化算 法,提高计算效率。
05
离散数学-图的矩阵表示的挑战和未
来发展方向
离散数学-图的矩阵表示的挑战
计算复杂性
图的矩阵表示的计算复杂性较高, 特别是对于大规模图,需要消耗 大量的计算资源和时间。
表示图中任意两个顶点之间距离的矩阵, 距离矩阵中的元素d[i][ j]表示顶点i和顶点j 之间的最短路径长度。
图的邻接矩阵
1
邻接矩阵是表示图中顶点之间连接关系的常用方 法,其优点是简单直观,容易理解和计算。
2
邻接矩阵的行和列都对应图中的顶点,如果顶点i 和顶点j之间存在一条边,则矩阵中第i行第j列的 元素为1,否则为0。
THANKS
感谢观看
3
通过邻接矩阵可以快速判断任意两个顶点之间是 否存在边以及边的数量。
图的关联矩阵
01
关联矩阵是表示图中边和顶点之间关系的常用方法,
其优点是能够清晰地展示图中边的连接关系。
02
关联矩阵的行和列都对应图中的边,如果边e与顶点i相
关联,则矩阵中第i行第e列的元素为1,否则为0。
03
通过关联矩阵可以快速判断任意一条边与哪些顶点相
图的矩阵表示的算法复杂度分析
创建邻接矩阵的时间复杂 度:O(n^2),其中n是顶 点的数量。
查找顶点之间是否存在边 的复杂度:O(1)。
创建关联矩阵的时间复杂 度:O(m),其中m是边的 数量。
查找边的权重复杂度: O(1)。
图的矩阵表示的算法优化策略
01
02
03
图的基本概念及其矩阵表
04 图的矩阵应用
最短路径问题
Dijkstra算法
基于贪心策略,从源节点开始逐步向外扩展,每次找到距离源节点最近的节点, 直到扩展到目标节点,得到最短路径。
Bellman-Ford算法
通过动态规划的思想,从源节点开始逐步更新节点间的距离,直到所有节点都 被访问过,最终得到最短路径。
最小生成树问题
图的匹配算法
匈牙利算法
用于解决二分图最大匹配问题,即在二分图中找到最大的匹配数。
Hopcroft算法
用于一般图的匹配问题,通过不断在图上增加或删除边来寻找最大匹配。
06 图论的应用领域
计算机科学
算法设计与分析
图论是计算机科学中算法设计与分析的重要工具,用于解决诸如 最短路径、最小生成树、网络流等问题。
Prim算法
从任意一个节点开始,逐步添加边, 每次选择权值最小的边,直到所有节 点都在生成树中,得到最小生成树。
Kruskal算法
按照边的权值从小到大排序,依次添 加边,如果添加的边不会形成环,则 添加到生成树中,最终得到最小生成 树。
网络流问题
Ford-Fulkerson算法
通过不断寻找增广路径并增加其容量,直到没有增广路径为止,得到最大网络流 。
对于一些特殊的矩阵,如对称矩阵、 反对称矩阵等,它们的转置具有特殊 的性质。例如,对称矩阵的转置等于 它本身,而反对称矩阵的转置是它的 负数。
矩阵求逆
要点一
矩阵求逆定义
对于一个非奇异矩阵(即行列式不为零 的矩阵),它的逆矩阵是一个与原矩阵 乘积为单位矩阵(即对角线元素为1, 其余元素为0的矩阵)的矩阵。
矩阵乘法是线性代数中的一种基本运算,它按照一定的规则将两个矩阵相乘,得到一个新 的矩阵。
第六章-图的矩阵表示
e4 e2
v2 e3 v3
v5
v4
v1 M (G) v2
v3 v4 v5
e1 e2
1 1
1
0
0 1
0
0
0 0
e3 e4
0 1
1
0
1 0
0
1
0 0
实例1
例1 求下图的完全关联矩阵。
e1 e2 e3 e4 e5 e6 v1 1 1 0 0 1 1 v2 1 1 1 0 0 0 v3 0 0 1 1 0 1 v4 0 0 0 1 1 0 v5 0 0 0 0 0 0
0 1 1 1 0 0 0
0
0
1
0
1
1
0
4
0 0 0 0 0 1 1
0
0
0
0
0
1
1
() ()
1 1 0 0 0 0 0
0 1 1 0 0 1 0
6
0
0
1
1
1
0
0
0 0 0 1 0 0 1
0
0
0
1
0
0
1
(4) (5)
1 1 0 0 0 0 0
0 1 1 0 0 1 0
0
0
1
1
1
0
0 1
0 0
0 1
→
0 0
1 1
0 1
1 0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
v2 e2
v3
e1
e5
e3
e2 e5
【优文档】图的矩阵表示PPT
i
001100
(2) a d (v ), 例1 (1) v1到v4,v4到v1n长为3(的1)通路各有多少条?
0 0 –1 –1 –1 1 –1i1 ij
j
j 1,2,...,n
(3)
a(1) ij
m
i, j
(4)
a n (1)
i1 ii
等
于D中环
的
个
数
6
实例
v1 v2
v4
1100
0010
0 0 1 0 v1到v2长为3的通路有1条 A= 例1 (1) v1到v4,v4到v1长为3的通路各有多少条? 1 0 0 0 (3) ej与ek是平行边 第j列与第k列相同
1000 A2=
1100
1100 A3=
1100
例1 (1) v1到v4,v4到v1长为3的通路各有多少条?
1 0 2 0 有向图中的通路数与回路数
E={e1,
e2,
…,
em},
令a
( ij
1
)
a 为顶点v 邻接到顶点v 边的条数,称( v1到v4长为3的通路有 条,
(长4)为长4度的小通于路等共于有4的条回,路i其共中有有多少条条回? 路
j
( ij
1
)
)mn为D的邻接矩阵,
记作A(D), 简记作A. – 1 1 0 0 0 –1 1
度为l 的回路数,
图的矩阵表示
❖ 无向图的关联矩阵 ❖ 有向无环图的关联矩阵 ❖ 有向图的邻接矩阵 ❖ 有向图中的通路数与回路数 ❖ 有向图的可达矩阵
1
无向图的关联矩阵
设无向图G=<V,E>, V={v1, v2, …, vn}, E={e1, e2, …, em}. 令mij为vi与ej的关联次数, 称(mij)nm为G的关联矩阵, 记为 M(G). mij的可能取值为:0,1,2
离散数学课程设计.图的矩阵表示及基本运算
中国矿业大学软件开发基础实践报告姓名: xxs 学号: bbaa0edf 专业:计算机科学与技术指导教师: sjc 职称: js(仅供徐海计算机参考哈哈哈哈)2012 年 6 月 20 徐州目录第一章实验概述 (3)1.1实验目的 (3)1.2实验内容 (3)1.3实验环境 (3)第二章实验原理和实现过程 (4)2.1实验原理 (4)2.1.1建立图的邻接矩阵,判断图是否连通 (4)2.1.2 计算任意两个结点间的距离 (4)2.1.3对不连通的图输出其各个连通支 (5)2.2实验过程(算法描述) (5)2.2.1 程序整体思路 (5)2.2.2具体算法流程 (5)第三章实验数据及结果分析 (7)3.1建立图的邻接矩阵并判断图是否连通的功能测试及结果分析 (7)3.1.1输入无向图的边 (7)3.1.2建立图的连接矩阵 (8)3.2其他功能的功能测试和结果分析 (9)3.2.1计算节点间的距离 (9)3.2.2判断图的连通性 (9)3.2.3输出图的连通支 (10)3.2.4退出系统 (10)第四章实验收获和心得体会 (11)4.1实验收获 (11)4.2心得体会 (12)第五章实验源程序清单 (13)5.1程序代码 (13)第一章实验概述1.1 实验目的理解图论的基本概念,图的矩阵表示,图的连通性,图的遍历,以及求图的连通支方法。
通过实验,帮助学生更好地掌握计算机科学技术常用的离散数学中的概念、性质和运算,培养逻辑思维;通过实验提高学生编写实验报告、总结实验结果的能力,提高理论联系实际的能力;使学生具备程序设计的思想,能够独立完成简单的算法设计和分析。
1.2 实验内容以偶对的形式输入一个无向简单图的边,建立该图的邻接矩阵,判断图是否连通(A),并计算任意两个结点间的距离(B),对不连通的图输出其各个连通支(C)。
注意:题目类型分为A,B,C三类,其中A为基本题,完成A类题目可达到设计的基本要求,其他均为加分题,并按字母顺序分数增加越高。
图的矩阵表示
性,亦可用可达矩阵。
第9页/共29页
定义10.19 令 G=<V, E> 是一个简单有向图,V n ,
假定 G 的结点已编序,即 V={v1, v2, …, vn},定义
一个 n×n 矩阵P (pij ) 。其中
Pij
1,
从vi到v
至少存在一条路
j
0,
从vi到v
不存在路
j
称矩阵 P 是图 G 的可达性矩阵。
v3 0 1 1 1 0 0 0 V4,5 0 1 1 0 1 0 1
第21页/共29页
【例10.9】有向图(a)中合并结点 v2 和 v3。
解:合并时,删去自回路得图 (b)。其关联矩阵 M(G’) 是
由 M(G) 中将第 2 行加到第 3 行上面得到的。
v2
e1
v1
e7
e2
v4
e3 e8
e6
v3
第18页/共29页
设图 G 的结点 vi 与结点 vj 合并得到图 G′, 那么 M(G’) 是将 M(G) 中的第 i 行与第 j 行相加
而得到。因为若有关项中第 r 个对应分air量 ajr 1
有
,则说明 vi 与 vj 两者之中只有一
个结点是边 er 的端点,且将这两个结点合并后的结
点 vi,j 仍是 er 的端点。
有向图的完全关联矩阵也有类于无向图的一些性质。
定义10.22 对图 G 的完全关联矩阵中的两行相加如下:
若记 vi 对应的行为vi ,将第 i 行与第 j 行相加,规定
为:对有向图是指对应分量的加法运算,对无向图是指
对应分量的模 2 的加法运算,把这种运v算i 记v j vij
作
第八章2-图的矩阵表示
0, vi 与e j 不关联 a ij 1, vi 为e j的起点 , vi 为e j的终点 1
第二节 图的矩阵表示
还可以构造它的邻接矩阵,B(G)=[bij]n×n ,其中bij =以vi为起点,vj为终点的边的边数。 显见,对有向图G, 关联矩阵A的第j列元素之和为 零,而邻接矩阵B的第i行元素之和为以vi为起点至其 它各点的有向边的边数,B的第j列元素之和为以vj为 终点的有向边的边数。
的行标号 i 与列标号 j 都代表顶点, 还可以构造
,其中:bij =连接顶点 vi 与 vj 的边的数目 第二节 图的矩阵表示 的邻接矩阵,它描述了 G 顶点间的邻接情况。同 v1 v1 v2 v3 v3 v5
0 1 0 1 2
Байду номын сангаас
×n
:
v2
1 0 0 1 0
v3
0 0 0 1 0 1
第二节 图的矩阵表示
本节主要介绍无向图和有向图的矩阵表示
一、 图的矩阵表示 如何把图的有关信息输入或存贮到计算机里, 下面介绍的图的矩阵表示对此有一个答复。 1.无向图的矩阵表示 给无向图 G= ( V , E ), V={v1 ,v2 ,…,vn }, E={e1 ,e2 ,…,em },用矩阵的行标号i表示图G的顶 点下标,用列标号j表示G的边的下标,可构造一 个n×m 矩阵A(G)=[aij] n×m 与它对应,其中:
1
2
n
1
2
i 表示图 G 的顶点下标,用列标号 j 表示 G 的边
第二节 图的矩阵表示
n×m
×m 矩阵 A(G)=[aij]
与它对应,其中:
0, v i 与e j 不关联 a ij 1, v i 与e j 关联
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业内容:
1.已知图G如下图所示.
(1)试给出图G的集合表示;
(2)求图G的邻接矩阵A;
(3)利用矩阵A及其幂,求出从结点v1到v5长度为2和3的路的数目并写出这些路.
2. 设G=<V,E>,V={ v1,v2,v3,v4,v5},E={ (v1,v2),(v1,v3),(v2,v3),(v2,v4),(v3,v4),(v3,v5),(v4,v5) }.
(1)试给出G的图形表示;
(2)写出其邻接矩阵;
(3)求出每个结点的度数;
(4)画出其补图的图形.
活动说明:图的矩阵表示及计算的内容是图论的应用之一,本次活动是一次运用图的矩阵解决实际问题的实践,也是学习过程中的一次形成性考核.本次活动共两个题目,第1题共45分,每小题15分;第2题共55分,其中第1、2 、4 小题各15 分,第3
小题各10分.
本次活动是一次学习过程中的形成性考核,凡是参加活动的学生都能获得相应的形成性考核分.
活动要求:
1.学生在Word 下编辑完成作业,文件命名为“作业次数+学号”(这是第4 次作业,即可命名为:4 ××××××××× .doc ).
2.完成作业后,采用“上传单个文件”的功能提交作业.
活动形式:首先在线下完成“ 图的矩阵表示及计算” 作业、然后采用上传单个文件的形式,把作业交给辅导教师批阅.
作业上传时间:2009 年3 月30 日—— 5 月 24 日。