基于多Agent分布式海量数据处理的工业电力负荷预测方法转让专利

申请号 : CN202010432239.1

文献号 : CN111652413B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王栋胡楠姜吉祥白阳毛艳芳陈益哲于雅薇蒋思珺

申请人 : 国网江苏省电力有限公司南通供电分公司

摘要 :

本发明公开了基于多Agent分布式海量数据处理的工业电力负荷预测方法,包含海量高维数据预处理、多Agent分布式处理器、基因表达式编程算法模型训练及预测。海量高维数据预处理通过缺失数据补充或删除,并对特征影响因素进行权重计算,得到加权工业电力负荷矩阵;多Agent分布式处理器将经过预处理后的数据分组,将各组数据放置在不同的Agent中分别输入到基因表达式编程算法模型中进行训练,并输入待预测日的特征向量,计算输出各组预测负荷值;基因表达式编程算法模型训练及预测将分组后的历史数据作为训练集对该模型进行训练,训练完成后将待预测日输入模型,得到预测值并输出。本发明降低了海量高维数据处理的难度,提高了预测的速度和准确度。

权利要求 :

1.基于多Agent分布式海量数据处理的工业电力负荷预测方法,其特征在于,所述工业电力负荷预测方法包含以下步骤:步骤一:导入某地区工业电力负荷的所有历史数据,并对数据进行预处理;其中:对于缺失较少的某特征数据采用均值填充的方法,而对于缺失量较大的特征则直接删除该特征,进入步骤二;

步骤二:生成工业电力负荷数据矩阵,将步骤一得到的数据表示为一个M×N阶的矩阵H,其中M表示历史数据总数,N表示特征因素个数,进入步骤三;

步骤三:根据熵值法,计算所有特征因素的权重值,得到权向量F=[F1 F2…Fn],其中Fn表示为第n个特征因素的权重值,进入步骤四;

步骤四:用步骤三得到的权向量对工业电力负荷矩阵H进行加权计算,得到加权工业电力负荷矩阵H',其中H'=F×H,进入步骤五;

步骤五:将加权后得到的矩阵按行进行平均分组,假设分为m组,则每组历史负荷数据有 个,实现海量数据划分,进入步骤六;

步骤六:将Agent部署在各个服务器端,将每组数据作为每个Agent的输入,作为基因表达式编程算法的初始种群,设定控制参数和终结符,进入步骤七;

步骤七:将初始输入数据存入预处理,建立初始种群数据集G;每次读取一个个体对象,根据染色体编码规则,将个体编码成染色体,并输出该染色体,生成新的种群数据集G,进入步骤八;

步骤八:将编码后的个体计算其适应度,每次处理一个染色体对象,根据具体的适应度函数,计算每个个体的适应度值,将个体和其适应度值组成新的个体,即<个体,适应度值>,并输出该对象,生成新的G,进入步骤九;

步骤九:判断迭代是否达到设定最大进化数或计算精度,若满足,进入步骤十五,否则进入步骤十;

步骤十:个体通过赌盘轮采样策略根据其适应度进行选择,每个个体用圆形赌盘的一块来代表其适应度的比例,赌盘按照群体中个体数的值进行相应次数的旋转,从而保持群体大小不变;使用最佳个体复制策略,输出进入下一代的个体种群数据集G,进入步骤十一;

步骤十一:按照变异概率Pm选择出需要进行变异操作的个体,然后对其染色体上的任意位置点进行基因突变;输出变异操作后的染色体对象到种群G,对于未变异的个体则直接输出到G,进入步骤十二;

步骤十二:转座子随机选取染色体、转座元素目标位置以及转座体长度对个体染色体进行基因顺序的改变,将进行转座插串操作后的个体作为新的种群G输出,进入步骤十三;

步骤十三:按照基因重组的概率P随机选中两个父代染色体配对,根据基因重组规则将该染色体上的某段基因相互交换成分,再输出染色体对象;最后,生成操作后的新种群G,进入步骤十四;

