郭煜
(陜西郵電職業(yè)技術(shù)學(xué)院,陜西 咸陽 712000)
代數(shù)方程組參數(shù)迭代求解的研究背景具體如下:代數(shù)方程組的相關(guān)問題及其求解一直是一個重要而又基礎(chǔ)的問題[1]。這是由于在多個領(lǐng)域包括動力學(xué)、信息安全學(xué)、經(jīng)濟學(xué)、工程技術(shù)學(xué)等領(lǐng)域,很多實際問題的解決最終都需要轉(zhuǎn)化成代數(shù)方程組的求解問題,其中較為常用的是非線性多變元代數(shù)方程組[2]。對實系數(shù)高次代數(shù)方程組的根進行求解,對綜合設(shè)計以及分析控制系統(tǒng)有重大意義;在很多實際應(yīng)用與數(shù)學(xué)理論中,求解代數(shù)方程組則是一個基礎(chǔ)的步驟[3]。對于代數(shù)方程組參數(shù)迭代求解的研究,近年來,很多學(xué)者都將具備高度全局性、并行性、魯棒性、適應(yīng)性的算法引入了代數(shù)方程組參數(shù)迭代求解方法的研究中[4]。國內(nèi)外已有相關(guān)學(xué)者提出了代數(shù)方程組參數(shù)迭代求解方法。Praks P 等人提出基于蟻群算法的代數(shù)方程組參數(shù)迭代求解方法,主要通過蟻群算法實現(xiàn)代數(shù)方程組的參數(shù)迭代求解[5]。王曉雷等人提出基于支持向量機的代數(shù)方程組參數(shù)迭代求解方法,主要通過支持向量機算法及人工神經(jīng)網(wǎng)絡(luò)實現(xiàn)代數(shù)方程組的參數(shù)迭代求解[6]。
由于在利用以上方法進行代數(shù)方程組的參數(shù)迭代求解時,在迭代次數(shù)為20次-90次的范圍內(nèi)存在求解速度較慢的問題,因此將人工魚群算法引入代數(shù)方程組參數(shù)迭代求解中,提出基于人工魚群算法的代數(shù)方程組參數(shù)迭代求解方法。
將代數(shù)方程組中包含的方程組個數(shù)設(shè)為n個,也就是求解中涉及的未知量個數(shù)為n個,構(gòu)建代數(shù)方程組模型[5-6]如式(1):
式(1)中fn(X)=An代表多元代數(shù)方程;X代表代數(shù)方程組內(nèi)的未知向量集合,其表達(dá)式具體如式(2)所示;An代表代數(shù)方程內(nèi)的常數(shù)項[7]。
式(2)中xn代表未知向量集合中第n個未知向量。
令下式成立:
式(3)中i代表正整數(shù);F(X)代表代數(shù)方程。
則代數(shù)方程組參數(shù)迭代求解問題即可轉(zhuǎn)化為求X使代數(shù)方程具備最小值的一種優(yōu)化類型問題[8]。
利用人工魚群算法對代數(shù)方程組求解中的行為進行描述,包括隨機行為、覓食行為、聚群行為、追尾行為。首先對人工魚群算法內(nèi)具體人工魚狀態(tài)進行定義:利用X=[x1,x2,…,xn]表示人工魚狀態(tài)。用F(X)代表食物濃度函數(shù),將Xi人工魚與Xj人工魚的距離定義為:
式(4)中di,j代表Xi人工魚與Xj人工魚的距離;xik代表第k群人工魚。通過人工魚群算法優(yōu)化求X使代數(shù)方程具備最小值的問題。
對隨機行為進行的描述具體如下:
將當(dāng)前人工魚的狀態(tài)設(shè)為Xi,當(dāng)該人工魚為當(dāng)前魚群內(nèi)的最優(yōu)狀態(tài),那么采取個體最優(yōu)保留策略后下一狀態(tài)是:
否則下一狀態(tài)是:
式(6)中Step代表最大人工魚移動步長;(-Step,Step)代表實數(shù)區(qū)間;Random(-Step,Step)代表該區(qū)間中隨機數(shù)構(gòu)成的隨機n維向量。
對覓食行為進行的描述具體如下:
將當(dāng)前人工魚的狀態(tài)設(shè)為Xi,在它的可視域范圍中對某一狀態(tài)進行隨機選擇,將該狀態(tài)表示為Xj,也就是二者的距離小于人工魚的實際可視距離。當(dāng):
則表示選擇的隨機狀態(tài)優(yōu)于當(dāng)前人工魚的狀態(tài)。接著使用選擇的隨機狀態(tài)將當(dāng)前人工魚的狀態(tài)替換掉,也就是:
當(dāng):
則在當(dāng)前人工魚的可視域范圍中重新對某一狀態(tài)進行隨機選擇,繼續(xù)進行判斷。
當(dāng)試探Try_number以后還是無法滿足式(7)的Xj狀態(tài),那么對隨機行為進行執(zhí)行。
對聚群行為進行的描述具體如下:
將當(dāng)前人工魚的狀態(tài)設(shè)為Xi,在它的可視域范圍中對其中的伙伴個數(shù)nf與全部伙伴的中心位置Xc進行尋找。當(dāng):
則表示中心位置Xc比當(dāng)前人工魚的狀態(tài)優(yōu)越。此時中心位置Xc與當(dāng)前人工魚的狀態(tài)距離滿足下式:
式(11)中di,c代表中心位置Xc與當(dāng)前人工魚的狀態(tài)距離;Visual代表人工魚的實際可視距離。
則下式成立:
否則對覓食行為進行執(zhí)行。
對追尾行為進行的描述具體如下:
將當(dāng)前人工魚的狀態(tài)設(shè)為Xi,在它的可視域范圍中對最優(yōu)群體狀態(tài)Xmin及其其周邊伙伴數(shù)量mf進行尋找。當(dāng):
則表示最優(yōu)群體狀態(tài)Xmin比當(dāng)前人工魚的狀態(tài)優(yōu)越。此時,如果最優(yōu)群體狀態(tài)Xmin與當(dāng)前人工魚狀態(tài)的距離滿足下式:
式(14)中di,min代表最優(yōu)群體狀態(tài)Xmin與當(dāng)前人工魚狀態(tài)的距離。
則下式成立:
否則對覓食行為進行執(zhí)行。
將執(zhí)行人工魚群算法的過程分成前期與后期,在前期采取較大的可視距離與移動步長,以獲取較優(yōu)的結(jié)果;而在后期則選擇較小的可視距離與移動步長,以獲取較高精度的結(jié)果,實施分段優(yōu)化。在前期取的可視距離是Visualf,移動步長是Stepf。將η作為后期與前期的分界線,當(dāng)分界線大于公告板時,進入后期的階段,取的可視距離是Visuals,移動步長是Steps。
終止條件設(shè)為精度的求解值,當(dāng)公告板記錄符合精度求解要求則終止算法。
通過六個步驟實現(xiàn)代數(shù)方程組參數(shù)迭代求解,具體執(zhí)行步驟如下:
(1)對人工魚群算法的參數(shù)進行輸入:可視距離、移動步長、群體規(guī)模、擁擠度因子、試探次數(shù)、初始人工魚群體數(shù)。
(2)尋找當(dāng)前群體內(nèi)的最優(yōu)狀態(tài)并將其記入公告板。
(3)對公告板記錄中食物濃度狀態(tài)進行判斷,判斷其是否滿足下式:
式(16)中F(XO)代表公告板記錄中食物濃度;η代表群體規(guī)模。當(dāng)滿足則進入后期階段;當(dāng)不滿足則繼續(xù)此階段中的優(yōu)化。
(4)對是否符合終止條件進行判斷。當(dāng)滿足,則對公告板記錄XO進行輸出并對算法進行終止;當(dāng)不滿足,則進入第五個步驟。
(5)分別對每條人工魚實施追尾行為與模擬聚群行為,將最優(yōu)行為當(dāng)作最終執(zhí)行行為。而隨機行為與覓食行為則屬于缺省行為。
(6)找到最優(yōu)群體狀態(tài)并將比較其與公告板記錄。當(dāng)其優(yōu)于后者,則對其進行替換,并轉(zhuǎn)向第三個步驟。
為證明設(shè)計的基于人工魚群算法的代數(shù)方程組參數(shù)迭代求解方法的性能,對其進行代數(shù)方程組參數(shù)迭代求解實驗驗證。在實驗中,通過Matlab6.0對基于人工魚群算法的代數(shù)方程組參數(shù)迭代求解方法進行編程實現(xiàn),使用的編程程序具體如圖1所示。
圖1 使用的編程程序
實驗中使用的兩個例子具體如下:
第一個例子:
此處參數(shù)取值具體如下式:
式(18)中δ 代表擁擠度因子;Try_number 代表試探次數(shù);N代表初始人工魚群體數(shù)。
設(shè)定的最大迭代次數(shù)是一百次。
第二個例子:
其終止條件具體如下式:
此處參數(shù)取值具體如下式:
利用基于人工魚群算法的代數(shù)方程組參數(shù)迭代求解方法對實驗中的例子進行參數(shù)迭代求解。獲取迭代次數(shù)為20次-90 次范圍內(nèi)的求解速度作為實驗數(shù)據(jù)。為避免本次實驗結(jié)果較為單一、缺乏對比性,將原有的三種參數(shù)迭代求解方法作為實驗中的對比方法,分別為基于蟻群算法、基于支持向量機、基于人工神經(jīng)網(wǎng)絡(luò)的代數(shù)方程組參數(shù)迭代求解方法。同樣利用這三種方法進行實驗例子的參數(shù)迭代求解。獲取迭代次數(shù)為20 次-90 次范圍內(nèi)的求解速度數(shù)據(jù)作為對比實驗數(shù)據(jù)。
在求解方程組的取值在迭代次數(shù)為20 次-90 次的范圍內(nèi),基于人工魚群算法的代數(shù)方程組參數(shù)迭代求解方法與基于蟻群算法、基于支持向量機、基于人工神經(jīng)網(wǎng)絡(luò)的代數(shù)方程組參數(shù)迭代求解方法第一個例子的求解速度對比實驗數(shù)據(jù)具體如表1所示。
表1 第一個例子的求解速度對比實驗數(shù)據(jù)
根據(jù)表1中第一個例子的求解速度對比實驗數(shù)據(jù)可知,基于人工魚群算法的代數(shù)方程組參數(shù)迭代求解方法的求解速度高于基于蟻群算法、基于支持向量機、基于人工神經(jīng)網(wǎng)絡(luò)的代數(shù)方程組參數(shù)迭代求解方法。
在迭代次數(shù)為20次-90次的范圍內(nèi),基于人工魚群算法的代數(shù)方程組參數(shù)迭代求解方法與基于蟻群算法、基于支持向量機、基于人工神經(jīng)網(wǎng)絡(luò)的代數(shù)方程組參數(shù)迭代求解方法第二個例子的求解速度對比實驗數(shù)據(jù)具體如表2所示。
表2 第二個例子的求解速度對比實驗數(shù)據(jù)
根據(jù)表2中第二個例子的求解速度對比實驗數(shù)據(jù)可知,基于人工魚群算法的代數(shù)方程組參數(shù)迭代求解方法的求解速度高于基于蟻群算法、基于支持向量機、基于人工神經(jīng)網(wǎng)絡(luò)的代數(shù)方程組參數(shù)迭代求解方法。
基于人工魚群算法的代數(shù)方程組參數(shù)迭代求解方法實現(xiàn)了求解速度的提升,對于代數(shù)方程組參數(shù)迭代求解方法局限性的突破有很大啟示意義。