小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
通常现实生活中事物是复杂,我们无法用简单数据结构来表示这些复杂事物以及事物之间关系,这些关系可以用图来表示,通常用关系将一些孤立的实体联接起来形成网络。这样也就是引入今天我们要讨论的图这种可以通过节点和边之间关系来表示一些复杂事物、例如社交、分子结构或者交通网络
有哪些网络类型
- 社会网络
- 交通问题
- 通讯系统
- 化学和医学的应用
- 基因/蛋白质
- 分子结构
信息图
图的基本概念
图是一种数据结构,是定义在结点和边上数据结构。
图的基本组成部分
图 G(V,E)
- 结点和边
- 拓扑结构
- 社交网络、购买记录、关系树,句子或者是图片
结点(Node)
- 实体表达图里的节点V{v0,v2,⋯}
- 例如结点可以是人、商品、论文
- 存在的事物都可以用结点来表示
边(Edge)
- 关系表达图里的边 E{(v1,v2),(v2,v2),⋯}
- 人与人之间朋友关系、购买关系、引用关系
图定义

A=⎣⎡a11⋮an1⋯⋮⋯a1n⋮ann⎦⎤n×naij=10(vi,vj)∈Eelse
图分类
有向图(Directional)
- 邻接矩阵 A 是没有约束的
- 箭头所指结点就是图头,另一端为图尾,有点类似向量 <vi,vj> 有位置区分的,来表示有序对,
无向图(Undirectional)
- aij=ajiA=AT 也就是邻接矩阵 A 是一个对称矩阵
- 这里介绍一下无向边,也就是结点之间的边是没有方向的,这里用圆括号来表示无向边(vi,vj) vi 和 vj 边,所有边的都是无向边的图就是无向图

权重
图可以分为有权图和无权图

左侧为无权图而右侧为有权图
有权重(Weighted)
每条边具有一定权重,通常是数字
aij∈R,e=(u(i),v(i),w(i))
无权重图(Unweighted)
可以理解为权重为 1 的有权图
aij∈{0,1},e=(u(i),v(i))
简单图
多重关系(Multi-relational)
- 单个关系(Single-relational)
ei=(u(i),v(i)),A∈Rn×n
- 多种关系
关联两个结点,边上所对应的类型,所有可能取的关系值的大小
ei=(u(i),v(i),τ(i)),A∈Rn×n×∣{τ}∣
结点ID(Node ID)和结点特征(Node Feature)
结点 ID(Node ID)
vi,V∈Rn×1
- 只有下标 i 来表示一个结点
- 在此情况下结点信息为序号
结点特征(Node Feature)
vi=(v1i,v2i,⋯,vki)V∈Rn×k
- 用一个向量来描述一个结点
- 向量每一个维度数值对应一个结点特征
抑制图(Heterogeneous)
具有多种关系类型图进行一些分类,可以清楚表示真实环境不同情景

- G=(V,E)
- V=V1∪V2∪⋯∪Vk,Vi∩Vj=ϕ,∀i=j
- (u,v,τij)∈E→u∈Vi,v∈Vj
- 可以将结点集合分为若干没有交集的子集合,
- 附加一个约束,特定类别边的类型就确定了该边连接两个子结点的类型
这里边τij的类型也就确定了其所连接的两个结点所属子集合
多重图(Multiplex)
- 存在重复的边,和结点自身的边
- G=(V,E)
- V=V1∪V2∪⋯∪Vk,Vi=Vj
- E=E1∪E2∪⋯∪Ek∪E0,τEi=τEj,∀i=j
- (u,v,τij)∈E0→u=v
- 结点子集合若干份 copy
- 边集合 k 层中,边集合类型不同
- 不同 k 层之间的边
网络和图(network and graph)
网络
图
