发明名称 一种基于自适应变异粒子群优化的潮汐智能实时预报方法
摘要 本发明公开了一种基于自适应变异粒子群优化的潮汐智能实时预报方法,包括以下步骤:载入潮汐实测数据;构建SAPSO‑BP网络预报模型;计算误差函数;循环迭代寻优;设置BP神经网络的网络参数。本发明借鉴遗传算法GA中的变异思想,在PSO算法中引入变异操作,拓展了在迭代过程中不断缩小的种群搜索空间,从而使粒子能够跳出先前搜索到的最优位置,在更大的搜索空间中展开搜索,同时又保持了种群的多样性,提高了算法寻找到更优值得可能性。因此,本发明相对于传统的PSO‑BP算法具有较高的搜索精度和搜索效率,相对于传统的PSO‑BP模型和调和分析模型具有更高的预测精度。
申请公布号 CN105894090A 申请公布日期 2016.08.24
申请号 CN201610255994.0 申请日期 2016.04.22
申请人 大连海事大学 发明人 尹建川;张泽国;柳成
分类号 G06N3/10(2006.01)I;G06N3/12(2006.01)I 主分类号 G06N3/10(2006.01)I
代理机构 大连东方专利代理有限责任公司 21212 代理人 李洪福
主权项 一种基于自适应变异粒子群优化的潮汐智能实时预报方法,其特征在于:包括以下步骤:A、载入潮汐实测数据:所述的潮汐实测数据来源于各个潮汐观测点的实时观测记录值,并将潮汐实测数据归一化处理;B、构建SAPSO‑BP网络预报模型:基于归一化处理后的潮汐实测数据,创建BP神经网络模型并设置SAPSO优化算法,构建SAPSO‑BP网络预报模型:即将自适应的变异算子SA引入传统的粒子群优化算法中PSO,然后将BP神经网络模型的网络参数包括权值和阈值,初始化为自适应粒子群优化算法SAPSO的种群粒子位置;通过SAPSO迭代寻优得到最优的粒子位置即为BP神经网络模型的权值和阈值,将寻优得到的最优网络参数赋给BP神经网络模型进行最终的网络仿真预报;BP神经网络隐含层输出值由如下公式计算:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>H</mi><mi>j</mi></msub><mo>=</mo><mi>f</mi><mrow><mo>(</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>w</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><msub><mi>&theta;</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>,</mo><mi>j</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>l</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000972086160000011.GIF" wi="1477" he="118" /></maths>其中:θ<sub>j</sub>为隐含层的阈值,f(·)为隐含层节点的非线性传递函数;w<sub>ik</sub>为输入层与隐含层之间的权值,n为输入层节点数,l为隐含层节点数,x<sub>i</sub>为输入数据;BP网络输出层输出值由如下公式计算:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>O</mi><mi>k</mi></msub><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>t</mi></munderover><msub><mi>H</mi><mi>j</mi></msub><msub><mi>w</mi><mrow><mi>j</mi><mi>k</mi></mrow></msub><mo>-</mo><msub><mi>a</mi><mi>k</mi></msub><mo>,</mo><mi>k</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>m</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000972086160000012.GIF" wi="1533" he="134" /></maths>其中:a<sub>k</sub>输出层阈值,w<sub>jk</sub>为隐含层与输出层之间的权值,m为输出层节点数,H<sub>j</sub>为隐含层输出值;SAPSO‑BP网络预报模型的误差计算公式如下:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>e</mi><mi>k</mi></msub><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><munderover><mo>&Sigma;</mo><mi>k</mi><mi>m</mi></munderover><msup><mrow><mo>(</mo><msub><mi>Y</mi><mi>k</mi></msub><mo>-</mo><msub><mi>O</mi><mi>k</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>,</mo><mi>k</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>m</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000972086160000013.GIF" wi="1398" he="127" /></maths>其中Y<sub>k</sub>为SAPSO‑BP网络预报模型的潮汐实测数据,O<sub>k</sub>为SAPSO‑BP网络预报模型的仿真输出数据,m为输出层节点数;SAPSO‑BP网络预报模型在每一次迭代过程中,粒子的位置和速度更新公式如下:v<sub>i</sub>(t+1)=ω*v<sub>i</sub>(t)+c<sub>1</sub>*r<sub>1</sub>*(p<sub>i</sub>‑x<sub>i</sub>(t))+c<sub>2</sub>*r<sub>2</sub>*(p<sub>g</sub>‑x<sub>i</sub>(t))   (4)x<sub>i</sub>(t+1)=x<sub>i</sub>(t)+v<sub>i</sub>(t+1)j=1,2,…,n   (5)其中ω为惯性权重,k为当前迭代次数,x<sub>i</sub>为粒子位置,v<sub>i</sub>为粒子速度,P<sub>i</sub>为个体极值,P<sub>g</sub>为群体极值,c<sub>1</sub>和c<sub>2</sub>为非负常数,r<sub>1</sub>和r<sub>2</sub>为介于0和1之间的而随机数;为防止粒子盲目搜索,对粒子的初始位置和速度进行限制;SAPSO‑BP网络预报模型的网络参数c1=c2=1.55,迭代寻优次数为200,种群规模为20,每个粒子的初始速度限制在[‑3,3]之间,每个粒子的初始位置限制在[‑5,5]之间,SAPSO‑BP网络预报模型中的自适应变异算子公式如下:pop(j,pos)=λ*rands(1,1)   (6)其中:j为粒子数量,pos是一个均匀的离散随机整数;pop为粒子种群数量,λ为粒子种群数量的最大值;C、将BP神经网络的网络参数初始化为SAPSO优化算法的粒子种群位置,BP神经网路的网络参数包括:输入层与隐含层之间的权值、隐含层阈值、隐含层与输出层之间的权值以及输出层阈值;根据误差函数公式计算粒子初始适应度函数值;误差函数计算公式如下:error=|Y<sub>k</sub>‑O<sub>k</sub>|   (7)其中:Y<sub>k</sub>为预报模型的实际观测数据,O<sub>k</sub>为预报模型的仿真输出数据;D、在每一次迭代过程中,粒子根据更新公式(4)和(5)更新自身的速度和位置;并根据误差函数计算公式(7)计算新的适应度函数值;然后借鉴遗传算法中的变异思想,在PSO算法中引入自适应变异操作,然后根据自适应变异公式(6)计算并更新粒子个体极值和群体极值;E、判断最优个体适应度函数值即误差函数公式(7)计算的误差函数值是否满足误差设置要求,或者迭代寻优次数是否达到设置要求,如果满足要求则执行步骤F,否则返回步骤D继续进行循环迭代寻优;F、结束SAPSO优化算法的迭代寻优,将寻优得到的最优网络参数赋值给BP神经网络进行仿真实验;G、设置BP神经网络的网络参数:迭代循环次数设置在[1,500]之间,学习率和学习目标都设置在[0,1]之间,然后将最优网络参数赋给BP神经网络进行潮汐实时预报仿真实验。
地址 116026 辽宁省大连市高新园区凌海路1号