基于粒子群算法的指数平滑系数优化方法

2014-01-22 12:46高春雷梁罗希范训礼
关键词:平方和极值全局

高春雷,安 泰,向 兵,董 杰,梁罗希,范训礼

(1.国电南瑞科技股份有限公司,江苏南京 001111;2.西北大学信息科学与技术学院,陕西西安 710127)

指数平滑方法是时间序列分析的重要方法,在经济预测、电力计量设备需求预测、能源节约等方面有着广泛的应用。平滑系数是指数平滑算法中的重要参数之一,其取值可在[0,1]范围内确定,它的选择决定预测的准确性。传统方法中平滑系数是由人工指定,其缺点表现在依赖人工经验、不具有动态性。因此很多学者对平滑系数进行了研究,寻求平滑系数的自动优化算法,并取得了显著的成果。常用的平滑系数自动优化算法有:黄金分割法、Fibonacci法、切线法、二分法等[9]。这些自动优化算法可以在短时间内求出平滑系数的较优值,但仅限于平滑系数取值为单极值的情况,当平滑系数取值为多极值时,这些算法不能保证求出的值收敛于最优平滑系数。因此,要对平滑系数进行更加深入的研究,以便找到更好的自动优化算法。

本文采群智能算法之一的粒子群算法来求解指数平滑算法中的平滑系数,充分利用群智能算法全局寻优的特点,求解平滑系数的最优值。实践证明,改进的粒子群算法求出的平滑系数可以使指数平滑算法预测的数据更加的准确,同时可以避免在平滑系数取值为多极值的情况下一维搜索算法不能找到最值的情况。

1 指数平滑算法概述

指数平滑法是对预测对象的全部历史序列数据通过加权平均从而进行预测的一种方法。所有的指数平滑法都是要更新上一时间步长的计算结果,并使用当前时间步长的数据中包含的新信息。新的数据是通过新旧信息的“通信”得到的,新旧信息所占比例是由平滑系数来控制的,可见平滑系数对预测值的影响至关重要。本文采用二次平滑算法对数据进行预测,也就是在一次平滑的基础上进一步平滑,调整预测值。二次指数平滑模型如下:

由最后得到的平滑值S(1)t和S(2)t计算得出。式(2)中的 ^Xt+T表示对第t+T个值进行预测,T=1时就代表对样本序列之后的第一个数据进行预测。

通过上面的模型可以看出,预测值的影响因素有:①平滑系数α的确定。α值的大小,直接反映出了不同时间段数据的变化趋势。②初值S0的确定。根据大量实验证明,在指数平滑预测过程中,如果已知的时间序列值较多,则初始值S0对后期预测结果的影响相对较小,但当时间数列项数较少时,其影响亦不能忽视[2]。

在确定预测模型后,还需要确定预测模型的精度评价指标,在相同精度评价指标下,利用算法对不同取值的平滑系数进行求解,选出评价指标最好值对应的平滑系数作为当前预测序列的最优值。本文采用最小预测误差平方和(SSE)[11]作为评价指标,来求解平滑系数,在并此基础上利用指数平滑算法对下一时间序列的数据进行预测。

2 基于粒子群的求解平滑系数求解算法

2.1 粒子群算法简述

粒子群算法PSO(partical swarm optimization),是近年来发展起来的一种新的进化算法,由Eberhart博士和Kennedy博士于1995年提出,其源于对鸟群捕食的行为研究[12]。所有的粒子都有一个由被优化的函数决定的适应值(fitness value),每个粒子还有一个速度决定他们运行的方向和距离,然后粒子们就不断的向当前的最优粒子在解空间中的位置趋近。在每一次迭代中,粒子通过两个“极值”的位置来更新自己在解空间中的位置,其中一个就是粒子本身所找到的最优解,这个解叫做局部极值pBest,另一个极值是整个种群目前找到的最优解,这个极值是全局极值gBest。再根据下式来更新粒子的速度和位置。

其中:V是粒子的速度;Present是粒子的当前位置;p Best为局部最优值;g Best为全局最优值;rand()是产生(0,1)之间的随机数的函数;c1和c2被称作学习因子,一般的取值为:c1=c2=2;w是加权系数(惯性权重),取值在0.1到0.9之间。粒子通过两个最优值的位置来更新,在更新过程中粒子每一维的最大速率限制为Vmax,如果某一维更新后的速度超过设定的Vmax,那么这一维的速度就被限定为Vmax,最终飞至解空间中最优解所在的位置,搜索过程结束。最后输出全局最优解g Best。

