基于神经网络的云南中烟前置库短期负荷预测
2015-06-11曾建新等
曾建新等
[摘要]用人工遗传算法来优化BP神经网络的初始权值,从全局空间出发搜索问题的最优解,对烟草工业企业多点生产、多点运输的调度平台进行短期压力负荷预测,达到成品卷烟产运网络优化的目标,更精确的实现产量与运输量的预测。最后以云南中烟省外三个前置库作为预测模型的测算实例,测算三库在一段时期内的负荷压力,并根据负荷压力就其设立合理性进行分析。
[关键词]神经网络;卷烟运输;短期预测
[DOI]1013939/jcnkizgsc201529087
1成品烟产运系统的短期负荷预测
各烟草工业企业纷纷以物流为导向建立起协调生产、仓储、配送各环节一体的综合管控平台,以一定周期成品烟流动量和波次,制定产量与储量。随着卷烟物流的不断发展,对成品烟产量与成品烟配送的要求也日趋精益化,控制周期愈发缩短,如何在短时间内提供有效的预测,制订更贴切实际需求的产运计划,本文利用BP神经网络模型提供一种短期负荷预测方法,确保综合管控平台的合理运营。
1.1产运平台短期负荷预测实施含义
产运系统负荷预测是烟草工业企业产运领域的系统调度、实时控制、运行计划和发展规划的前提,是烟草工业企业物流调度部门、生产部门与规划部门所必须具有的基本信息。准确的负荷预测有助于提高烟草产运系统的安全性和稳定性,能够减少仓储成本。
短期负荷预测通常是指24小时的日负荷预测和168小时的周负荷预测,本文主要预测的是日平均负荷。对于短期负荷预测,有两个基本要求:第一,精确。例如,准确度要求预测某地区各品规配送相对误差不超过3%;第二,短期负荷预测的目的是即时预测,而不是像中期负荷预测那样,预测负荷的发展趋势。负荷是即时变化的,因此,要求用以进行短期负荷预测的模型能够随时适应负荷的变化,所以理想的情况应是进行在线预测。所以时间要越短越好。
短期负荷预测一般是要考虑品规种类与品规数量因素影响的,实际上烟草品规因素和负荷的关系,是复杂的非线性关系,精确的考虑是非常困难的。为了解决这个问题可以将人工神经网络引入烟草产运系统的负荷预测领域。人工神经网络,通过多个神经元的相互连接,使其输入和输出构成一个复杂的非线性处理系统,用于日负荷预测,同样利用其可以记忆复杂的非线性输入输出映射关系的特性,而这种特性正是一些传统的负荷预测方法难以实现的。
1.2BP神经网络算法在产运平台短期负荷预测应用分析
神经网络在目前已有几十种不同的模型。在人们提出的几十种神经网络模型中,人们较多用的是Hopfield网络、BP网络、Kohonen网络和ART(自适应共振理论)网络。其中BP网络是反向传播(Back Propagation)网络。它是一种多层前向网络,采用最小均方差方式。这是一种最广泛应用的网络。
BP算法是用于前馈多层网络的学习算法,前馈多层网络含有输入层、输出层以及处于输入输出层之间的中间层。中间层有单层或多层,由于它们和外界没有直接的联系,故也称为隐层。在隐层中的神经元也称隐层单元。隐层虽然和外界不连接但是,它们的状态则影响输入输出之间的关系。这也是说,改变隐层的权系数,可以改变整个多层神经网络的性能。
BP网络也存在着问题。第一,BP算法的学习速度很慢。其原因主要有三点:一是由于BP算法本质上为梯度下降法,而它所要优化的目标函数又非常复杂,因此,必然会出现“锯齿形现象”,这使得BP算法低效;二是存在麻痹现象,由于优化的目标函数很复杂,它必然会在神经元输出接近0或1的情况下,出现一些平坦区,在这些区域内,权值误差改变很小,使训练过程几乎停顿;三是为了使网络执行BP算法,不能用传统的一维搜索法求每次迭代的步长,而必须把步长的更新规则预先赋予网络,这种方法将引起算法低效。第二,网络训练失败的可能性较大。其原因有四点:一是从数学角度看,BP算法为一种局部搜索的优化方法,但它要解决的问题为求解复杂非线性函数的全局极值,因此,算法很有可能陷入局部极值,使训练失败;二是网络的逼近、推广能力同学习样本的典型性密切相关,而从问题中选取典型样本实例组成训练集是一个很困难的问题。三是难以解决应用问题的实例规模和网络规模间的矛盾。这涉及网络容量的可能性与可行性的关系问题,即学习复杂性问题;四是网络结构的选择尚无一种统一而完整的理论指导,一般只能由经验选定。为此,有人称神经网络的结构选择为一种艺术。而网络的结构直接影响网络的逼近能力及推广性质。
2BP神经网络综合改进
确定连接权修正值的计算过程,实际上是优化计算的梯度下降法。当能量公式对应的误差曲面为窄长型时,这种算法在谷的两壁跳来跳去,影响了网络的收敛速度,对算法最普通的改进方法是增加附加动量项。利用附加动量项可以起到平滑梯度方向的劇烈变化,增加算法的稳定性。在具体计算中,学习率η越大,学习速度会越快,但过大时会引起震荡效应;而动量因子α取得过大可能导致发散,过小则收敛速度过慢。
并为了解决BP易于陷于极小值现象,用人工遗传算法来优化BP网络的初始权值。遗传算法是根据生物进化思想而启发得出的一种全局优化算法,在本质上是一种不依赖具体问题的直接搜索方法,它仅需给出目标函数的描述,从一组随机产生的称为“种群(population)”的初始解开始,从全局空间出发搜索问题的最优解。由于遗传算法善于全局搜索,且能以较大的概率找到全局最优解,故用它来完成前期搜索能较好的克服BP算法的局部极小的缺陷。将GA和BP结合起来,形成GA—BP混合训练算法,以GA优化BP网络的初始权值和阈值,再由BP算法按负梯度方向修正网络权值及阈值,进行网络训练。这种方法避免了BP网络易陷入局部极小问题,达到优化网络目的,更精确的实现产量与运输量的预测。
3云南中烟省外前置库短期负荷预测优化仿真
云南中烟物流综合管控平台是云南中烟物流管理部提出了建立资源整合、集中调度、协同运作的物流保障体系的工作思路的体现。搭建云南中烟统一的物流综合管控平台框架,以成品物流为重点,同时考虑原料、半成品、烟用物资的物流管理需求,建立以基础层、调度作业层、监控管理层为三层架构的综合管控平台,实现云南中烟与红塔集团、红云红河集团统一使用的信息系统。
为了协同成品物流运作,快速响应市场要求与行业和公司系统无缝集成,建立支持新的行业供货模式、企业职责转变、客户订单集成、工商协同的新型物流保障体系,快速响应市场要求。建立以订单计划为核心的物流模式,此模式可根据需要生成订单的运输计划和仓储作业计划等,在横向实现储运协同作业,在纵向实现统一调度和联合仓储。通过整合资源,集中运输调度业务,平台集成所有相关物流资源,实现各物流业务操作,满足云南中烟,红塔集团与红云红河集团现行管理模式和流程的统一运输调度,并支持模式统一时灵活配置,满足快速实现业务调整。
实现提供智能化,作业参考,逐步实现成品调度自动根据业务逻辑规则和分配计算原则,建立规则优化引擎,逐步实现计划排程和费用核算的自动化和智能化操作。
3.1问题描述
根据云南中烟2014年数据计算负荷情况,在原始数据共测量了105天,每天测量40点负荷品规数据。依据负荷的历史统计数据,基于BP神经网络算法来对2015年4月16日的负荷进行预测。
在对短期负荷进行预报前,一个特别重要的问题是如何划分负荷类型或日期类型。纵观已经发表的文献资料,大体有两种划分模式。一是将40余种品规按照运输地点分为省外三个前置库(沈阳、晋中、南昌);二是将40余种品规按照生产地方式划分;共有7种类型。
本文采用第1种负荷划分模式,将40余种品规按照运输地点分为省外三个前置库。根据分类后的负荷情况,用历史数据分别对所建BP神经网络模型进行省外三个前置库的训练,训练完成后用以预测以后的工作日和休息日的负荷情况,并将预测结果与实际结果进行对比分析。此外考虑到这105天历史数据前面部分是春节期间测到的数据,而我们预测的日期远离春节,为了减小节假日对负荷预测的影响,在选取训练样本时只取后面若干天的负荷作为样本。
3.2输入/输出向量设计
由于负荷值曲线相邻的点之间不会发生突变,因此后一时刻的值必然和前一时刻的值有关,除非出现重大事故等特殊情况。所以这里将预测日的前一天的实时负荷数据作为网络的样本数据。由于每天测量了40品规,所以输入变量就是一个40维的向量。显而易见,目标向量就是预测日当天的40个负荷值,这样一来,输出变量也是一个40维的向量。
在用样本对BP网络进行训练之前,需要对输入样本数据进行归一化处理,将数据处理为区间[0,1]之间的数据。之所以输入数据需要归一化,一是考虑到量纲问题,我们需要平等看待输入向量的每一个元素;此外数据归一化之后可以有效降低计算复杂度,加快算法的收敛。
归一化方法有许多种形式,这里采用如下公式:
x[DD(]∧[DD)]=[SX(]x-xmin[]xmax-xmin[SX)]
在样本中,输入向量为预测日前天的发出品规实际负荷数据,目标向量是预测日当天的发出品规负荷。由于这都是实际的测量值,因此,这些数据可以对网络进行有效的训练。如果从提高网络精度的角度出发,一方面可以增加网络训练样本的数目,另一方面还可以增加输入向量的维数。即,或者增加每日的测量点,或者把预测日前几天的负荷数据作为输入向量。目前,训练样本数目的确定没有通用的方法,一般认为样本过少可能使得网络的表达不够充分,从而导致网络外推能力不够;而样本过多可能会出现样本冗长现象,既增加了网络的训练负担,也可能出现信息量过剩使得网络出现过拟合现象。
3.3BP网络的优化设计
本文采用BP优化网络对负荷值进行预报。如图1所示,为预测负荷的BP优化网络。
根据BP网络来设计优化网络,一般的预测问题都可以通过单隐层的BP网络实现。由于输入向量有40个元素,所以网络输入层的神经元有40个,经过多次训练网络中间层的神经元可以取13个。而输出向量有40个,所以输出层中的神经元应该有40个。网络隐含层的神经元激励函数采用S型正切函数tansig,输出层神经元激励函数采用S型对数函数logsig。这是因为函数的输出位于区间[0,1]中,正好满足网络输出的要求。
3.4网络训练参数
网络经过训练后才可以用于产运网络负荷预测的实际应用。考虑到网络的结构比较复杂,神经元个数比较多,需要适当增大训练次数和学习速率。训练参数的设定如下表所示。
训练参数表
最大训练次数[]训练误差目标[]学习速率[]省外三个前置库样本数[]省外其他
1000[]001[]01[]最近30个[]最近8个
3.5仿真结果
按照表1设定的参数得到省外三个前置库、的训练收敛曲线分别如图2、图3所示。可见经过数次训练后,网络目标误差就能达到要求,其中省外三个前置库训练到目标误差需要16次训练,省外其他的9次训练。
利用训练好后的BP网络进行预测,得到工作日和休息日的预测误差曲线、预测日实际负荷曲线与预测负荷曲线分别如图4、图5所示。且工作日与休息日的平均绝对百分误差结果为:err=2.6025(省外三个前置库);err1=52174(省外)。由此可见,采用BP神经网络进行预测效果良好。对比图4、图5发现对休息日的预测波动较大,这可能跟训练样本数目不同有关系。仿真中用于训练工作日神经网络的样本数为30个,而用于训练休息日的样本仅仅为8个。为了验证网络设计中一些参数对结果的影响,改变中间层神经元的个数进行对比。
在建立神经网络时,中间层神经元的个数的确定没有特别的说明,数量越多可能会给预测精度带来好处,但会增加计算的复杂度,降低系统的稳定性甚至使得算法发散。经验上讲如果神经网络输入向量的维数是M,输出向量的维数是N个,那么中间层神经元的个数为sqrt(M+N)+L(L为6到10的常数)。为了研究中间层神经元个数对仿真结果的影响,减少中間层神经元个数到25个。仿真收敛曲线如图6、图7所示,误差及预测曲线如图8、图9所示。工作日与休息日的平均绝对百分误差结果为:err=2.5(省外三个前置库);err1=2.97(省外其他)。对比之前可以看出,适当调节中间层神经元个数可以加快算法收敛的速度,改善预测准确度。
3.6结果分析
通过综合使用神经网络的仿真结果显示,省外三个前置库(沈阳、晋中、南昌)在物流网络下其收敛性、预报误差及预测曲线均高于其他同类库房,显示出较好的抗压和负荷周转能力。
4结语
关于成品烟品规的负荷预测是产运平台重要工作,国内外关于短期负荷预测的文献很多,但是由于品规受订量等诸多因素的影响和产量本身的不确定性,使得迄今还没有一种十分满意的方法。由仿真结果知,本文介绍的基于BP优化神经网络的预测方法,再经过一定次数的训练便能取得较好的负荷预测效果。
参考文献:
[1]Senjyu TH,Takara K,Funabashi TOne-hour-ahead Load Forecasting Using Neural Network[J].IEEE Trans Power System,2002,17(1)
[2]Hippert HS,Pedreira CE,Souza RCNeural Networks for Short-term Load Forecasting:A Review and Evaluation[J].IEEE Trans Power System,2001,16(1):45–55
[3]飞思科技产品研发中心编神经网络理论与MATLAB7实现[M].北京:电子工业出版社,2005