发明名称 一种基于量子引力算法的时间序列预测方法
摘要 本发明公开了一种基于量子引力算法的时间序列预测方法,通过采用Volterra级数展开式来构造时间序列预测模型。首先,在引用相空间分帧重构技术的基础上,构建以Volterra级数P阶截断的输入信号矢量;其次,引入加速度作为某个变量参数到Mohadeseh Soleimanpour等人提出的量子引力算法中,利用此算法有效地训练出预测模型的Volterra核函数;最后,通过预测点时刻的输入信号矢量与Volterra核函数的线性组合,从而求得该时刻的预测值。通过实验验证,将量子引力算法引入到非线性系统的Volterra核函数辨识中,可以有效地提高时间序列预测的准确度。
申请公布号 CN105320845A 申请公布日期 2016.02.10
申请号 CN201510837084.9 申请日期 2015.11.26
申请人 电子科技大学 发明人 刘震;曾现萍;程玉华;田书林;龙伊雯
分类号 G06F19/00(2011.01)I 主分类号 G06F19/00(2011.01)I
代理机构 成都行之专利代理事务所(普通合伙) 51220 代理人 温利平
主权项 一种基于量子引力算法的时间序列预测方法,其特征在于,包括以下步骤:(1)、数据预处理(1.1)、设预选的数据集DS={x(1),x(2),…,x(D)},其中D为数据个数;(1.2)、根据微分熵率的方法确定数据集DS的最佳嵌入维数d和延迟时间τ;(1.3)、利用Matlab中的函数windowize对数据集DS进行分帧重构,并将各帧数据分别映射到d维特征空间,且以Volterra级数的方式p(p≥1)阶截断,从而得到N<sub>0</sub>(N<sub>0</sub>=D‑d×τ)个数据帧{(X<sub>t,</sub>Y<sub>t</sub>)}(t=1,2,…,N<sub>0</sub>),并作为预测模型的输入和目标输出数据,其中:输入数据为X<sub>t</sub>={1,x(t),x(t+τ),…,x(t+(d‑1)×τ),x<sup>2</sup>(t),x(t)×x(t+τ),…,x<sup>2</sup>(t+(d‑1)×τ),…}目标输出数据为Y<sub>t</sub>=x(t+d×τ)(t=1,2,…,N<sub>0</sub>);(2)、初始粒子的局部最佳位置设有N<sub>S</sub>个粒子,粒子位置用M维向量W<sub>i</sub>表示,粒子群位置可用矩阵<img file="FDA0000858608110000015.GIF" wi="135" he="77" />表示,i=1,2,…,N<sub>S</sub>;随机初始化N个粒子的初始位置W<sub>i</sub>,,并令各粒子局部最佳位置为Lbest<sub>i</sub>=W<sub>i</sub>;(3)、获取N<sub>S</sub>个粒子构成的群体的初始全局最佳位置第i(i=1,2,…,N<sub>S</sub>)个粒子在寻优过程中的适应值函数为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>fit</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>W</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><msub><mi>N</mi><mn>0</mn></msub></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>t</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>N</mi><mn>0</mn></msub></munderover><msup><mrow><mo>&lsqb;</mo><msub><mi>Y</mi><mi>t</mi></msub><mo>-</mo><msup><mi>W</mi><mi>T</mi></msup><msub><mi>X</mi><mi>t</mi></msub><mo>&rsqb;</mo></mrow><mn>2</mn></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000858608110000011.GIF" wi="1382" he="143" /></maths>选取适应值最小的粒子的位置作为N<sub>S</sub>个粒子构成的群体的初始全局最佳位置Fbest;(4)、根据万有引力算法计算出每一维空间中粒子i(i=1,2,…,N<sub>S</sub>)的加速度<img file="FDA0000858608110000012.GIF" wi="109" he="86" />因此M维空间中全体粒子的加速度可以用N<sub>S</sub>×M维矩阵a表示;(5)、更新粒子的位置和适应值:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>m</mi><mi>b</mi><mi>e</mi><mi>s</mi><mi>t</mi><mo>=</mo><mfrac><mn>1</mn><mi>M</mi></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><mi>F</mi><mi>b</mi><mi>e</mi><mi>s</mi><mi>t</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000858608110000013.GIF" wi="510" he="143" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>p</mi><mrow><mo>(</mo><mi>K</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msub><mi>a</mi><mn>0</mn></msub><mo>&CenterDot;</mo><mi>F</mi><mi>b</mi><mi>e</mi><mi>s</mi><mi>t</mi><mo>+</mo><mi>a</mi><mo>&CenterDot;</mo><mi>f</mi><mi>i</mi><mi>t</mi><mrow><mo>(</mo><mi>F</mi><mi>b</mi><mi>e</mi><mi>s</mi><mi>t</mi><mo>)</mo></mrow></mrow><mrow><msub><mi>a</mi><mn>1</mn></msub><mo>+</mo><mi>a</mi></mrow></mfrac></mrow>]]></math><img file="FDA0000858608110000014.GIF" wi="682" he="141" /></maths>b(K)=1‑0.5K/MAXITERr(K)=[r<sub>1</sub>(K),…,r<sub>d</sub>(K),…,r<sub>M</sub>(K)],其中<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>r</mi><mi>d</mi></msub><mrow><mo>(</mo><mi>K</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = '{' close = ''><mtable><mtr><mtd><mrow><mo>-</mo><mn>1</mn><mo>,</mo></mrow></mtd><mtd><mrow><mi>i</mi><mi>f</mi></mrow></mtd><mtd><mrow><mi>&delta;</mi><mrow><mo>(</mo><mi>K</mi><mo>)</mo></mrow><mo>&gt;</mo><mn>0.5</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mn>1</mn><mo>,</mo></mrow></mtd><mtd><mrow><mi>i</mi><mi>f</mi></mrow></mtd><mtd><mrow><mi>&delta;</mi><mrow><mo>(</mo><mi>K</mi><mo>)</mo></mrow><mo>&le;</mo><mn>0.5</mn></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000858608110000021.GIF" wi="558" he="157" /></maths><maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>W</mi><mrow><mo>(</mo><mi>K</mi><mo>)</mo></mrow><mo>=</mo><mi>p</mi><mrow><mo>(</mo><mi>K</mi><mo>)</mo></mrow><mo>+</mo><mi>r</mi><mrow><mo>(</mo><mi>K</mi><mo>)</mo></mrow><mi>b</mi><mrow><mo>(</mo><mi>K</mi><mo>)</mo></mrow><mo>|</mo><mi>m</mi><mi>b</mi><mi>e</mi><mi>s</mi><mi>t</mi><mo>-</mo><mi>W</mi><mrow><mo>(</mo><mi>K</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>|</mo><mi>l</mi><mi>n</mi><mrow><mo>(</mo><mfrac><mn>1</mn><mrow><mi>u</mi><mrow><mo>(</mo><mi>K</mi><mo>)</mo></mrow></mrow></mfrac><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000858608110000022.GIF" wi="1086" he="135" /></maths>其中,δ(K),u(K)为0至1之间的随机数,a<sub>0</sub>,a<sub>1</sub>分别为0至1之间的N<sub>S</sub>维和N<sub>S</sub>×M维随机向量,a为粒子的加速度,fit(Fbest)为全局最佳位置所对应的适应值,即最优适应值。K为当前迭代步数,MAXITER为最大迭代步数;随着粒子位置W(K)的更新,从而利用公式(1)可以计算得到粒子i(i=1,2,…,N<sub>S</sub>)的新适应值fit(W<sub>i</sub>(K));(6)、更新每个粒子的局部最佳位置,如果每个粒子fit(W<sub>i</sub>(K))<fit(Lbest<sub>i</sub>),则Lbest<sub>i</sub>=W<sub>i</sub>(K),否则Lbest<sub>i</sub>保持不变(i=1,2,…,N<sub>S</sub>);更新全局最佳位置,<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mi>F</mi><mi>b</mi><mi>e</mi><mi>s</mi><mi>t</mi><mo>=</mo><munder><mrow><mi>arg</mi><mi> </mi><mi>min</mi></mrow><mrow><mn>1</mn><mo>&le;</mo><mi>i</mi><mo>&le;</mo><msub><mi>N</mi><mi>S</mi></msub></mrow></munder><mi>f</mi><mi>i</mi><mi>t</mi><mrow><mo>(</mo><msub><mi>Lbest</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000858608110000023.GIF" wi="739" he="125" /></maths>(7)、迭代操作:判断迭代步数是否达到最大迭代步数MAXITER或者最优适应值fit(Fbest)是否达到稳定;如果是,则终止迭代,得到一组最优的M维核向量<img file="FDA0000858608110000024.GIF" wi="83" he="78" />执行步骤(8);否则,返回到步骤(4)继续执行;(8)、计算预测值:当预测第D+1个数据,即预测数据x(D+1)时,根据步骤(1)可知此时预测模型的输入数据帧为<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msub><mi>X</mi><mover><mi>t</mi><mo>^</mo></mover></msub><mo>=</mo><msup><mrow><mo>&lsqb;</mo><msub><mi>x</mi><mrow><mover><mi>t</mi><mo>^</mo></mover><mo>,</mo><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>x</mi><mrow><mover><mi>t</mi><mo>^</mo></mover><mo>,</mo><mn>2</mn></mrow></msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi><mrow><mover><mi>t</mi><mo>^</mo></mover><mo>,</mo><mi>M</mi></mrow></msub><mo>&rsqb;</mo></mrow><mi>T</mi></msup><mo>,</mo><mrow><mo>(</mo><mover><mi>t</mi><mo>^</mo></mover><mo>=</mo><mi>D</mi><mo>+</mo><mn>1</mn><mo>-</mo><mi>d</mi><mo>&times;</mo><mi>&tau;</mi><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000858608110000025.GIF" wi="983" he="108" /></maths>将步骤(7)中的核向量<img file="FDA0000858608110000026.GIF" wi="59" he="70" />代入,从而得到<img file="FDA0000858608110000027.GIF" wi="310" he="70" />时刻,预测模型的一步预测值:<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><msub><mi>y</mi><mover><mi>t</mi><mo>^</mo></mover></msub><mo>=</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>X</mi><mover><mi>t</mi><mo>^</mo></mover></msub><mo>)</mo></mrow><mo>=</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>x</mi><mrow><mover><mi>t</mi><mo>^</mo></mover><mo>,</mo><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>x</mi><mrow><mover><mi>t</mi><mo>^</mo></mover><mo>,</mo><mn>2</mn></mrow></msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi><mrow><mover><mi>t</mi><mo>^</mo></mover><mo>,</mo><mi>M</mi></mrow></msub><mo>)</mo></mrow><mo>=</mo><msup><mover><mi>W</mi><mo>^</mo></mover><mi>T</mi></msup><msub><mi>X</mi><mover><mi>t</mi><mo>^</mo></mover></msub><mo>.</mo></mrow>]]></math><img file="FDA0000858608110000028.GIF" wi="870" he="95" /></maths>
地址 611731 四川省成都市高新区(西区)西源大道2006号