2.2 基于粒子群的求解平滑系数求解算法

粒子群算法对于求解平滑系数可以看作粒子在一维的空间中进行搜索,由于平滑系数的取值在0与1之间,则空间的范围为[0,1],为了更加准确地找到空间中的最优解取粒子的速度范围为[0.05,0.1],根据大量的实验证明,空间中的粒子数取值在10~20间时,粒子可以更好地找出解空间的最优值,因此,对于平滑系数的求解我们也把解空间分为10段,每段随机地取一个值作为初始值,使用二次平滑算法进行预测计算,求出预测值与实际值的误差平方和,把由这些平滑系数计算出的误差平方和最小的那个对应的平滑系数作为本次运算最好值。利用粒子群算法的基本公式不断进行迭代,当迭代次数达到给定值或达到预期给定的精度值时迭代结束,输出最优解。

对于基本的粒子群算法求解平滑系数,在α的解空间为单极值时基本粒子群算法和一维搜索算法都可以很好地找到空间中趋近最优解的值。但是,当α的解空间中存在多极值时基本粒子群算法可以比一维搜索算法以更高的概率找到空间中趋近最优解的值,也就是说基本粒子算法也不能保证每次找到收敛到最优解附近的值,因此要对基本的粒子群算法进行改进,以便算法更加准确地找到趋近最优平滑系数的值。

基本的粒子群算法在搜索的过程中,每个粒子都不断在当前粒子历史最优位置和全局粒子历史最优位置的影响下向同一点趋近,当α的解空间存在多极值的情况下,搜索粒子可能趋向的位置只是极值并不是最值,这样粒子就陷入了局部最优即陷入“早熟”。为了解决这一问题,很多学者进行了研究,文献[13]中提出了对基本粒子群算法进行变异的思想,其基本思想为:在粒子搜索的过程中,如果全局粒子最优位置连续m次没有改变,则要对粒子的全局最优位置进行一次变异,避免其陷入局部最优。这种变异算法不足在于迭代次数不能太少,迭代数次太少则算法的变异时机m取值太小,从而导致算法失去了变异的能力,不能达到预测的效果,迭代次数太多则影响算法执行的效率。本文借鉴文献[14]中提出的限制作用域的思想,并综合黄金分割法的思想,对基本粒子群算法速度更新公式进行改进,改进后的速度更新公式如下

注:当随机概率大于0.5时,η为正;否则,η为负。

改进的粒子群算法思想为:把平滑系数的解空间分为10段,每段初始化2个粒子,依变异概率Pm选择一个粒子进行变异,变异的粒子按公式(5)改变其运行速度,并限制粒子的运行空间,使粒子在其作用域当中不断的根据历史最优点来更新自己的位置,另一个粒子则按原始公式(4)改变其运行速度,不断向全局最优解趋近,最后对比变异粒子与普通粒子的预测误差平方和,找出最趋近全局最优解的值,作为最优平滑系数输出。这样既保证了粒子搜索的全局性又不会让粒子陷入局部最优。

算法描述如下:

Step1 选定初始值S0及10个空间段中的20 个初始平滑系数 αi(i=0,1,2,…,20),每段随机出两个粒子;

Step2 依概率Pm选择各段中一个粒子作为变异粒子,利用二次指数平滑法对所有粒子,在特定平滑系数α下计算预测值,并计算预测值与实际值间的误差平方和,对于各段中未选中的粒子,同样把它们对应的平滑系数作为初始局部最优解pBest1,同时还要对比它们计算出的预测值与实际值间的误差平方和,把误差平方和最小值对应的平滑系数作为全局最优解gBest1;对于各段中选定的变异粒子,把其对应的平滑系数作为初始局部最优解pBest2;

Step3 对于各段中未选中的粒子,按式(3,4)更新粒子的位置,并计算误差平方和,根据误差平方和的优劣更新粒子的局部最优解pBest1和全局最优解gBest1;对于各段中选中的变异粒子,按式(4,5)更新粒子的位置,并计算误差平方和,根据误差平方和的优劣更新粒子的局部最优解pBest2;

Step4 当迭代次数达到预定的迭代次数时转下一步;否则,转Step3继续循环;

Step5 求解各段中变异粒子的最优解pBest2的预测误差平方和并进行比较,选出全局最优解 gBest2,对比两个全局最优解gBest1和gBest2,选出预测误差平方和值较小的那个作为全局最优解输出,并利用全局最优解预测给定时间序列的下一数据值输出。

