图(Graph)--概念及应用

简介: 本文分享了关于图的概念、图的数学表示及图的应用等内容,以供参考学习

1、图 (graph) 概念

图(Graph)是由节点(Node)和边(Edge)组成的一种数据结构,用于描述事物之间的关系。在图中,节点表示事物,边表示事物之间的关系。图可以用来描述各种复杂的关系网络,例如社交网络、交通网络、生物网络等。

在图中,节点可以表示各种实体,例如人、物、地点、基因等。边可以表示各种关系,例如人与人之间的社交关系、物品之间的相似性关系、地点之间的距离关系、基因之间的相互作用关系等。图可以用来描述各种不同类型的关系网络,从而帮助我们更好地理解事物之间的联系和相互作用。图可以分为有向图和无向图两种类型。在有向图中,边有方向,表示从一个节点到另一个节点的单向关系;在无向图中,边没有方向,表示两个节点之间的双向关系。此外,图还可以包含权重,用于表示边的强度或者权重。

图是计算机科学中的重要概念,被广泛应用于各种领域,例如社交网络分析、生物信息学、交通网络规划等。

2、图的基本表示

图的基本构成 : 节点(nodes, vertices,$N$), 连接(links,edges,$E$),从而图可以被系统描述 $G(N,E)$ .
图的本体(Ontology): 图的本体是对知识图谱的正式描述,用以描述一个领域内的一组概念以及它们之间的关系。要构建一个图,需要清楚图的本体,哪些信息可以被描述为节点对象,哪些关系用以描述对象连接。

2.2 图的分类:

  • 根据连接关系的指向性有无分成 无向图,有向图

  • 如果一张图里存在不同类型的节点或连接,则形成 异质图(heterogeneous graph) ,$G(V,E,R,T)$
    这种图结构复杂性较高,是目前大部分图神经网络论文的主要关注对象。

    Nodes with node types $v_i \in V$
    Edges with relation types $(v_i,r,v_j) \in E$
    Node type $T(v_i)$
    Relation type $r \in R$

  • 基于边的连接是否带权重,可以分为连接带权重的图

2.3 节点度(degree)


在一个网络中,如果一个节点与其它节点广泛连接(连接的边很多),意味着它在该图所表示的关系中起着非常重要的作用,所以 node degree 可以简单的反映出一个节点的重要度(中心度,枢纽度)。类比社交网络中,当一个人认识的人越多,那么他就是社交中枢。

3、图的矩阵表示--邻接矩阵

描述图结构的矩阵称为 邻接矩阵($Adjacency \ Matrix$),用以描述图中任意两个节点的邻接关系。

  • 对于无向图,节点的间的连接是互为指向的关系,所以图矩阵为对称阵,如果节点不存在指向自己的连接,则矩阵的对角线为0;图的总连接数为$L = \frac {1}{2}{sum(X)}$
  • 对于有向图,矩阵的行方向为 source,列方向为 target 的格式,非对称阵;对有向图矩阵,对某列求和可得节点$k_j$ 总入度($k_j^{(in)}$),对某行求和可得节点$k_i$ 总出度($k_i^{(out)}$),图的总连接数为$L = \sum_{i=1}^N{k_i^{(in)}} = \sum_{j=1}^N{k_j^{(out)}} = sum(X)$

3.2 图的连接列表和邻接列表

由于现实中大部分关系图都是稀疏的($k << N-1 $),每个节点邻接的其它节点不会太多,所以邻接矩阵也是个非常稀疏的矩阵,直接用稠密矩阵表示图关系将非常耗费计算资源。 所以扩展出来图的 连接列表邻接列表 表示方式。

  • 连接列表(list of edges) 相比起邻接矩阵,只记录存在连接的节点对,一个三元组表("source,target,weight,label,...");
  • 邻接列表(Adjacency list) 相比起 连接列表 进一步压缩了信息,图中有$N$个节点,只需要创建$N$个$elements$来表示 。

Graphs in Python - Theory and Implementation - Representing Graphs in Code (stackabuse.com)

