邻接矩阵学习

本文深入探讨了邻接矩阵的概念及其在无向图和有向图中的应用,包括如何通过邻接矩阵表示图的结构,以及如何利用它计算图的度数、确定边的存在性。同时,文章还解释了邻接矩阵的特点,如存储需求和对称性,并提供了邻接矩阵表示法在实际场景中的应用案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

邻接矩阵:是表示顶点之间相邻关系的矩阵。因此,用一个一维数组存放图中所有顶点数据;用一个二维数组存放顶点间的关系(边或弧)的数据,这个二维数组称为邻接矩阵。邻接矩阵又分为有向图邻接矩阵和无向图邻接矩阵。

设G=(V,E)是一个图,其中V={v1,v2,.....,vn}。G的邻接矩阵是一个具有下列性质的n阶方阵:

①对无向图而言,邻接矩阵一定是对称的,而且主对角线一定为零(在此仅讨论无向简单图),副对角线不一定为0,有向图则不一定如此。
②在无向图中,任一顶点i的度为第i列(或第i行)所有非零元素的个数,在有向图中顶点i的出度为第i行所有非零元素的个数,而入度为第i列所有非零元素的个数。
③用邻接矩阵法表示图共需要n^2个空间,由于无向图的邻接矩阵一定具有对称关系,所以扣除对角线为零外,仅需要存储上三角形或下三角形的数据即可,因此仅需要n(n-1)/2个空间。
 
特点:
无向图的邻接矩阵一定是对称的,而有向图的邻接矩阵不一定对称。因此,用邻接矩阵来表示一个具有n个顶点的有向图时需要n^2个单元来存储邻接矩阵;对有n个顶点的无向图则只存入上(下)三角阵中剔除了左上右下对角线上的0元素后剩余的元素,故只需1+2+...+(n-1)=n(n-1)/2个单元。
无向图邻接矩阵的第i行(或第i列)非零元素的个数正好是第i个顶点的度。
有向图邻接矩阵中第i行非零元素的个数为第i个顶点的出度,第i列非零元素的个数为第i个顶点的入度,第i个顶点的度为第i行与第i列非零元素个数之和。
用邻接矩阵表示图,很容易确定图中任意两个顶点是否有边相连。

 

所谓邻接矩阵(Adjacency Matrix)的存储结构,就是用一维数组存储图中顶点的信息,用矩阵表示图中各顶点之间的邻接关系。假设图G=(V,E)有n 个确定的顶点,即V={v0,v1,…,vn-1},则表示G 中各顶点相邻关系为一个n×n 的矩阵,矩阵的元素为:

其中,wij 表示边(vi,vj)或<vi,vj>上的权值;∞表示一个计算机允许的、大于所有边上权值的数。

 

用邻接矩阵表示法表示图如图8.7 所示。

用邻接矩阵表示法表示网图如图8.8 所示。

 

 

 

### 邻接矩阵在深度学习中的应用 #### 应用场景概述 邻接矩阵作为一种有效的图表示方法,在深度学习领域同样发挥着重要作用。特别是在处理具有复杂关系的数据集时,如社交网络、推荐系统以及分子结构预测等领域,邻接矩阵能够清晰表达节点间的关系[^3]。 #### 使用方法详解 为了更好地理解如何在深度学习框架下利用邻接矩阵,下面将详细介绍其构建过程及操作: 1. **初始化** 构建一个大小为N×N(N代表节点数量)的零矩阵A作为初始状态; 2. **填充权重** 对于每一对存在连接边(i,j),根据实际情况赋予相应位置(A[i][j])合适的权值;对于无向图而言,则还需同步设置A[j][i]=A[i][j]保持对称性。 3. **正则化处理** 考虑到不同样本之间可能存在尺度差异的问题,在某些情况下还需要对该矩阵做进一步标准化转换,比如除以各行元素之和得到概率转移矩阵等形式。 4. **集成至模型架构** 将上述预处理后的邻接矩阵输入给神经网络层之前通常会经过线性变换或者通过GCN(Graph Convolutional Networks)卷积核作用形成新的特征表示形式供后续计算使用。 ```python import numpy as np def create_adjacency_matrix(num_nodes, edges): adj_matrix = np.zeros((num_nodes, num_nodes)) for edge in edges: i, j = edge adj_matrix[i][j] = 1 # For undirected graphs only if not directed_graph_flag: adj_matrix[j][i] = 1 return adj_matrix ``` #### 实际案例解析 - 社交媒体平台可以通过分析用户的关注列表建立好友间的关联模式,并基于此优化个性化推送服务; - 生物信息学研究者借助化学物质内部原子排列情况所形成的拓扑结构指导药物研发工作; - 物流配送企业依据城市交通路网规划最优路径降低运输成本提高效率等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值