在离散数学中,图有顶点(Vertex)以及连接顶点的边(edge)构成。vertex表示研究的对象,edge表示两个对象之间特定的关系。
图G可表示为vertex和edge的集合,记作G=(V,E),其中V是vertex的集合,E是edge的集合。例如图1所示。其中V = {v1,v2,v3,v4,v5}, E = {(v1,v2),(v1,v3),(v2,v4),(v2,v3),(v3,v4),(v4,v5)}.
2.非加权图与加权图
如果图里的每条边都有一个实数与之对应,我们称这样的图为加权图。与之相反的是非加权图,我们可认为非加权图各边上的权重是一样的。
3.连通图和非连通图
如果图中存在孤立的顶点,没有任何边与之相连,这样的图称为非连通图,反之。
4.二部图
二部图是一类特殊的图。我们将G中的顶点集合V拆分成两个子集A和B,如果对图中的任意一条边eij均有vi ∈ \in ∈A,vj ∈ \in ∈B或vi ∈ \in ∈B,vj ∈ \in ∈A,则称G为二部图。
1.1.2 邻居和度
如果存在一条边连接顶点vi和vj,则称vj是vi的邻居,反之亦然。以vi为端点的边的数目称为vi的度(Degree),记为deg(vi)。
在有向图中,我们同时定义出度(outdegree)和入度(indegree),顶点的度数等于该顶点的出度与入度之和。
1.1.3子图与路径
子图:图G_中的顶点集合和边集分别为另一个图G的顶点集的子集和边集的子集。
路径:从顶点vi到顶点vj的通过的边
路径的长度:路径中边的数目。
顶点的距离:两个顶点之间的距离由他们的最短路径的长度决定。
1.2.1邻接矩阵与关联矩阵
邻接矩阵(Adjacency matrix):邻接矩阵A描述图中顶点之间的关联,A ∈ R N ∗ N \in{R^{N*N}} ∈RN∗N其定义为:
关联矩阵:关联矩阵B ∈ R N ∗ M \in{R^{N*M}} ∈RN∗M来描述结点与边之间的关联,定义如下:
如图3,其邻接矩阵与关联矩阵可表示为:
1.2.2 图的遍历
图的遍历是指从图中的某一顶点出发,按照某种搜索算法沿着图中的边对图中的所有顶点访问一次且仅访问一次,图的遍历算法主要有两种算法:深度优先搜索(DFS,Depth-First-Search)和广度优先搜索(BFS,Breadth-First-Search)。
图数据是一类比较复杂的数据类型,存在非常多的类别,这里介绍最重要的4类:同构图(Homogeneous Graph)、异构图(Heterogeneous Graph)、属性图(Property Graph)和非显式图(Graph Constructed from Non-relational Data).
1)同构图:图中的节点类型和关系类型都仅有一种。如由超链接关系所构成的万维网。
2)异构图:图中的节点类型或关系多于一种。
3)属性图:相较于异构图,属性图给图数据增加了额外的属性信息
4)非显式图:指数据之间没有显示的定义出关系,需要依据某种规则或计算方式将数据的关系表达出来,进而将数据当做一种图数据进行研究。
图数据相关任务的一种分类:
1、节点层面(Node Level)的任务
节点层面的任务主要包括分类任务和回归任务。
2、边层面(Link Level)的任务
边层面的任务主要包括边的分类和预测任务。边的分类是指对边的某种性质进行预测;边预测是指给定的两个节点之间是否会构成边。
3、图层面(Graph Level)的任务
图层面的任务不依赖于某个节点或者某条边的属性,而是从图的整体结构出发,实现分类、表示和生成等任务。