步骤十四:将得到的最新种群数据,计算个体适应度值,进入步骤九;

步骤十五:进化结束并输出最优个体,完成多Agent的分布式基因表达式编程算法的模型训练,进入步骤十六;

步骤十六:将待预测日的特征向量作为每个Agent的输入,通过训练好的模型进行预测,输出各个代理的预测值,并将所有预测值进行融合处理,输出最终预测的工业负荷,结束。

说明书 :

基于多Agent分布式海量数据处理的工业电力负荷预测方法

技术领域

[0001] 本发明是一种基于多Agent的分布式海量数据处理和基因表达式编程的工业电力负荷预测方法,主要用于分布式分析处理工业电力领域的大规模海量负荷数据,属于电力系统负荷技术领域。

背景技术

[0002] 近年来,随着智能电网技术的快速发展以及时代的迅速变化,促进了各种新能源开发利用,电力能源结构也不断发展更新。电力负荷工作不仅关系着电力计划整体质量,还会对电网的发展运行带来直接影响,尤其在现如今的社会中,社会对电力的依赖程度不断加强,因此电网的负荷预测研究的价值和重要性显而易见。负荷预测是电力系统调度、实时控制、运行计划和发展规划的前提,是一个电网调度部门和规划部门所必须具有的基本能力。提高负荷预测技术水平,有利于计划用电管理,有利于合理安排电网运行方式和机组检修划,有利于节煤、节油和降低发电成本,有利于制定合理的电源建设规划,有利于提高电力系统的经济效益和社会效益。
[0003] 随着国家工业的不断发展壮大,对工业电力负荷预测也越来越重视。在当前电力体制改革的背景下,工业电力负荷受到高度重视。由于工业用电需求量的持续增长,对其负荷的分析研究势在必行。
[0004] 相比于传统的居民用电负荷预测工作,工业负荷的预测工作在研究和执行上有更大的难度和挑战性。工业用户与商业、居民用户相比,存在负荷容量极大、自动化水平高、研究对象多样化、波动因素多等许多影响特征,并且工业用电与气候情况也有很大关联,然而由于气象预测的不确定性也增大了工业负荷预测的难度。除此之外,工业用电还与国家电网与能源局的电力体制政策息息相关,随着国家地位和经济的发展壮大,对电力交易市场的政策命令也随之越来越充分和全面。种种因素导致工业用电负荷的数据量激增,影响因素的特征向量数据维度也大大增加,导致了其负荷预测工作开展的难度。
[0005] 现有的负荷预测方法多种多样,包括传统方法是以时间序列预测原理为基础建立的预测方法以及随着人工智能的兴起,出现了另一类以机器学习为理论基础的电力负荷预测算法。其中的人工神经网络和支持向量机等方法深受好评。但是这些方法对于工业海量及高维度数据的处理尚有精度不高、模型收敛慢等不足。
[0006] 根据基因表达式编程算法模型和多Agent分布式处理分析海量高维度数据,将历史电力负荷数据作为训练样本数据,通过多个代理进行模型的训练。并且以正确良好的数据预处理和特征工程为前提。
[0007] 基于多Agent的分布式海量数据处理和基因表达式编程的工业电力负荷预测方法主要需考虑两个方面的问题:(1)如何利用基因表达式编程算法训练样本数据并输出预测值。(2)如何将海量高维数据通过多Agent进行分布式计算。

发明内容