3 数据测试及结果分析

本文采用的数据分别来自天拓咨询统计的2010年到2012年全社会电量数据表(原数据见:http://www.tianinfo.com/news/news4116.html)、中国产业洞察网统计的各行业单月用电量数据表(原 数 据 见:http://www.51report.com/free/3014608.html)、中电联长江证券研究部统计的重点行业用电产业表(原数据见:http://pg.jrj.com.cn/acc/Res/CN-RES/INDUS/2013/4/21/29a1cc75-cb6c-4028-8d9c-421f62f1b881.pdf)等,这些数据都是权威网站的统计数据,具有事实说服力。

3.1 数据测试

以中国产业洞察网统计的各行业2010年、2011年单月用电量数据为预测的历史数据,2012年单月用电量作为预测数据,分别用典型的一维自动寻优算法黄金分割法、文献[12]中提出的改进粒子群算法以及本文提出的改进粒子群算法进行数据,并与实际数据相比较得到如下的对比图。

图1 各产业单月用电情况及预测值Fig.1 Mon thly electricity consumption in various industries and predictive value

3.2 结果分析

从以上不同算法求出的平滑系数进行预测的值与实际值对比的折线图可以看出,在相同迭代次数下,改进的粒子群算法要比基本粒子群算法、一维黄金分割法以及文献[12]中提出的变异粒子群算法预测的数据更为准确。

4 结语

本文针对指数平滑算法的典型问题之一的平滑系数如何确定的问题进行了研究,采用群智能算法之一的粒子群算法,并针对现有算法及基本粒子群算法求解平滑系数的不足之处进行了改进,同时避免了文献[12]中变异粒子群的缺陷。通过编程及对实际数据的仿真实验,得出本文提出的改进粒子群算法可以比一般算法更加准确地求出收敛于最优平滑系数的值,且可以避免算法中的“早熟”现象,本文研究成果已应用在“计划模型软件”系统中,用于基于历史数据的电力计量装置需求预测,取得良好的应用效果。

[1] 徐大江.预测模型参数的指数平滑估计法及其应用的进一步研究[J].系统工程理论与实践,1999(2):25-30.

[2] 吴德会.动态指数平滑预测方法及其应用[J].系统管理学报,2008(4):151-155.

[3] GOODELL B R.Smoothing forecasting and predition of discrete time series[M].Englewood:Pretice-Hall,2004:3-24.

[4] 张忠平.指数平滑法[M].北京:中国统计出版社,1996:36-49.

[5] 金旭星,盛奎川.指数平滑参数与初值的选取研究[J].江南大学学报(自然科学版),2005,4(3):316-319.

[6] 唐炎森.指数平滑预测公式与平滑系数[J].统计与信息论坛,1998(1):38-43.

[7] 黎锁平,刘坤会.平滑系数自适应的二次指数平滑模型及其应用[J].系统工程理论与实践,2004(2):95-99.

[8] 卢永芳,程志磊,王晓卫,等.基于时序指数平滑法的风电场功率预测研究[J].工矿自动化,2012(8):75-78.

[9]吴奕.温特斯季节指数平滑模型预测电力峰荷的方法[J].硅谷,2011(23):179-180.

[10]李颖.时间序列指数平滑算法的改进研究[D].辽宁工程技术大学,2009.

[11] ARMSTRONG,J S.Findings from evidence-based forecasting:Methods for reducing forecast error[J].International Journal of Forecasting,2006,22:583-598.

[12] KENNEDY J,EBERHART R.Particle swarm optimization[C].IEEE International Conference on Neural Networks(Perth,Australia),Piscataway:IEEE Service Center,1942-1948,1995.

[13]王海峰,刘晶晶.全局最优位置变异粒子群优化算法[J].青岛理工大学学报,2009(5):93-97.

[14]庞淑萍.有限作用域的混沌粒子群优化算法[J].计算机工程与应用,2011,47(12):39-42.

猜你喜欢
平方和极值全局
Cahn-Hilliard-Brinkman系统的全局吸引子
量子Navier-Stokes方程弱解的全局存在性
极值点带你去“漂移”
极值点偏移拦路,三法可取
极值点偏移问题的解法
费马—欧拉两平方和定理
一类“极值点偏移”问题的解法与反思
利用平方和方法证明不等式赛题
落子山东,意在全局
勾股定理的扩展