1.本发明属于电力系统技术领域,具体涉及一种基于图论的电量图数据库构建及搜索方法。
背景技术:
2.电力系统规模庞大、结构复杂,随着信息化推进和电力业务拓展,电力的发、输、变、配、用等各生产和服务环节每时每刻都在产生海量的数据和知识,系统中的知识总量呈爆炸式增长。这些电力系统中的新知识呈现出复杂和多变的特性:知识结构复杂,异构化知识不断增加;知识更迭迅速,更新频率逐渐缩短。面对电力系统中急剧增长的新知识,传统的知识组织和管理方式已经无法满足当前电力系统的需要。
3.当前,以知识表示和知识推理为基础的知识库在电力系统中得到了较多应用,但是,这些知识库大多依赖于专家提取、整理并将数据以图表形式存储于数据库的传统知识管理方式,其所能够存储的知识结构较为单一,且每次更新都需要专业技术人员花费大量时间。特别对于电力调度、设备管理、数据交互、业务查询等知识更迭迅速的领域,现有的知识管理方已经严重滞后于系统的发展需要。电力系统亟需新型、自动、智能的知识组织、存储、提取、推理方法和工具。
4.为了实现有效的知识组织和管理,已有研究将计算机领域中近年来广泛应用的知识图谱(knowledge graph)技术引入电力系统领域。知识图谱是以图的形式表现客观世界中的实体及其相互关系的知识库,是大数据时代人工智能符号主义的知识表达方式之一,可以有效组织、管理和利用海量信息,实现智能化的知识抽取、推理、存储和检索,其特性及应用场景与电力系统的需要十分契合。
5.目前的知识图谱主要是基于neo4j图数据库构建。图数据库(graphdatabase)是一种不限于sql(structured query language)的新型数据库,它使用图结构的方式建模,数据模型主要是以节点和边来体现。图数据库能够运用图结构的自然伸展特点,解决一系列非常复杂的设计问题。neo4j则是图数据库中比较流行的一款产品,具有丰富的关系表示、完整的事务支持和数据库操作、更直观的数据展示等优点。neo4j中使用cypher语言进行操作,这是专门为图像数据库设计的语言,浅显易懂,具有丰富的表现力,借鉴了sql 结构。通过采用如match、where和delete等类似sql的语句组合模式来实现查询,表达预期操作。在数据体量不大的单一搜索任务中,neo4j 能够实现对图数据的高效查询和更新;但对于需要处理海量数据的复杂搜索任务,neo4j搜索效率不高、处理时间过长。
技术实现要素:
6.针对现有技术的不足,本发明的目的在于提供一种基于图论的电量图数据库构建及搜索方法,以解决上述背景技术中提出的问题。
7.本发明的目的可以通过以下技术方案实现:
8.一种基于图论的电量图数据库构建及搜索方法,包括如下步骤:
9.步骤1:通过分析电网电量数据组成与结构特征,对数据进行预处理,计算得出包括描述用户、行业类型、地区关系的布尔类型邻接矩阵,存储用户不同时间用电量数据的二维浮点数值矩阵,构建电量图数据库,
10.步骤2:在电量图数据库的基础上,通过邻接矩阵计算描述用户、行业、地区间接关系的可达矩阵,在邻接矩阵与可达矩阵的基础上进行检索,获取检索结果。
11.作为本发明进一步的方案,所述步骤1中,数据通过电网系统导出,数据包括用户用电数据,任一所述用户用电数据包括用户编号、行业、用电量、管理地区、时间单元。
12.作为本发明进一步的方案,所述步骤1中,将用户用电数据提取为“实体-关系-实体”的三元组格式,以三元组格式作为数据的基本形式进行处理,将实体视作图谱的点,关系视作图谱的边,构建出相应的电量统计知识图谱:
13.作为本发明进一步的方案,将用户用电数据进行“实体-关系-实体”的三元组格式提取后,基于实际数据特点进行分类存储,每类数据采用单一的存储方式存储,数据类别及相应存储方式包括以下三类:布尔型的邻接矩阵,索引矩阵以及二维浮点数值矩阵。其中,地区、行业、用户间关系采用邻接矩阵存储,用户在不同时间下的用电数据采用二维浮点数值矩阵存储,二维浮点数值矩阵中的编号与实体名称对应关系采用索引矩阵存储。
14.作为本发明进一步的方案,建立地区-行业-用户图谱,通过下述公式建立索引矩阵:
15.i
user
={(nameuserk,indexuserk)|indexuserk=k+n
area
+n
indus
,k=1,2,3,
…
,n
user
}
16.其中,iarea,iindus,iuser分别为地区,行业,用户的索引,nameareak, nameindusk,nameuserk,分别对应地区,行业,用户的名称,indexareak, indexindusk,indexuserk分别对应索引编号;
17.假设地区-行业-用户图谱节点数为n,则有:
18.n=n
area
+n
indus
+n
user
19.其中narea,nindus,nuser分别为地区,行业,用户的数量,
20.此时节点邻接矩阵a的阶数为n
×
n,a中对角元素为0,而非对角元素定义为节点i与j之间通过支路建立的连接关系,则a中元素aij可表示为:
[0021][0022]
对于用户-时间-数据的关系,首先通过下述公式建立针对时间的单独索引 idata:
[0023]idata
={(namedatak,indexdatak)|indexdatak=k,k=1,2,3,
…
,n
data
}
[0024]
其中,idata是针对时间的单独索引,namedatak是八位时间编码, indexdatak是时间对应的索引编号;
[0025]
在时间索引的基础上,用二维浮点数值矩阵存储了用户-时间-数据关系,设其矩阵形式为b:
[0026]
b={b
ij
=electricity
i,j
|i=indexuserk,j=indexdata
l
,k=1,2,
…
,n
user
,l=1,2,
…
,n
data
}
[0027]
其中electricityij为对应用户在相应日期的用电量,i为用户对应索引编号,j为
相应日期的对应索引编号。
[0028]
作为本发明进一步的方案,构建精确搜索、广域搜索、广域统计和上级与次级四种搜索模型,
[0029]
1)精确搜索:
[0030]
根据用户编号以及日期,通过下述公式得到索引列表中用户及时间对应的索引编号,
[0031]
indexuseri=i
user
(nameuseri)
[0032]
indexdatas=i
user
(namedatas)
[0033]
其中,indexuseri,indexdatas分别为通过检索得到的用户、时间序列索引编号,
[0034]
得到用户和时间的索引号后,通过下述公式在用户-时间-电量的二维浮点数值矩阵中索引得到具体的用电量数据:
[0035]
electricitys={b(indexuseri,indexdataj)|indexdataj∈indexdatas}
[0036]
其中electricitys为得到的用电数据,也就是希望得到的搜索目标;
[0037]
2)广域搜索:
[0038]
对于一个有向图,可达矩阵r的元素采用下述公式计算,得到可达矩阵 r:
[0039]
(a+i)
(k-1)
≠(a+i)k=(a+i)
(k+1)
=r
[0040]
具体在进行广域搜索时,首先通过下述公式分别索引得到地区和行业的编号:
[0041]
indexareak=i
area
(nameareak)
[0042]
indexindusk=i
indus
(nameindusk)
[0043]
其次,通过公式找到可达矩阵中的特定非零元,从而得到地区和行业下的用户索引:
[0044][0045]
indususers=(r[indexindusk,indexuser:]≠0)
[0046]
indexusers=areausers∩indususers
[0047]
其中,areausers为特定地区下属用户索引编号,indususers为特定行业下属用户索引编号,最后通过对特定行业及地区下属用户取交集,得到了广域搜索的用户编号indexusers,再通过公式在用户-时间-电量的二维浮点数值矩阵中读取到特定的行列数据:
[0048][0049]
其中eletricitys为读取的电量数据,即为广域搜索的目标;indexdatas为时间索引序列;
[0050]
3)上级与次级统计:
[0051]
首先通过索引矩阵得到地区和行业的索引编号,后通过公式进行检索统计:
[0052]
subarea=(a[indexareak,0~n
area
]≠0)
[0053]
其中subarea为检索得到的下级地区,检索得到地区后,针对每个地区进行广域搜索和累计统计,从而得到下级统计的结果,
[0054]
上级统计则同样以地区为例,首先通过索引矩阵得到地区和行业的索引编号,再通过公式进行检索统计:
[0055]
uparea=(a[0~n
area
,indexareak]≠0)
[0056]
其中,uparea为检索得到的上级地区,检索到上级地区后进行广域搜索并统计,最终得到上级统计结果;
[0057]
4)广域统计:
[0058]
广域统计是建立在广域搜索和上下级搜索的基础上进行的简单统计,将前述得到的电量数据通过公式计算,得到统计结果:
[0059][0060]
其中sumeletricity为统计结果,neletricity为电量数据的数量,eletricityi 表示广域搜索电量数据中的第i个值
[0061]
本发明的有益效果:
[0062]
基于图论和python构建了自建图数据库,并通过布尔矩阵,索引矩阵等方法,实现图数据的轻量化存储,形成了电量分析统计知识与图谱建立联动的分析机制;
[0063]
基于自建图数据库,通过邻接矩阵,可达矩阵等实现了电量数据的智能快速搜索,在保证搜索高精确度的同时大幅缩减了搜索时间,实现了更丰富的搜索功能:在搜索的时间效率上大幅优于开源数据库neo4j,比之传统的网上电网实现了更丰富的搜索功能。
附图说明
[0064]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0065]
图1本实施例中结构化数据的三元组提取方式示例;
[0066]
图2本实施例中产业类型连通的知识图谱;
[0067]
图3本实施例中索引矩阵示例;
[0068]
图4本实施例中邻接矩阵示例;
[0069]
图5本实施例中用户-时间-电量的二维浮点数值矩阵示例;
具体实施方式
[0070]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0071]
一种基于图论的电量图数据库构建及搜索方法,包括如下步骤:
[0072]
步骤1:通过分析电网电量数据组成与结构特征,对数据进行预处理,计算得出包括描述用户、行业类型、地区关系的布尔类型邻接矩阵,存储用户不同时间用电量数据的二维浮点数值矩阵,构建电量图数据库,
[0073]
步骤2:在电量图数据库的基础上,通过邻接矩阵计算描述用户、行业、地区间接关
系的可达矩阵,在邻接矩阵与可达矩阵的基础上进行检索,获取检索结果。
[0074]
进一步的,所述步骤1中,数据通过电网系统导出,数据包括用户用电数据,任一所述用户用电数据包括用户编号、行业、用电量、管理地区、时间单元。其次,通过行业类型的细分,实现了用户之间的连通,使图谱真正实现一张网连通。并且在实现行业维度检索之外,还能够实现从时间和地区两个维度分别直接进行用户用电数据检索。
[0075]
进一步的,所述步骤1中,将用户用电数据提取为“实体-关系-实体”的三元组格式,以三元组格式作为数据的基本形式进行处理,将实体视作图谱的点,关系视作图谱的边,构建出相应的电量统计知识图谱。图谱架构如附图2。
[0076]
进一步的,将用户用电数据进行“实体-关系-实体”的三元组格式提取后,基于实际数据特点进行分类存储,每类数据采用单一的存储方式存储,数据类别及相应存储方式包括以下三类:布尔型的邻接矩阵,索引矩阵以及二维浮点数值矩阵。其中,地区、行业、用户间关系采用邻接矩阵存储,用户在不同时间下的用电数据采用二维浮点数值矩阵存储,二维浮点数值矩阵中的编号与实体名称对应关系采用索引矩阵存储。
[0077]
进一步的,建立地区-行业-用户图谱,通过下述公式建立索引矩阵:
[0078]iuser
={(nameuserk,indexuserk)|indexuserk=k+n
area
+n
indus
,k=1,2,3,
…
,n
user
}
[0079]
其中,iarea,iindus,iuser分别为地区,行业,用户的索引,nameareak, nameindusk,nameuserk,分别对应地区,行业,用户的名称,indexareak, indexindusk,indexuserk分别对应索引编号;
[0080]
假设地区-行业-用户图谱节点数为n,则有:
[0081]
n=n
area
+n
indus
+n
user
[0082]
其中narea,nindus,nuser分别为地区,行业,用户的数量,
[0083]
此时节点邻接矩阵a的阶数为n
×
n,a中对角元素为0,而非对角元素定义为节点i与j之间通过支路建立的连接关系,则a中元素aij可表示为:
[0084][0085]
对于用户-时间-数据的关系,首先通过下述公式建立针对时间的单独索引 idata:
[0086]idata
={(namedatak,indexdatak)|indexdatak=k,k=1,2,3,
…
,n
data
}
[0087]
其中,idata是针对时间的单独索引,namedatak是八位时间编码, indexdatak是时间对应的索引编号;
[0088]
在时间索引的基础上,用二维浮点数值矩阵存储了用户-时间-数据关系,设其矩阵形式为b:
[0089]
b={b
ij
=electricity
i,j
|i=indexuserk,j=indexdata
l
,k=1,2,
…
,n
user
,l=1,2,
…
,n
data
}
[0090]
其中electricityij为对应用户在相应日期的用电量,i为用户对应索引编号, j为相应日期的对应索引编号。基于图论构建完成的电量图数据库,依据实体关系类型采用了元素为布尔类型的邻接矩阵与二维浮点数值矩阵进行存储,二维浮点数值矩阵的使用删
减了图谱中大量的的用户-数据、时间-数据的冗杂关系,降低了邻接矩阵的维度,为后续智慧搜索提供了技术基础。
[0091]
本发明基于图论构建完成的电量图数据库,依据实体关系类型针对性地采用了bool类型的邻接矩阵与二维数据库存储,bool类型的邻接矩阵有利于减少存储容量需求、提高后续的搜索速度,二维数据库的使用删减了图谱中大量的的用户-数据、时间-数据的冗杂关系,降低了邻接矩阵的维度,为后续智慧搜索提供了技术基础。
[0092]
进一步的,构建精确搜索、广域搜索、广域统计和上级与次级四种搜索模型,搜索功能汇总如下表所示:
[0093][0094]
在图论中,我们可以用0,1的邻接矩阵表示图中边集,可达矩阵则是用来描述可达性的矩阵,可达性反映了一个节点到达另一个节点的能力。本发明基于上述原理,首先利用邻接矩阵的性质来实现实体的精确搜索,再通过可达矩阵实现广域搜索、并进一步实现范围搜索,最终实现基于自建图数据库的智能搜索功能。
[0095]
1)精确搜索:
[0096]
精确搜索指精确到用户级别的信息,用来实现快速准确地查询到特定用户在某一特定日期的电量数据。对于这种依赖简单关系的搜索,可直接通过第二章中建立的二维电量数据库进行检索。
[0097]
根据用户编号以及日期,通过下述公式得到索引列表中用户及时间对应的索引编号,
[0098]
indexuseri=i
user
(nameuseri)
[0099]
indexdatas=i
user
(namedatas)
[0100]
其中,indexuseri,indexdatas分别为通过检索得到的用户、时间序列索引编号,
[0101]
得到用户和时间的索引号后,通过下述公式在用户-时间-电量的二维浮点数值矩阵中索引得到具体的用电量数据:
[0102]
electricitys={b(indexuseri,indexdataj)|indexdataj∈indexdatas}
[0103]
其中electricitys为得到的用电数据,也就是希望得到的搜索目标;
[0104]
2)广域搜索:
[0105]
广域搜索是指对特定地区、特定行业、以及特定时间范围内的用户及其用电量数据进行搜索。
[0106]
由于构图时建立的邻接矩阵只能反映相邻节点间的关系,无法反映不相邻节点之间的连通情况,因此提出采用可达矩阵进行广域搜索。在图论中,可达矩阵是用来描述可达性的矩阵,可达性反映一个节点到达另一个节点的能力。
[0107]
对于一个有向图,可达矩阵r的元素采用下述公式计算,得到可达矩阵r:
[0108]
(a+i)
(k-1)
≠(a+i)k=(a+i)
(k+1)
=r
[0109]
具体在进行广域搜索时,首先通过下述公式分别索引得到地区和行业的编号:
[0110]
indexareak=i
area
(nameareak)
[0111]
indexindusk=i
indus
(nameindusk)
[0112]
其次,通过公式找到可达矩阵中的特定非零元,从而得到地区和行业下的用户索引:
[0113][0114]
indususers=(r[indexindusk,indexuser:]≠0)
[0115]
indexusers=areausers∩indususers
[0116]
其中,areausers为特定地区下属用户索引编号,indususers为特定行业下属用户索引编号,最后通过对特定行业及地区下属用户取交集,得到了广域搜索的用户编号indexusers,再通过公式在用户-时间-电量的二维浮点数值矩阵中读取到特定的行列数据:
[0117][0118]
其中eletricitys为读取的电量数据,即为广域搜索的目标;indexdatas为时间索引序列;
[0119]
3)上级与次级统计:
[0120]
上下级统计是指统计某一行业或地区的上级或下级行业或地区的用户用电量的功能。上下级统计功能的实现主要依托于邻接矩阵的性质。下级统计和广域搜索功能类似,以对地区的下级搜索为例。
[0121]
首先通过索引矩阵得到地区和行业的索引编号,后通过公式进行检索统计:
[0122]
subarea=(a[indexareak,0~n
area
]≠0)
[0123]
其中subarea为检索得到的下级地区,检索得到地区后,针对每个地区进行广域搜索和累计统计,从而得到下级统计的结果,
[0124]
上级统计则同样以地区为例,首先通过索引矩阵得到地区和行业的索引编号,再通过公式进行检索统计:
[0125]
uparea=(a[0~n
area
,indexareak]≠0)
[0126]
其中,uparea为检索得到的上级地区,检索到上级地区后进行广域搜索并统计,最终得到上级统计结果;
[0127]
4)广域统计:
[0128]
广域统计是建立在广域搜索和上下级搜索的基础上进行的简单统计,将前述得到的电量数据通过公式计算,得到统计结果:
[0129][0130]
其中sumeletricity为统计结果,neletricity为电量数据的数量,eletricityi 表示广域搜索电量数据中的第i个值。
[0131]
算例依据某市九千多个用户两年,大概五百多万条用电数据进行图谱构建、存储,并和基于neo4j的搜索功能进行了时间方面的比较,和国家电网数据管理平台进行了功能上的比较。在配置为:intel core i5-104002.90ghzcpu 16g ram的电脑上进行测试。
[0132]
首先进行电量图数据库构建,将数据抽取为三元组形式。以用户编号为 12****48的用电用户为例,需要处理的数据信息有:额定容量为160kva,电压等级为10kv,行业类型为土木工程建筑业,用户状态为在运,用户类别为高,电量为196.2kwh,立户日期为20051009,管理单位为服务区a,日期为 20190501。针对其中的实体与关系,对其进行三元组提取,即将每一个具体数据作为实体,类别作为其上的关系。该用户的额定容量和行业类别提取如下:将该用户编号的具体数值12****48作为实体一,该用户额定容量(kva) 的具体数值作为实体二,实体一和实体二之间的连接关系即为“额定容量 (kva)”。再将该用户编号的具体数值12****48作为实体一,该用户行业类别的具体所属作为实体二,新建立的实体一和实体二之间的连接关系即为“行业类别”。依次类推,提取出各用电用户的三元组关系。具体抽取结果如附图1所示。
[0133]
抽取完成后,本发明依据主要实体关系类型针对性地采用邻接矩阵与二维浮点数值矩阵存储,对地区-行业-用户构建索引矩阵与邻接矩阵进行存储,对用户-时间-数据关系用二维浮点数值矩阵存储。具体公式如前所述,以附图 1中截取的部分数据为例,建立索引矩阵如附图3,建立邻接矩阵如附图4,建立二维用户时间电量数据库如附图5。
[0134]
其次,基于自建电量图数据库,依据前述原理进行智慧搜索功能的实现。选定广域搜索功能,确定搜索目标为服务区a,金融业,20190301至20190304 日的各用户各日的用电量,得到如表所示结果。
[0135]
表中广域搜索结果展示
[0136][0137][0138]
其中纵列为用户编号,横列为用电量数据。自建电量图数据库上进行此次广域搜索耗时为1.009ms,而基于开源neo4j构建的图谱则耗时32s。在达到同样搜索结果的前提
下,自建电量图数据库和开源neo4j图谱在搜索时间呈现出了千倍级别的差距,自建电量图数据库具备显著的搜索时间优势。
[0139]
本发明还对其他搜索功能进行了比较,具体算例和结果展示如下:
[0140]
(1)精确搜索:搜索22****45号用户,20190301至20190331日的用电量;
[0141]
(2)广域搜索:搜索服务区a,橡胶和塑料制品业,20190301至20190331 日各用户各日用电量
[0142]
(3)广域统计:统计服务区a,橡胶和塑料制品业,20190301至20190331 日的各用户各日用电量以及总用电量
[0143]
(4)次级统计:统计服务区a,橡胶和塑料制品业,20190301至20190331 日的次级行业用电量
[0144]
(5)上级统计:统计服务区a,橡胶和塑料制品业,20190301至20190331 日的上级地区用电量
[0145]
将这几个功能和neo4j的效率进行比较并且和网上电网功能有无进行比较,结果展示如下表。
[0146]
表算例对比结果展示
[0147][0148][0149]
由表可以看出,自建电量图数据库的时效性非常高,其搜索耗时明显优于开源neo4j数据库,同时自建电量图数据库与传统的网上电网相比,具备更加丰富全面的功能,能够为后续业务及管理提供强有力的技术基础。
[0150]
对于本领域技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型。因此,从任意一处来说,都应将实施例看作是指导性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所有的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
1.一种基于图论的电量图数据库构建及搜索方法,其特征在于,包括如下步骤:步骤1:通过分析电网电量数据组成与结构特征,对数据进行预处理,计算得出包括描述用户、行业类型、地区关系的布尔类型邻接矩阵,存储用户不同时间用电量数据的二维浮点数值矩阵,构建电量图数据库,步骤2:在电量图数据库的基础上,通过邻接矩阵计算描述用户、行业、地区间接关系的可达矩阵,在邻接矩阵与可达矩阵的基础上进行检索,获取检索结果。2.根据权利要求1所述的一种基于图论的电量图数据库构建及搜索方法,其特征在于,所述步骤1中,数据通过电网系统导出,数据包括用户用电数据,任一所述用户用电数据包括用户编号、行业、用电量、管理地区、时间单元。3.根据权利要求2所述的一种基于图论的电量图数据库构建及搜索方法,其特征在于,所述步骤1中,将用户用电数据提取为“实体-关系-实体”的三元组格式,以三元组格式作为数据的基本形式进行处理,将实体视作图谱的点,关系视作图谱的边,构建出相应的电量统计知识图谱。4.根据权利要求3所述的一种基于图论的电量图数据库构建及搜索方法,其特征在于,将用户用电数据进行“实体-关系-实体”的三元组格式提取后,基于实际数据特点进行分类存储,每类数据采用单一的存储方式存储,数据类别及相应存储方式包括以下三类:布尔型的邻接矩阵,索引矩阵以及二维浮点数值矩阵。其中,地区、行业、用户间关系采用邻接矩阵存储,用户在不同时间下的用电数据采用二维浮点数值矩阵存储,二维浮点数值矩阵中的编号与实体名称对应关系采用索引矩阵存储。5.根据权利要求4所述的一种基于图论的电量图数据库构建及搜索方法,其特征在于,建立地区-行业-用户图谱,通过下述公式建立索引矩阵:i
user
={(nameuser
k
,indexuser
k
)|indexuser
k
=k+n
area
+n
indus
,k=1,2,3,
…
,n
user
}其中,iarea,iindus,iuser分别为地区,行业,用户的索引,nameareak,nameindusk,nameuserk,分别对应地区,行业,用户的名称,indexareak,indexindusk,indexuserk分别对应索引编号;假设地区-行业-用户图谱节点数为n,则有:n=n
area
+n
indus
+n
user
其中narea,nindus,nuser分别为地区,行业,用户的数量,此时节点邻接矩阵a的阶数为n
×
n,a中对角元素为0,而非对角元素定义为节点i与j之间通过支路建立的连接关系,则a中元素aij可表示为:对于用户-时间-数据的关系,首先通过下述公式建立针对时间的单独索引idata:i
data
={(namedata
k
,indexdata
k
)|indexdata
k
=k,k=1,2,3,
…
,n
data
}其中,idata是针对时间的单独索引,namedatak是八位时间编码,indexdatak是时间对应的索引编号;在时间索引的基础上,用二维浮点数值矩阵存储了用户-时间-数据关系,设其矩阵形
式为b:b={b
ij
=electricity
i,j
|i=indexuser
k
,j=indexdata
l
,k=1,2,
…
,n
user
,l=1,2,
…
,n
data
}其中electricityij为对应用户在相应日期的用电量,i为用户对应索引编号,j为相应日期的对应索引编号。6.根据权利要求1所述的一种基于图论的电量图数据库构建及搜索方法,其特征在于,构建精确搜索、广域搜索、广域统计和上级与次级四种搜索模型,1)精确搜索:根据用户编号以及日期,通过下述公式得到索引列表中用户及时间对应的索引编号,indexuser
i
=i
user
(nameuser
i
)indexdatas=i
user
(namedatas)其中,indexuseri,indexdatas分别为通过检索得到的用户、时间序列索引编号,得到用户和时间的索引号后,通过下述公式在用户-时间-电量的二维浮点数值矩阵中索引得到具体的用电量数据:electricitys={b(indexuser
i
,indexdata
j
)|indexdata
j
∈indexdatas}其中electricitys为得到的用电数据,也就是希望得到的搜索目标;2)广域搜索:对于一个有向图,可达矩阵r的元素采用下述公式计算,得到可达矩阵r:(a+i)
(k-1)
≠(a+i)
k
=(a+i)
(k+1)
=r具体在进行广域搜索时,首先通过下述公式分别索引得到地区和行业的编号:indexarea
k
=i
area
(namearea
k
)indexindus
k
=i
indus
(nameindus
k
)其次,通过公式找到可达矩阵中的特定非零元,从而得到地区和行业下的用户索引:indususers=(r[indexindus
k
,indexuser:]≠0)indexusers=areausers∩indususers其中,areausers为特定地区下属用户索引编号,indususers为特定行业下属用户索引编号,最后通过对特定行业及地区下属用户取交集,得到了广域搜索的用户编号indexusers,再通过公式在用户-时间-电量的二维浮点数值矩阵中读取到特定的行列数据:其中eletricitys为读取的电量数据,即为广域搜索的目标;indexdatas为时间索引序列;3)上级与次级统计:首先通过索引矩阵得到地区和行业的索引编号,后通过公式进行检索统计:subarea=(a[indexarea
k
,0~n
area
]≠0)其中subarea为检索得到的下级地区,检索得到地区后,针对每个地区进行广域搜索和
累计统计,从而得到下级统计的结果,上级统计则同样以地区为例,首先通过索引矩阵得到地区和行业的索引编号,再通过公式进行检索统计:uparea=(a[0~n
area
,indexarea
k
]≠0)其中,uparea为检索得到的上级地区,检索到上级地区后进行广域搜索并统计,最终得到上级统计结果;4)广域统计:广域统计是建立在广域搜索和上下级搜索的基础上进行的简单统计,将前述得到的电量数据通过公式计算,得到统计结果:其中sumeletricity为统计结果,neletricity为电量数据的数量,eletricityi表示广域搜索电量数据中的第i个值。
技术总结
本发明公开一种基于图论的电量图数据库构建及搜索方法,涉及电力系统技术领域,该方法首先提出一种基于图论的电量数据的图数据库构建方法,将数据提取为“实体—关系—实体”的三元组形式,并由索引矩阵、邻接矩阵以及用户-时间-电量的二维浮点数值矩阵进行存储。其次,构建基于自建数据库的智慧搜索方法;使用邻接矩阵性质以及可达矩阵原理对数据实现包括精确搜索、广域搜索、广域统计、上级与次级统计在内的多种功能智慧搜索。最后通过实施例验证运用所述方法能够有效管理大体量电量数据,实现比传统网上电网更丰富的搜索功能,并在大幅缩减了搜索时间,在搜索的时间效率上明显优于开源数据库Neo4j,具有良好的实际应用和推广价值。广价值。广价值。
技术研发人员:叶宇剑 汤奕 胡健雄 吴忠 陈沛凌
受保护的技术使用者:东南大学
技术研发日:2021.12.11
技术公布日:2022/3/8