[0008] 本发明的目的就是提供一种基于多Agent的分布式海量数据处理和基因表达式编程的工业电力负荷预测方法来针对性进行工业电力负荷预测问题,本方法是一种策略性方法,通过对历史所有样本进行数据预处理、特征权重计算、通过多Agent进行海量数据的分布式计算以及通过历史数据训练基因表达式编程算法模型从而得到待预测的电力负荷特性,通过使用本方法可以迅速准确的得到待预测日的负荷需求和负荷特性,保证工业电力系统运行和管理的高效和稳定。
[0009] 本发明具体为基于多Agent分布式海量数据处理的工业电力负荷预测方法,所述工业电力负荷预测方法包含以下步骤:
[0010] 步骤一:导入某地区工业电力负荷的所有历史数据,并对数据进行预处理;其中:对于缺失较少的某特征数据可以采用均值填充的方法,而对于缺失量较大的特征则直接删除该特征,进入步骤二;
[0011] 步骤二:生成工业电力负荷数据矩阵,将步骤一得到的数据表示为一个M×N阶的矩阵H,其中M表示历史数据总数,N表示特征因素个数,进入步骤三;
[0012] 步骤三:根据熵值法,计算所有特征因素的权重值,得到权向量F=[F1 F2 … Fn],其中Fn表示为第n个特征因素的权重值,进入步骤四;
[0013] 步骤四:用步骤三得到的权向量对工业电力负荷矩阵H进行加权计算,得到加权工业电力负荷矩阵H',其中H'=F×H,进入步骤五;
[0014] 步骤五:将加权后得到的矩阵按行进行平均分组,假设分为m组,则每组历史负荷数据有 个,实现海量数据划分,进入步骤六;
[0015] 步骤六:将Agent部署在各个服务器端,将每组数据作为每个Agent的输入,作为基因表达式编程算法的初始种群,设定控制参数和终结符,进入步骤七;
[0016] 步骤七:将初始输入数据存入预处理,建立初始种群数据集G;每次读取一个个体对象,根据染色体编码规则,将个体编编码成染色体,并输出该染色体对象,生成新的种群数据集G,进入步骤八;
[0017] 步骤八:将编码后的个体计算其适应度,每次处理一个染色体对象,根据具体的适应度函数,计算每个个体的适应度值,将个体和其适应度值组成新的个体,即<个体,适应度值>,并输出该对象,生成新的G,进入步骤九;
[0018] 步骤九:判断迭代是否达到设定最大进化数或计算精度,若满足,进入步骤十五,否则进入步骤十;
[0019] 步骤十:个体通过赌盘轮采样策略根据其适应度进行选择,每个个体用圆形赌盘的一块来代表其适应度的比例,赌盘按照群体中个体数的值进行相应次数的旋转,从而保持群体大小不变;使用最佳个体复制策略,输出进入下一代的个体种群数据集G,进入步骤十一;
[0020] 步骤十一:按照变异概率Pm选择出需要进行变异操作的个体,然后对其染色体上的任意位置点进行基因突变,输出变异操作后的染色体对象到种群G,对于未变异的个体则直接输出到G,进入步骤十二;
[0021] 步骤十二:转座子随机选取染色体、转座元素目标位置以及转座体长度对个体染色体进行基因顺序的改变,将进行转座插串操作后的个体作为新的种群G输出,进入步骤十三;
[0022] 步骤十三:按照基因重组的概率P随机选中两个父代染色体配对,根据基因重组规则将该染色体上的某段基因相互交换成分,再输出染色体对象,最后,生成操作后的新种群G,进入步骤十四;
[0023] 步骤十四:将得到的最新种群数据,计算个体适应度值,进入步骤九;
[0024] 步骤十五:进化结束并输出最优个体,完成多Agent的分布式基因表达式编程算法的模型训练,进入步骤十六;
[0025] 步骤十六:将待预测日的特征向量作为每个Agent的输入,通过训练好的模型进行预测,输出各个代理的预测值,并将所有预测值进行融合处理,输出最终预测的工业负荷,结束。
[0026] 本发明的有益效果为:一种基于多Agent的分布式海量数据处理和基因表达式编程的工业电力负荷预测方法,主要用于预测工业领域的用电负荷预测,通过本发明中的方法,可以较为准确的得到未来某日待预测的用电负荷特性,有利于计划用电管理、制定合理的电源建设规划,有利于提高电力系统的经济效益和社会效益。

附图说明

[0027] 图1是本发明的系统结构图;
[0028] 图2是本发明基于多Agent分布式海量数据处理的工业电力负荷预测方法的流程示意图。