2、图的应用

  • 最短路径搜索(地图导航)
  • 节点重要度分析,搜索重要节点(度中心性评价)
  • 社群检测(community detection),如 Louvain 社群检测算法(节点聚类)
  • 连接预测(Link Prediction)
  • 节点相似性分析,分析图即使连接遥远,但是在属性特征等方面相似的节点
  • Embeddings,将一个节点映射成 d维向量,该嵌入向量表征了节点在图中的语义和连接关系,以用作下游分析。
    ...


目录
相关文章
|
算法 计算机视觉 Python
DSP:数字信号处理技术的魅力与应用
DSP:数字信号处理技术的魅力与应用
|
机器学习/深度学习 算法 索引
LSTM(长短期记忆网络)原理介绍
LSTM算法是一种重要的目前使用最多的时间序列算法,是一种特殊的RNN(Recurrent Neural Network,循环神经网络),能够学习长期的依赖关系。主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比普通的RNN,LSTM能够在更长的序列中有更好的表现。
8694 0
LSTM(长短期记忆网络)原理介绍
【推荐】排序模型的评价指标nDCG
nDCG(Normalized Discounted Cumulative Gain)归一化折损累计增益是一种用于评估排序模型性能的指标,它考虑了两个方面:排序的正确性和相关性的程度。
4446 0
|
人工智能 架构师 算法
阿里P6到P9的技术栈有哪些?程序员该如何准备学习?如何进入大厂
相信每一个程序员应该都有一个大厂梦,但是不知道如何进入大厂,或者说是技术栈和项目经验达不到大厂的要求! 那就有人问了,那怎么样才能进入大厂呢?进入大厂的话都有哪些要求呢? 小编,就给大家简单介绍一下,要想进入大厂需要达到的要求! 总结起来一共有四点:1.学历;2.技术栈+项目经验;3.心理素质+思维转变;4.面试技巧;
|
8月前
|
负载均衡 Linux 定位技术
做网站第一步:如何选择最适合的云服务器配置?
在互联网世界中,选择一台合适的云服务器对建站至关重要。它不仅影响网站性能和用户体验,还关系到运营成本。面对众多云服务商和产品,需从网站规模、技术架构、地理位置等多方面考量,明确需求,精准选型。无论是个人博客、企业官网,还是电商平台,都应找到匹配自身发展的服务器类型。当前各大云服务商也推出多项优惠活动,助力中小企业快速起步。通过试用体验,更易找到“本命”服务器。愿你拨开迷雾,找到最适合自己的那一款,开启数字世界的精彩篇章。
|
机器学习/深度学习 编解码 监控
算法金 | 深度学习图像增强方法总结
**图像增强技术概括** 图像增强聚焦于提升视觉效果和细节,广泛应用于医学、遥感等领域。空间域增强包括直方图均衡化(增强对比度)、对比度拉伸、灰度变换、平滑滤波(均值、中值)和锐化滤波(拉普拉斯、高通)。频率域增强利用傅里叶变换、小波变换,通过高频和低频滤波增强图像特征。现代方法涉及超分辨率重建、深度学习去噪(如CNN、Autoencoder)、图像修复(如GAN)和GANs驱动的多种图像处理任务。
1034 14
算法金 | 深度学习图像增强方法总结
|
Java Maven Spring
Java Web 应用中,资源文件的位置和加载方式
在Java Web应用中,资源文件如配置文件、静态文件等通常放置在特定目录下,如WEB-INF或classes。通过类加载器或Servlet上下文路径可实现资源的加载与访问。正确管理资源位置与加载方式对应用的稳定性和可维护性至关重要。
463 7
uni-app动态修改顶部原生导航栏文字跟颜色
uni-app动态修改顶部原生导航栏文字跟颜色
1391 0
在Linux中,什么是initrd镜像?
在Linux中,什么是initrd镜像?
|
机器学习/深度学习 算法 数据处理
ML之FE:数据处理—特征工程之稀疏特征的简介、如何处理、案例应用之详细攻略
ML之FE:数据处理—特征工程之稀疏特征的简介、如何处理、案例应用之详细攻略
ML之FE:数据处理—特征工程之稀疏特征的简介、如何处理、案例应用之详细攻略