法律状态公告日
法律状态信息
法律状态
2019-06-11
授权
授权
2016-12-07
实质审查的生效 IPC(主分类):G06Q10/04 申请日:20160613
实质审查的生效
2016-11-09
公开
公开
技术领域
本发明涉及一种水产品养殖环境中的溶解氧预测技术,尤其是涉及一种蚁群算法优化最小二乘支持向量机的溶解氧预测方法。
背景技术
溶解氧是水产品养殖水体的一项十分重要的水质指标,其对水产品的生长、病害预防均有着重要影响,如果不能精确掌握养殖池塘水域的溶解氧的动态变化趋势,不能在养殖水体低氧或者缺氧之前进行增氧,则在养殖水体低氧或者缺氧的胁迫环境中制约着水产品健康生长,甚至会导致水产品病害爆发致使大面积死亡,从而会给水产品养殖户造成巨额损失,会严重影响水产品养殖业的健康可持续发展。
传统的溶解氧预测方法为神经网络预测方法,其假设样本无限大,并基于经验风险最小化原则,其存在易陷于局部最优值、过学习、不适于高维数和小样本预测等缺陷。目前比较有效的溶解氧预测方法是基于最小二乘支持向量机(LSSVM)的预测方法,此方法解决了传统的神经网络预测方法存在的缺陷,并且能以任意精度逼近任意函数,但是此方法中最小二乘支持向量机的核函数宽度参数与惩罚因子选定是否合适,严重制约着此方法的预测精度和性能,因此如何获取最优的核函数宽度参数与惩罚因子是提高溶解氧的预测精度的关键,然而目前还没有有效的方法能够寻找到最小二乘支持向量机的最优的核函数宽度参数与惩罚因子。
发明内容
本发明所要解决的技术问题是提供一种蚁群算法优化最小二乘支持向量机的溶解氧预测方法,其通过寻找到最小二乘支持向量机的最优的核函数宽度参数与惩罚因子,有效地实现了溶解氧快速、精确的预测。
本发明解决上述技术问题所采用的技术方案为:一种蚁群算法优化最小二乘支持向量机的溶解氧预测方法,其特征在于包括以下步骤:
①在需要预测溶解氧的水产品养殖水体中布置一个溶解氧传感器,溶解氧传感器实时等时间间隔连续采集溶解氧数据;
②将溶解氧传感器等时间间隔连续采集的T个溶解氧数据按采集时间先后顺序排列构成原始溶解氧数据序列,记为Y,Y={y1,y2,…,yt,…,yT};再对Y进行预处理,以丢弃或修复Y中的坏点数据而保留Y中的有效数据,得到预处理后的溶解氧数据序列,记为X,X={x1,x2,…,xs,…,xS};
其中,T>Z,Z表示设定的溶解氧数据最小需求量,1≤t≤T,y1,y2,…,yt,…,yT对应表示Y中的第1个溶解氧数据、第2个溶解氧数据、…、第t个溶解氧数据、…、第T个溶解氧数据,S≤T,1≤s≤S,x1,x2,…,xs,…,xS对应表示X中的第1个溶解氧数据、第2个溶解氧数据、…、第s个溶解氧数据、…、第S个溶解氧数据,坏点数据定义为:若Y中的任一个溶解氧数据大于Y中的所有溶解氧数据的平均值的60%或者小于Y中的所有溶解氧数据的平均值的40%,则确定该溶解氧数据为坏点数据;有效数据定义为:若Y中的任一个溶解氧数据大于或等于Y中的所有溶解氧数据的平均值的40%且小于或等于Y中的所有溶解氧数据的平均值的60%,则确定该溶解氧数据为有效数据;
③判断S≥Z是否成立,如果成立,则执行步骤④;否则,返回步骤②重新获取原始溶解氧数据序列,再进行预处理;
④选取X中的前ST个溶解氧数据构成训练集,记为Train,Train={x1,x2,…,xst,…,xST};并将剩余的S-ST个溶解氧数据构成测试集,记为Test,Test={xST+1,xST+2,…,xS};其中,S×60%≤ST≤S×80%,x1,x2,…,xst,…,xST对应表示Train中的第1个溶解氧数据、第2个溶解氧数据、…、第st个溶解氧数据、…、第ST个溶解氧数据,x1,x2,…,xst,…,xST亦对应表示X中的第1个溶解氧数据、第2个溶解氧数据、…、第st个溶解氧数据、…、第ST个溶解氧数据,xST+1,xST+2,…,xS对应表示Test中的第1个溶解氧数据、第2个溶解氧数据、…、第S-ST个溶解氧数据,xST+1,xST+2,…,xS亦对应表示X中的第ST+1个溶解氧数据、第ST+2个溶解氧数据、…、第S个溶解氧数据;
⑤根据Train中的所有溶解氧数据,利用蚁群算法优化最小二乘支持向量机的惩罚因子和核函数宽度参数,得到最小二乘支持向量机的惩罚因子和核函数宽度参数各自的最佳优化值,具体过程为:
⑤_1、选择径向基函数作为最小二乘支持向量机的核函数;然后选择最小二乘支持向量机的惩罚因子c和核函数宽度参数σ作为优化选择参数;再将区间[0,150]作为惩罚因子的值选择范围,将区间[0.1,10]作为核函数宽度参数的值选择范围;其中,k()为径向基函数的表示形式,x为最小二乘支持向量机的核函数的输入变量,D为最小二乘支持向量机的核函数中心,exp()表示以自然基数e为底的指数函数,σ为最小二乘支持向量机的核函数宽度参数,x、D和σ的值均为实数;
⑤_2、设定蚁群算法中所需的蚂蚁数量为N;然后从惩罚因子的值选择范围中随机选择N个值分别作为惩罚因子c的值,对应记为c1,c2,…,cp,…,cN;并从核函数宽度参数的值选择范围中随机选择N个值分别作为核函数宽度参数σ的值,对应记为σ1,σ2,…,σp,…,σN;其中,1<N≤ST,1≤p≤N,c1、c2、cp和cN对应为从惩罚因子的值选择范围中随机选择的第1个值、第2个值、第p个值和第N个值,σ1、σ2、σp和σN对应为从核函数宽度参数的值选择范围中随机选择的第1个值、第2个值、第p个值和第N个值;
⑤_3、获取蚁群算法第1次搜索时每只蚂蚁的位置,将蚁群算法第1次搜索时第p只蚂蚁的位置记为XAp,1,XAp,1=[cp,σp];其中,[cp,σp]表示由第p个惩罚因子c的值cp和第p个核函数宽度参数σ的值σp构成的第p只蚂蚁的初始位置矢量;
⑤_4、确定蚁群算法第1次搜索时的头蚁及其位置,将蚁群算法第1次搜索时的头蚁的位置记为并确定蚁群算法第1次搜索时每只蚂蚁的最佳位置,将蚁群算法第1次搜索时第p只蚂蚁的最佳位置记为
和的获取过程为:
a1、根据Train中的所有溶解氧数据和蚁群算法第1次搜索时每只蚂蚁的位置,获取蚁群算法第1次搜索时每只蚂蚁对应的ST个拉格朗日乘子和偏差,将蚁群算法第1次搜索时第p只蚂蚁对应的ST个拉格朗日乘子对应记为a1,p,a2,p,…,aST,p,将蚁群算法第1次搜索时第p只蚂蚁对应的偏差记为bp,a1,p,a2,p,…,aST,p和bp是根据Train中的所有溶解氧数据和XAp,1,计算得到的;其中,
a2、根据Train中的所有溶解氧数据和蚁群算法第1次搜索时每只蚂蚁的位置,计算蚁群算法第1次搜索时每只蚂蚁对应的Train中的每个溶解氧数据的估计值,将蚁群算法第1次搜索时第p只蚂蚁对应的Train中的第st个溶解氧数据xst的估计值记为其中,ai,p表示蚁群算法第1次搜索时第p只蚂蚁对应的第i个拉格朗日乘子;
a3、计算蚁群算法第1次搜索时每只蚂蚁的位置对应的预测误差,将蚁群算法第1次搜索时第p只蚂蚁的位置对应的预测误差记为MSE(XAp,1),
a4、计算蚁群算法第1次搜索时每只蚂蚁的信息素,将蚁群算法第1次搜索时第p只蚂蚁的信息素记为τ(p,1),τ(p,1)=exp(-MSE(XAp,1));
a5、将蚁群算法第1次搜索时N只蚂蚁的信息素按序构成一个维数为1×N的信息素矩阵,记为In1,In1=[τ(1,1)τ(2,1)…τ(N,1)];其中,τ(1,1)表示蚁群算法第1次搜索时第1只蚂蚁的信息素,τ(2,1)表示蚁群算法第1次搜索时第2只蚂蚁的信息素,τ(N,1)表示蚁群算法第1次搜索时第N只蚂蚁的信息素;
a6、将In1中值最大的信息素对应的蚂蚁确定为蚁群算法第1次搜索时的头蚁,将In1中值最大的信息素对应的蚂蚁的位置作为蚁群算法第1次搜索时的头蚁的位置
a7、确定蚁群算法第1次搜索时第p只蚂蚁的最佳位置为
⑤_5、令g表示蚁群算法的搜索次数,并令gmax表示设定的最大搜索次数;其中,g的初始值为2,2≤g≤gmax,gmax>2;
⑤_6、获取蚁群算法第g次搜索时每只蚂蚁的位置,将蚁群算法第g次搜索时第p只蚂蚁的位置记为XAp,g,其中,λ表示启发因子,λ∈[0,1],XAp,g-1表示蚁群算法第g-1次搜索时第p只蚂蚁的位置,表示蚁群算法第g-1次搜索时的头蚁的位置,表示蚁群算法第g-1次搜索时第p蚂蚁的最佳位置;
⑤_7、确定蚁群算法第g次搜索时的头蚁及其位置,将蚁群算法第g次搜索时的头蚁的位置记为并确定蚁群算法第g次搜索时每只蚂蚁的最佳位置,将蚁群算法第g次搜索时第p只蚂蚁的最佳位置记为
和的获取过程为:
b1、计算蚁群算法第g次搜索时每只蚂蚁的信息素,将蚁群算法第g次搜索时第p只蚂蚁的信息素记为τ(p,g),τ(p,g)=(1-ρ)×τ(p,g-1)+τ(p,1);其中,ρ表示信息素挥发数,ρ∈[0,1],τ(p,g-1)表示蚁群算法第g-1次搜索时第p只蚂蚁的信息素,τ(p,1)表示蚁群算法第1次搜索时第p只蚂蚁的信息素;
b2、构建一个维数为g×N的信息素矩阵,记为Ing,Ing中的第h行中的N个信息素对应为蚁群算法第h次搜索时N只蚂蚁的信息素;其中,1≤h≤g;
b3、将Ing中的第p列中的g个信息素中值最大的信息素对应的蚂蚁的位置确定为蚁群算法第g次搜索时第p只蚂蚁的最佳位置
b4、将Ing中值最大的信息素对应的蚂蚁确定为蚁群算法第g次搜索时的头蚁,将Ing中值最大的信息素对应的蚂蚁的位置作为蚁群算法第g次搜索时的头蚁的位置
b5、对进行精细搜索,得到蚁群算法第g次搜索时的头蚁的新位置,记为其中,Cauchy(0,1)为用于产生0~1之间分布的随机数的函数;
b6、更新将更新后的位置记为再令其中,表示蚁群算法第g次搜索时的头蚁的新位置对应的预测误差,表示蚁群算法第g次搜索时的头蚁的位置对应的预测误差,中的“=”为赋值符号;
⑤_8、判断g<gmax是否成立,如果成立,则令g=g+1,然后返回步骤⑤_6继续执行;否则,确定蚁群算法搜索结束,得到最终的头蚁的位置,记为XAobj,然后将XAobj对应的位置矢量[cobj,σobj]中的cobj作为最小二乘支持向量机的惩罚因子c的最佳优化值,并将XAobj对应的位置矢量[cobj,σobj]中的σobj作为最小二乘支持向量机的核函数宽度参数σ的最佳优化值;其中,g=g+1中的“=”为赋值符号,表示蚁群算法第gmax次搜索时的头蚁的位置;
⑥根据最小二乘支持向量机的惩罚因子c的最佳优化值cobj和核函数宽度参数σ的最佳优化值σobj,计算Test中的每个溶解氧数据的预测值,将Test中的第r个溶解氧数据的预测值记为其中,1≤r≤S-ST,xST+j表示Test中的第j个溶解氧数据,xST+r表示Test中的第r个溶解氧数据,aj表示Test对应的第j个拉格朗日乘子,b表示Test对应的偏差,aj和b是根据Test中的所有溶解氧数据及cobj和σobj,计算得到的,
所述的步骤①中的溶解氧传感器采集溶解氧数据的时间间隔为1~5分钟。
所述的步骤②中的X的获取过程为:
②_1、找出Y中的所有有效数据和所有坏点数据,并将有效数据的标记设为1;
②_2、按序对Y中的每个坏点数据进行处理,将Y中当前待处理的坏点数据定义为当前数据;
②_3、如果当前数据为Y中的第1个溶解氧数据或当前数据为Y中的第T个溶解氧数据或时间上先于当前数据的所有溶解氧数据均为坏点数据或时间上后于当前数据的所有溶解氧数据均为坏点数据,则将当前数据的标记设为0,再执行步骤②_4;
如果当前数据不为Y中的第1个溶解氧数据且当前数据不为Y中的第T个溶解氧数据且时间上先于当前数据的所有溶解氧数据不全为坏点数据且时间上后于当前数据的所有溶解氧数据不全为坏点数据,则对当前数据进行线性插值以修复当前数据,使当前数据转变成有效数据,假设当前数据为Y中的第t'个溶解氧数据yt′,那么yt′经线性插值修复后等于然后将经线性插值修复后的当前数据的标记设为2,再执行步骤②_4;其中,表示时间上先于yt′且与yt′最邻近的标记为1的有效数据,亦为Y中的第t1个溶解氧数据,表示时间上后于yt′且与yt′最邻近的标记为1的有效数据,亦为Y中的第t2个溶解氧数据,1≤t1≤T,1≤t2≤T,t1<t'<t2;
②_4、将Y中下一个待处理的坏点数据作为当前数据,然后返回步骤②_3继续执行,直至Y中的所有坏点数据处理完毕,再执行步骤②_5;
②_5、丢弃Y中所有标记为0的坏点数据,而保留其余溶解氧数据,得到新的溶解氧数据序列,作为预处理后的溶解氧数据序列X。
与现有技术相比,本发明的优点在于:
1)本发明方法利用蚁群算法优化最小二乘支持向量机的惩罚因子和核函数宽度参数,提高了最小二乘支持向量机的惩罚因子和核函数宽度参数的精度和泛化性能,从而提高了溶解氧的预测精度。
2)本发明方法在蚁群算法的迭代搜索过程中,在通过最大信息素确定头蚁的位置后,对头蚁的位置进行精细搜索,获得头蚁的新位置,从而获得最小二乘支持向量机的惩罚因子和核函数宽度参数的更优解,提高了溶解氧的预测精度。
3)本发明方法在蚁群算法的迭代搜索过程中,保留每只蚂蚁搜索过程中的最佳位置,并将蚂蚁个体的最佳位置引入搜索过程,提高了最小二乘支持向量机的惩罚因子和核函数宽度参数的精度和泛化性能,从而提高了溶解氧的预测精度。
附图说明
图1为本发明方法的总体流程框图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
本发明提出的一种蚁群算法优化最小二乘支持向量机的溶解氧预测方法,其总体流程框图如图1所示,其包括以下步骤:
①在需要预测溶解氧的水产品养殖水体中布置一个溶解氧传感器,溶解氧传感器实时等时间间隔连续采集溶解氧数据。
在此具体实施例中,步骤①中的溶解氧传感器采集溶解氧数据的时间间隔可设为1~5分钟,如具体设为2分钟。
②将溶解氧传感器等时间间隔连续采集的T个溶解氧数据按采集时间先后顺序排列构成原始溶解氧数据序列,记为Y,Y={y1,y2,…,yt,…,yT};再对Y进行预处理,以丢弃或修复Y中的坏点数据而保留Y中的有效数据,得到预处理后的溶解氧数据序列,记为X,X={x1,x2,…,xs,…,xS}。
其中,T>Z,Z表示设定的溶解氧数据最小需求量,Z的值一般可选定为600个,1≤t≤T,y1,y2,…,yt,…,yT对应表示Y中的第1个溶解氧数据、第2个溶解氧数据、…、第t个溶解氧数据、…、第T个溶解氧数据,S≤T,1≤s≤S,x1,x2,…,xs,…,xS对应表示X中的第1个溶解氧数据、第2个溶解氧数据、…、第s个溶解氧数据、…、第S个溶解氧数据,坏点数据定义为:若Y中的任一个溶解氧数据大于Y中的所有溶解氧数据的平均值的60%或者小于Y中的所有溶解氧数据的平均值的40%,则确定该溶解氧数据为坏点数据;有效数据定义为:若Y中的任一个溶解氧数据大于或等于Y中的所有溶解氧数据的平均值的40%且小于或等于Y中的所有溶解氧数据的平均值的60%,则确定该溶解氧数据为有效数据。
在此具体实施例中,步骤②中的X的获取过程为:
②_1、找出Y中的所有有效数据和所有坏点数据,并将有效数据的标记设为1。
②_2、按序对Y中的每个坏点数据进行处理,将Y中当前待处理的坏点数据定义为当前数据。
②_3、如果当前数据为Y中的第1个溶解氧数据或当前数据为Y中的第T个溶解氧数据或时间上先于当前数据的所有溶解氧数据均为坏点数据或时间上后于当前数据的所有溶解氧数据均为坏点数据,则将当前数据的标记设为0,再执行步骤②_4。
如果当前数据不为Y中的第1个溶解氧数据且当前数据不为Y中的第T个溶解氧数据且时间上先于当前数据的所有溶解氧数据不全为坏点数据且时间上后于当前数据的所有溶解氧数据不全为坏点数据,则对当前数据进行线性插值以修复当前数据,使当前数据转变成有效数据,假设当前数据为Y中的第t'个溶解氧数据yt′,那么yt′经线性插值修复后等于然后将经线性插值修复后的当前数据的标记设为2,再执行步骤②_4;其中,表示时间上先于yt′且与yt′最邻近的标记为1的有效数据,亦为Y中的第t1个溶解氧数据,表示时间上后于yt′且与yt′最邻近的标记为1的有效数据,亦为Y中的第t2个溶解氧数据,1≤t1≤T,1≤t2≤T,t1<t'<t2。
②_4、将Y中下一个待处理的坏点数据作为当前数据,然后返回步骤②_3继续执行,直至Y中的所有坏点数据处理完毕,再执行步骤②_5。
②_5、丢弃Y中所有标记为0的坏点数据,而保留其余溶解氧数据,得到新的溶解氧数据序列,作为预处理后的溶解氧数据序列X。
③判断S≥Z是否成立,如果成立,则执行步骤④;否则,返回步骤②重新获取原始溶解氧数据序列,再进行预处理。
④选取X中的前ST个溶解氧数据构成训练集,记为Train,Train={x1,x2,…,xst,…,xST};并将剩余的S-ST个溶解氧数据构成测试集,记为Test,Test={xST+1,xST+2,…,xS};其中,S×60%≤ST≤S×80%,如具体实施时取ST=S×70%,x1,x2,…,xst,…,xST对应表示Train中的第1个溶解氧数据、第2个溶解氧数据、…、第st个溶解氧数据、…、第ST个溶解氧数据,x1,x2,…,xst,…,xST亦对应表示X中的第1个溶解氧数据、第2个溶解氧数据、…、第st个溶解氧数据、…、第ST个溶解氧数据,xST+1,xST+2,…,xS对应表示Test中的第1个溶解氧数据、第2个溶解氧数据、…、第S-ST个溶解氧数据,xST+1,xST+2,…,xS亦对应表示X中的第ST+1个溶解氧数据、第ST+2个溶解氧数据、…、第S个溶解氧数据。
⑤根据Train中的所有溶解氧数据,利用蚁群算法优化最小二乘支持向量机的惩罚因子和核函数宽度参数,得到最小二乘支持向量机的惩罚因子和核函数宽度参数各自的最佳优化值,具体过程为:
⑤_1、选择径向基函数作为最小二乘支持向量机的核函数;然后选择最小二乘支持向量机的惩罚因子c和核函数宽度参数σ作为优化选择参数;再将区间[0,150]作为惩罚因子的值选择范围,将区间[0.1,10]作为核函数宽度参数的值选择范围;其中,k()为径向基函数的表示形式,x为最小二乘支持向量机的核函数的输入变量,D为最小二乘支持向量机的核函数中心,exp()表示以自然基数e为底的指数函数,σ为最小二乘支持向量机的核函数宽度参数,x、D和σ的值均为实数。
⑤_2、设定蚁群算法中所需的蚂蚁数量为N;然后从惩罚因子的值选择范围中随机选择N个值分别作为惩罚因子c的值,对应记为c1,c2,…,cp,…,cN;并从核函数宽度参数的值选择范围中随机选择N个值分别作为核函数宽度参数σ的值,对应记为σ1,σ2,…,σp,…,σN;其中,1<N≤ST,1≤p≤N,c1、c2、cp和cN对应为从惩罚因子的值选择范围中随机选择的第1个值、第2个值、第p个值和第N个值,σ1、σ2、σp和σN对应为从核函数宽度参数的值选择范围中随机选择的第1个值、第2个值、第p个值和第N个值。
⑤_3、获取蚁群算法第1次搜索时每只蚂蚁的位置,将蚁群算法第1次搜索时第p只蚂蚁的位置记为XAp,1,XAp,1=[cp,σp];其中,[cp,σp]表示由第p个惩罚因子c的值cp和第p个核函数宽度参数σ的值σp构成的第p只蚂蚁的初始位置矢量。
⑤_4、确定蚁群算法第1次搜索时的头蚁及其位置,将蚁群算法第1次搜索时的头蚁的位置记为并确定蚁群算法第1次搜索时每只蚂蚁的最佳位置,将蚁群算法第1次搜索时第p只蚂蚁的最佳位置记为
和的获取过程为:
a1、根据Train中的所有溶解氧数据和蚁群算法第1次搜索时每只蚂蚁的位置,获取蚁群算法第1次搜索时每只蚂蚁对应的ST个拉格朗日乘子和偏差,将蚁群算法第1次搜索时第p只蚂蚁对应的ST个拉格朗日乘子对应记为a1,p,a2,p,…,aST,p,将蚁群算法第1次搜索时第p只蚂蚁对应的偏差记为bp,a1,p,a2,p,…,aST,p和bp是根据Train中的所有溶解氧数据和XAp,1,计算得到的;其中,在中x1为最小二乘支持向量机的核函数的输入,而x2为最小二乘支持向量机的核函数中心,
a2、根据Train中的所有溶解氧数据和蚁群算法第1次搜索时每只蚂蚁的位置,计算蚁群算法第1次搜索时每只蚂蚁对应的Train中的每个溶解氧数据的估计值,将蚁群算法第1次搜索时第p只蚂蚁对应的Train中的第st个溶解氧数据xst的估计值记为其中,ai,p表示蚁群算法第1次搜索时第p只蚂蚁对应的第i个拉格朗日乘子。
a3、选择均方根误差作为预测精度衡量标准,计算蚁群算法第1次搜索时每只蚂蚁的位置对应的预测误差,将蚁群算法第1次搜索时第p只蚂蚁的位置对应的预测误差记为MSE(XAp,1),
a4、计算蚁群算法第1次搜索时每只蚂蚁的信息素,将蚁群算法第1次搜索时第p只蚂蚁的信息素记为τ(p,1),τ(p,1)=exp(-MSE(XAp,1))。
a5、将蚁群算法第1次搜索时N只蚂蚁的信息素按序构成一个维数为1×N的信息素矩阵,记为In1,In1=[τ(1,1)τ(2,1)…τ(N,1)];其中,τ(1,1)表示蚁群算法第1次搜索时第1只蚂蚁的信息素,τ(2,1)表示蚁群算法第1次搜索时第2只蚂蚁的信息素,τ(N,1)表示蚁群算法第1次搜索时第N只蚂蚁的信息素。
a6、将In1中值最大的信息素对应的蚂蚁确定为蚁群算法第1次搜索时的头蚁,将In1中值最大的信息素对应的蚂蚁的位置作为蚁群算法第1次搜索时的头蚁的位置
a7、确定蚁群算法第1次搜索时第p只蚂蚁的最佳位置为
⑤_5、令g表示蚁群算法的搜索次数,并令gmax表示设定的最大搜索次数;其中,g的初始值为2,2≤g≤gmax,gmax>2,在本实施例中取gmax=100。
⑤_6、获取蚁群算法第g次搜索时每只蚂蚁的位置,将蚁群算法第g次搜索时第p只蚂蚁的位置记为XAp,g,其中,λ表示启发因子,λ∈[0,1],在本实施例中取λ=0.4,XAp,g-1表示蚁群算法第g-1次搜索时第p只蚂蚁的位置,表示蚁群算法第g-1次搜索时的头蚁的位置,表示蚁群算法第g-1次搜索时第p蚂蚁的最佳位置。
⑤_7、确定蚁群算法第g次搜索时的头蚁及其位置,将蚁群算法第g次搜索时的头蚁的位置记为并确定蚁群算法第g次搜索时每只蚂蚁的最佳位置,将蚁群算法第g次搜索时第p只蚂蚁的最佳位置记为
和的获取过程为:
b1、计算蚁群算法第g次搜索时每只蚂蚁的信息素,将蚁群算法第g次搜索时第p只蚂蚁的信息素记为τ(p,g),τ(p,g)=(1-ρ)×τ(p,g-1)+τ(p,1);其中,ρ表示信息素挥发数,ρ∈[0,1],在本实施例中取ρ=0.6,τ(p,g-1)表示蚁群算法第g-1次搜索时第p只蚂蚁的信息素,τ(p,1)表示蚁群算法第1次搜索时第p只蚂蚁的信息素。
b2、构建一个维数为g×N的信息素矩阵,记为Ing,Ing中的第h行中的N个信息素对应为蚁群算法第h次搜索时N只蚂蚁的信息素;其中,1≤h≤g。
b3、将Ing中的第p列中的g个信息素中值最大的信息素对应的蚂蚁的位置确定为蚁群算法第g次搜索时第p只蚂蚁的最佳位置
b4、将Ing中值最大的信息素对应的蚂蚁确定为蚁群算法第g次搜索时的头蚁,将Ing中值最大的信息素对应的蚂蚁的位置作为蚁群算法第g次搜索时的头蚁的位置
b5、对进行精细搜索,得到蚁群算法第g次搜索时的头蚁的新位置,记为其中,Cauchy(0,1)为用于产生0~1之间分布的随机数的函数。
b6、更新将更新后的位置记为再令其中,表示蚁群算法第g次搜索时的头蚁的新位置对应的预测误差,表示蚁群算法第g次搜索时的头蚁的位置对应的预测误差,中的“=”为赋值符号。
在此,的获取过程为:
c1、根据Train中的所有溶解氧数据和蚁群算法第g次搜索时的头蚁的新位置,获取蚁群算法第g次搜索时的头蚁对应的ST个拉格朗日乘子和偏差,对应记为将蚁群算法第g次搜索时的头蚁对应的偏差记为b'obj,和b'obj是根据Train中的所有溶解氧数据和计算得到的;其中,
c2、根据Train中的所有溶解氧数据和蚁群算法第g次搜索时的头蚁的新位置,计算蚁群算法第g次搜索时的头蚁对应的Train中的每个溶解氧数据的估计值,将蚁群算法第g次搜索时的头蚁对应的Train中的第st个溶解氧数据xst的估计值记为其中,表示蚁群算法第g次搜索时的头蚁对应的第i个拉格朗日乘子。
c3、计算蚁群算法第g次搜索时的头蚁的新位置对应的预测误差
在此,的获取过程为:
d1、根据Train中的所有溶解氧数据和蚁群算法第g次搜索时的头蚁的位置,获取蚁群算法第g次搜索时的头蚁对应的ST个拉格朗日乘子和偏差,对应记为将蚁群算法第g次搜索时的头蚁对应的偏差记为bobj,和bobj是根据Train中的所有溶解氧数据和计算得到的;其中,
d2、根据Train中的所有溶解氧数据和蚁群算法第g次搜索时的头蚁的位置,计算蚁群算法第g次搜索时的头蚁对应的Train中的每个溶解氧数据的估计值,将蚁群算法第g次搜索时的头蚁对应的Train中的第st个溶解氧数据xst的估计值记为其中,表示蚁群算法第g次搜索时的头蚁对应的第i个拉格朗日乘子。
d3、计算蚁群算法第g次搜索时的头蚁的位置对应的预测误差
⑤_8、判断g<gmax是否成立,如果成立,则令g=g+1,然后返回步骤⑤_6继续执行;否则,确定蚁群算法搜索结束,得到最终的头蚁的位置,记为XAobj,然后将XAobj对应的位置矢量[cobj,σobj]中的cobj作为最小二乘支持向量机的惩罚因子c的最佳优化值,并将XAobj对应的位置矢量[cobj,σobj]中的σobj作为最小二乘支持向量机的核函数宽度参数σ的最佳优化值;其中,g=g+1中的“=”为赋值符号,表示蚁群算法第gmax次搜索时的头蚁的位置。
⑥根据最小二乘支持向量机的惩罚因子c的最佳优化值cobj和核函数宽度参数σ的最佳优化值σobj,计算Test中的每个溶解氧数据的预测值,将Test中的第r个溶解氧数据的预测值记为其中,1≤r≤S-ST,xST+j表示Test中的第j个溶解氧数据,xST+r表示Test中的第r个溶解氧数据,aj表示Test对应的第j个拉格朗日乘子,b表示Test对应的偏差,aj和b是根据Test中的所有溶解氧数据及cobj和σobj,计算得到的,
为了验证本发明方法的可行性和有效性,对本发明方法进行试验。
在某南美白对虾养殖池塘,于2015年9月12日、13日两天,将溶解氧传感器采集的所有溶解氧数据构成原始溶解氧数据序列;对原始溶解氧数据序列进行预处理,得到预处理后的溶解氧数据序列,预处理后的溶解氧数据序列包含1400个溶解氧数据;预处理后的溶解氧数据序列中的前980(1400×70%=980)个溶解氧数据构成训练集,预处理后的溶解氧数据序列中剩余的420(1400×30%=420)个溶解氧数据构成测试集;设N=120,gmax=100,λ=0.4,ρ=0.6,根据训练集中的980个溶解氧数据,利用蚁群算法优化最小二乘支持向量机的惩罚因子和核函数宽度参数,得到最小二乘支持向量机的惩罚因子的最佳优化值为61和核函数宽度参数的最佳优化值为1.22;根据最小二乘支持向量机的惩罚因子c的最佳优化值61和核函数宽度参数σ的最佳优化值1.22,计算测试集中的每个溶解氧数据的预测值。
采用均方根误差(RMSE)和平均误差(MAPE)作为溶解氧数据的预测值的误差标准,其中,x980+j表示预处理后的溶解氧数据序列中的第980+j个溶解氧数据,即为测试集中的第j个溶解氧数据,表示预处理后的溶解氧数据序列中的第980+j个溶解氧数据的预测值,即为测试集中的第j个溶解氧数据的预测值,符号“||”为取绝对值符号。
为验证本发明方法的有效性,分别采用BP神经网络的溶解氧预测方法、传统蚁群算法优化最小二乘支持向量机的溶解氧预测方法(ACO-LSSVM)和本发明方法(CAC0-LSSVM)对上述的原始溶解氧数据序列进行处理,溶解氧数据的预测值的误差标准如表1所列。
表1采用不同的溶解氧预测方法,得到的溶解氧数据的预测值的误差标准
从表1中可知,本发明方法的均方根误差(RMSE)和平均误差(MAPE)均低于现有的两种溶解氧预测方法,说明采用本发明方法预测得到的溶解氧数据的预测值的精度更高,足以说明本发明方法是有效的。
机译: 改进蚁群算法优化顺应机制阶段的方法和装置
机译: 真空脱气过程中溶解氧量的预测方法
机译: 真空脱气过程中溶解氧量的预测方法