具体实施方式

[0029] 下面结合附图对本发明基于多Agent分布式海量数据处理的工业电力负荷预测方法的具体实施方式做详细阐述。
[0030] 为了方便描述,我们假设有如下应用实例:
[0031] 随着电力市场化的改革与发展,电力系统中的负荷信息也具有维度多、数据量极大、数据种类复杂。在此之中尤其是工业电力负荷的数据量之大超乎想象,其影响因素特征维度与用户和企业负荷预测相比更是复杂,不确定性极强。历史负荷数据中负载的信息对用户、企业和社会经济均有巨大的价值,涉及电力系统规划和设计,电力系统运行的经济性、可靠性和安全性、电力市场交易等多个方面。那么如何在已有的大量历史数据的基础上,建立模型,对电力负荷进行预测分析成为一个重要的研究方向。
[0032] 假如有工业地区的一段时间的准确历史负荷数据,并且将要对某一天的负荷特性进行判断。那么首先要通过数据预处理和特征因素权重计算,并对历史数据进行加权分组,输入到各个分布的Agent中,通过基因表达式编程算法进行模型训练,最终将待预测日输入到各个代理中进行待预测日的电力负荷预测。并将各个Agent输出的预测值取平均数作为最终预测值。
[0033] 一、体系结构
[0034] 图1给出了一种基于多Agent的分布式海量数据处理和基因表达式编程的工业电力负荷预测方法的结构图,它主要包括三个部分:海量高维数据预处理、多Agent分布式处理器、基因表达式编程算法模型训练及预测。图中的海量高维数据预处理主要是通过把所有历史数据作为整体,首先缺失数据进行填充或直接删除,并对特征影响因素进行权重计算,得到加权工业电力负荷矩阵;多Agent分布式处理器主要是将预处理后的数据分组,然后将各组数据放置在不同的Agent中分别输入到基因表达式编程算法模型中进行训练,并输入待预测日的特征向量,计算输出各组预测负荷值;基因表达式编程算法模型训练及预测主要是先将分组后的历史数据作为训练集对该模型进行训练,训练完成后将待预测日输入模型,得到预测值并输出。
[0035] 下面给出具体介绍:
[0036] 海量高维数据预处理:海量高维数据预处理主要是通过把所有历史数据作为整体,首先对少量缺失数据等进行填充,对缺失较多的特征数据直接删除并对特征影响因素进行权重计算,得到加权工业电力负荷矩阵。
[0037] 多Agent分布式处理器:多Agent分布式处理器主要是将经过预处理后的数据分组,然后将各组数据放置在不同的Agent中分别输入到基因表达式编程算法模型中进行训练,并输入待预测日的特征向量,计算输出各组预测负荷值。
[0038] 基因表达式编程算法模型训练及预测:基因表达式编程算法模型训练及预测主要是先将分组后的历史数据作为训练集对该模型进行训练,训练完成后将待预测日输入模型,得到预测值并输出。
[0039] 二、方法流程
[0040] 1、海量高维数据预处理
[0041] 在电力系统负荷预测中,为了提高预测精度,对海量高维历史样本数据进行预处理和特征权重计算并对数据进行加权作为预测模型的训练集是前提条件。
[0042] (1)用此方法将该电网历史负荷数据表示为一个M×N阶的矩阵,其中M表示历史数据总数,N表示特征因素个数,那么此M×N的工业电力负荷矩阵表示为:
[0043]
[0044] (2)根据熵值法,计算所有特征因素的权重值,得到权向量F=[F1 F2 … Fn],其中Fn表示为第n个特征因素的权重值。用权向量对工业电力负荷矩阵H进行加权计算,得到加权工业电力负荷矩阵H',其中H'=F×H
[0045]
[0046] 2、多Agent分布式处理器
[0047] 将加权后得到的矩阵按行进行平均分组,假设分为m组,则每组历史负荷数据有个,实现海量数据划分。将Agent部署在各个服务器端,每个Agent内部使用基因表达式编程算法模型,并将每组数据作为每个Agent的输入进行模型训练。
[0048] 训练完成后,输入待预测日的特征向量,计算输出各组预测负荷值Y=(Y1 Y2 … Ym),将所有Agent输出的负荷进行融合处理。在本专利中,采取求平均值作为最终输出,即待预测日负荷输出 可表示为:
[0049]
[0050] 3、基因表达式编程算法模型训练及预测
[0051] 遗传算法模拟了自然选择和遗传过程中发生的繁殖、交叉和变异现象,根据达尔文进化论提出的适者生存、优胜劣汰的自然法则,在遗传算子(选择、交叉、变异)的作用下,使种群逐代优化,产生优秀个体,最终搜索到最优解。基因表达式编程算法是遗传算法的改进,该算法融合了遗传编程和遗传算法的优点,提出了新型的进化算法:基因表达式编程算法
[0052] (1)将划分好的每组数据作为基因表达式编程算法的初始种群,设定控制参数和终结符,建立初始种群数据集G。每次读取一个个体对象,根据染色体编码规则,将个体编编码成染色体,并输出该染色体对象,生成新的种群数据集。在本专利中,每条基因都有头部(H)及尾部(T)两部分组成,头部由符号集随机产生,而尾部由字符集生成。举例来说,初代0号个体可表示为:
[0053] Generation_0:
[0054] NacababAANaccb‑[0]
[0055] 其中,每条染色体由2个基因构成,每个基因的长度为7(h=3,t=4)。
[0056] (2)对编码后的个体计算其适应度。具体地,每次处理一个染色体对象,根据具体的适应度函数,计算每个个体的适应度值,将个体和其适应度值组成新的个体,即<个体,适应度值>,并输出该对象,生成新的G。判断此次适应度值是否达到设定最大进化数或计算精度。个体通过赌盘轮采样策略根据其适应度进行选择。每个个体用圆形赌盘的一块来代表其适应度的比例,赌盘按照群体中个体数的值进行相应次数的旋转,从而保持群体大小不变。使用最佳个体复制策略,输出进入下一代的个体种群数据集G。
[0057] (3)按照变异概率Pm选择出需要进行变异操作的个体,然后对其染色体上的任意位置点进行基因突变,输出变异操作后的染色体对象到种群G,对于未变异的个体则直接输出到G。转座子随机选取染色体、转座元素目标位置以及转座体长度对个体染色体进行基因顺序的改变,将进行转座插串操作后的个体作为新的种群G输出。
[0058] 值得强调的是,IS/RIS/基因转座都只是通过不同的方式将基因移动,并没有产生新的基因。
[0059] (4)按照基因重组的概率P随机选中两个父代染色体配对,根据基因重组规则将该染色体上的某段基因相互交换成分,再输出染色体对象。以单点重组为例:
[0060] 设初始两条父染色体为:
[0061] F1:NObcacacaAcAAcacbc
[0062] F2:AcacccacaAAOAcacbc
[0063] 进行单点重组后为:
[0064] C1:AObcacacaAcAAcacbc
[0065] C2:NcacccacaAAOAcacbc
[0066] 最后,生成操作后的新种群G,将得到的最新种群数据,计算个体适应度值,再重新判断此次适应度值是否达到设定最大进化数或计算精度。若达到则进化结束并输出最优个体,否则保存此代最优个体,迭代进行选择、变异和重组等操作。
[0067] 主要工作流程:
[0068] (1)首先将电网中历史数据进行预处理,缺失较少的某特征数据可以采用均值填充的方法,而对于缺失量较大的特征则直接删除该特征,工业电力负荷数据矩阵。
[0069] (2)计算所有特征因素的权重值,得到权向量,并对工业电力负荷数据矩阵加权。
[0070] (3)将加权后得到的矩阵按行进行平均分组,将Agent部署在各个服务器端,将每组数据作为每个Agent的输入。
[0071] (4)在每个Agent中都选择基因表达式编程算法模型将输入的数据集作为训练集训练。
[0072] (5)将待预测日的特征向量输入到每个Agent中,分别输出负荷预测值,并对所有的预测值进行融合处理,输出最终预测值。
[0073] 如图2所示,本发明整个执行过程主要包含以下步骤:
[0074] 步骤一:导入某地区工业电力负荷的所有历史数据,并对数据进行预处理。其中:对于缺失较少的某特征数据可以采用均值填充的方法,而对于缺失量较大的特征则直接删除该特征,进入步骤二;
[0075] 步骤二:生成工业电力负荷数据矩阵,将步骤一得到的数据表示为一个M×N阶的矩阵H,其中M表示历史数据总数,N表示特征因素个数,进入步骤三;
[0076] 步骤三:根据熵值法,计算所有特征因素的权重值,得到权向量F=[F1 F2 … Fn],其中Fn表示为第n个特征因素的权重值。进入步骤四;
[0077] 步骤四:用步骤三得到的权向量对工业电力负荷矩阵H进行加权计算,得到加权工业电力负荷矩阵H',其中H'=F×H,进入步骤五;
[0078] 步骤五:将加权后得到的矩阵按行进行平均分组,假设分为m组,则每组历史负荷数据有 个,实现海量数据划分,进入步骤六;
[0079] 步骤六:将Agent部署在各个服务器端,将每组数据作为每个Agent的输入,作为基因表达式编程算法的初始种群,设定控制参数和终结符,进入步骤七;
[0080] 步骤七:将初始输入数据存入预处理,建立初始种群数据集G。每次读取一个个体对象,根据染色体编码规则,将个体编编码成染色体,并输出该染色体对象,生成新的种群数据集G。
[0081] 进入步骤八;
[0082] 步骤八:将编码后的个体计算其适应度。具体地,每次处理一个染色体对象,根据具体的适应度函数,计算每个个体的适应度值,将个体和其适应度值组成新的个体,即<个体,适应度值>,并输出该对象,生成新的G。进入步骤九;
[0083] 步骤九:判断迭代是否达到设定最大进化数或计算精度,若满足,进入步骤十五,否则进入步骤十;
[0084] 步骤十:个体通过赌盘轮采样策略根据其适应度进行选择。每个个体用圆形赌盘的一块来代表其适应度的比例,赌盘按照群体中个体数的值进行相应次数的旋转,从而保持群体大小不变。使用最佳个体复制策略,输出进入下一代的个体种群数据集G,进入步骤十一;
[0085] 步骤十一:按照变异概率Pm选择出需要进行变异操作的个体,然后对其染色体上的任意位置点进行基因突变,输出变异操作后的染色体对象到种群G,对于未变异的个体则直接输出到G,进入步骤十二;
[0086] 步骤十二:转座子随机选取染色体、转座元素目标位置以及转座体长度对个体染色体进行基因顺序的改变,将进行转座插串操作后的个体作为新的种群G输出,进入步骤十三;
[0087] 步骤十三:按照基因重组的概率P随机选中两个父代染色体配对,根据基因重组规则将该染色体上的某段基因相互交换成分,再输出染色体对象。最后,生成操作后的新种群G,进入步骤十四;
[0088] 步骤十四:将得到的最新种群数据,计算个体适应度值,进入步骤九;
[0089] 步骤十五:进化结束并输出最优个体,完成多Agent的分布式基因表达式编程算法的模型训练,进入步骤十六;
[0090] 步骤十六:将待预测日的特征向量作为每个Agent的输入,通过训练好的模型进行预测,输出各个代理的预测值,并将所有预测值进行融合处理,输出最终预测的工业负荷,结束。
[0091] 最后应该说明的是,结合上述实施例仅说明本发明的技术方案而非对其限制。所属领域的普通技术人员应当理解到,本领域技术人员可以对本发明的具体实施方式进行修改或者等同替换,但这些修改或变更均在申请待批的权利要求保护范围之中。