孟廣雙 高德東
(①唐山工業(yè)職業(yè)技術(shù)學(xué)院,河北 唐山 063299;②青海大學(xué)機(jī)械工程學(xué)院,青海 西寧 810016)
蝴蝶優(yōu)化算法[1](butterfly optimization algorithm,BOA)是Arora 等于2019 年根據(jù)蝴蝶的覓食行為而提出的一種智能優(yōu)化算法,具有結(jié)構(gòu)簡單、參數(shù)設(shè)置少及容易實現(xiàn)等特點,目前已在很多優(yōu)化問題的求解領(lǐng)域得到了應(yīng)用[2-4]。雖較其他一些智能算法性能更優(yōu),但BOA 算法同樣存在有其他智能優(yōu)化算法共性的缺點,即容易陷入局部最優(yōu)、后期收斂精度不高等。為此,一些學(xué)者也針對上述缺點對BOA 進(jìn)行了一系列的改進(jìn)研究和實際應(yīng)用工作[5-8],在提高BOA 算法性能和增強(qiáng)實際應(yīng)用效果方面具有重要意義。
冗余機(jī)械臂逆運動學(xué)求解是實現(xiàn)機(jī)械臂運動控制、軌跡規(guī)劃和動力學(xué)分析等問題的前提,但求解過程具有高耦合、非線性等特點,數(shù)值法、幾何法和迭代法等常規(guī)解法對其進(jìn)行準(zhǔn)確的求解較為困難[9-10]。隨著智能優(yōu)化算法的發(fā)展,一些學(xué)者將機(jī)械臂逆運動學(xué)求解問題轉(zhuǎn)化為復(fù)雜函數(shù)的極值優(yōu)化問題,而后通過智能優(yōu)化算法進(jìn)行問題求解,如相繼提出的機(jī)械臂逆運動學(xué)求解的動態(tài)變步長果蠅優(yōu)化算法[11]、混合變異克隆選擇算法[12]、自適應(yīng)動態(tài)查分進(jìn)化算法[13]和改進(jìn)人工蜂群算法[14]等,都實現(xiàn)了求解精度和求解速度的雙提升。
由于每一種優(yōu)化策略都有自身的優(yōu)勢和不足,實現(xiàn)不同優(yōu)化策略的融合和優(yōu)勢互補(bǔ),是提升智能優(yōu)化算法性能的有效途徑。本文在研究BOA 算法的基礎(chǔ)上,以冗余機(jī)械臂逆運動學(xué)求解為工程應(yīng)用背景,從動態(tài)轉(zhuǎn)換概率、最優(yōu)鄰域擾動和隨機(jī)慣性權(quán)重這3 個角度對BOA 進(jìn)行改進(jìn)設(shè)計,提出了改進(jìn)蝴蝶優(yōu)化算法(improved butterfly optimization algorithm,IBOA)。IBOA 算法采用動態(tài)轉(zhuǎn)換概率策略來控制蝴蝶進(jìn)入全局搜索階段還是局部搜索階段;在全局搜索階段采用最優(yōu)鄰域擾動策略來擴(kuò)大搜索范圍,提升收斂精度和跳出局部最優(yōu);在局部搜索階段采用隨機(jī)慣性權(quán)重策略來增強(qiáng)局部搜索能力。典型測試函數(shù)測試結(jié)果和冗余機(jī)械臂逆運動學(xué)求解工程應(yīng)用結(jié)果均顯示了IBOA 的性能更優(yōu)。
在BOA 算法中,蝴蝶的移動方式可分為兩種,一種是在給定的范圍內(nèi)隨機(jī)移動,另一種是向香氣更濃的蝴蝶所在位置移動。這兩種移動方式分別被看成是局部搜索階段和全局搜索階段。BOA 算法雖然在性能上比其他一些優(yōu)化算法更優(yōu),但同樣存在有陷入局部最優(yōu)、后期收斂精度不高等問題,為提高BOA 算法的性能,本文從3 個方面對BOA 進(jìn)行改進(jìn)設(shè)計,提出IBOA 算法。
在BOA 算法中,蝴蝶進(jìn)入全局搜索階段或是局部搜索階段是由轉(zhuǎn)換概率p決定的,一般情況下,它為一個事先設(shè)定的固定值,這就使得算法后期的收斂速度得不到保證。因此,本文將轉(zhuǎn)換概率p調(diào)整為一個動態(tài)變化的值,從而提高算法后期的收斂速度。本文設(shè)計的動態(tài)轉(zhuǎn)換概率公式為

其中:Tmax和t分別表示最大迭代次數(shù)和當(dāng)前迭代次數(shù)。
由式(1)可知,轉(zhuǎn)換概率p實現(xiàn)了隨迭代次數(shù)的增加而動態(tài)調(diào)整,p大于生成的[0,1]之間隨機(jī)數(shù)r時,則進(jìn)入全局搜索階段;反之,則進(jìn)入局部搜索階段。
在BOA 算法中,蝴蝶進(jìn)入全局搜索階段時,其位置更新方式?jīng)Q定了所有蝴蝶會朝著最優(yōu)蝴蝶所在位置方向飛去,這就容易導(dǎo)致蝴蝶種群的多樣性降低,因此,在全局搜索階段,需要對最優(yōu)位置進(jìn)行鄰域擾動,加強(qiáng)對鄰域空間的搜索,確保能夠跳出局部最優(yōu)。最優(yōu)鄰域擾動策略公式為

對位置進(jìn)行擾動后,相當(dāng)于在原最優(yōu)位置附近做了一次局部搜索。如果得到的新位置比原來位置更優(yōu)(即適應(yīng)度值更好),則利用新位置對原位置進(jìn)行替換;反之,如果得到的新位置比原來位置更差,則最優(yōu)位置不發(fā)生變動。通過鄰域擾動,就實現(xiàn)了對鄰域空間的搜索,確保真實的最優(yōu)位置能夠被找到,從而跳出局部最優(yōu)。
在BOA 算法中,蝴蝶進(jìn)入局部搜索階段后,雖是隨機(jī)搜索,但仍主要是受前一位置影響且影響程度保持不變,這就容易導(dǎo)致在后期易容陷入局部最優(yōu),因此,在局部搜索階段,需要通過隨機(jī)慣性權(quán)重來改變前一位置對當(dāng)前位置更新的影響。本文設(shè)計的隨機(jī)慣性權(quán)重計算公式為

其中:μmax和 μmin為慣性權(quán)重的上下限;rand為隨機(jī)數(shù),在[0,1]范圍內(nèi)取值。這樣,就可以將局部搜索階段中蝴蝶的位置更新方式調(diào)整為

由式(4)可知,ω實現(xiàn)了蝴蝶前一位置對擬更新位置的調(diào)控,ω取值較大時,蝴蝶擬更新位置受前一位置影響就較大;ω取值較小時,蝴蝶擬更新位置受前一位置影響就較小。
通過在BOA 算法中引入上述3 個改進(jìn)策略,即可得到IBOA 算法,其主要流程如圖1 所示,具體步驟如下:

圖1 IBOA 流程圖
(1)設(shè)置蝴蝶種群的規(guī)模N、搜索空間的維度D、最大迭代次數(shù)Tmax、為慣性權(quán)重上下限 μmax和μmin等參數(shù)。
(2)在搜索空間范圍內(nèi)隨機(jī)確定種群的初始位置。
(3)計算每只蝴蝶的適應(yīng)度值,選出本次迭代中最優(yōu)適應(yīng)度值即對應(yīng)的蝴蝶位置。同時,在[0,1]范圍內(nèi)生成隨機(jī)數(shù)r。
(4)計算動態(tài)轉(zhuǎn)換概率p,當(dāng)p>r時,進(jìn)入全局搜索階段,按照最優(yōu)鄰域擾動策略進(jìn)行位置更新;當(dāng)p≤r時,進(jìn)入局部搜索階段,按照隨機(jī)慣性權(quán)重策略進(jìn)行位置更新。
(5)判定是否達(dá)到了迭代停止條件,如是,則結(jié)束結(jié)束,如否,則范圍步驟(3)繼續(xù)迭代。
為驗證本文IBOA 的性能,本文通過表1 所示的3 個基準(zhǔn)測試函數(shù)對其性能進(jìn)行測試。同時,將IBOA 算法和標(biāo)準(zhǔn)BOA 算法以及幾種改進(jìn)型BOA算法進(jìn)行對比分析。幾種改進(jìn)型BOA 算法分別來源于文獻(xiàn)[5-7],在本文中依次稱為IBOA-5、IBOA-6 和IBOA-7。在所有方法中,蝴蝶種群的規(guī)模和最大迭代次數(shù)分別設(shè)置為50 和500,IBOA-5、IBOA-6和IBOA-7 需要的其他參數(shù)均按照原文獻(xiàn)進(jìn)行設(shè)置。

表1 測試函數(shù)
分別利用上述5 種方法對3 個基準(zhǔn)測試函數(shù)在30 維和50 維下進(jìn)行50 次獨立的極值求解,得到相關(guān)統(tǒng)計結(jié)果如表2 所示。分析表2 中結(jié)果可知,對于3 個基準(zhǔn)測試函數(shù),無論是在30 維或是100 維下,IBOA 算法在50 次獨立計算中都找到了其理論極值且標(biāo)準(zhǔn)差為0,而其余4 種方法中沒有一種方法求到了理論極值,這說明本文的IBOA 算法在收斂精度和計算穩(wěn)定性上均比其余3 種改進(jìn)型BOA算法和標(biāo)準(zhǔn)BOA 算法要好,體現(xiàn)了IBOA 尋優(yōu)精度高、計算穩(wěn)定的優(yōu)點。

表2 5 種方法求解結(jié)果
圖2 給出了5 種方法對3 個函數(shù)在30 維下理論極值的搜索迭代過程(對適應(yīng)度值取以10 為底的對數(shù)),從中可以看出,與另外4 種算法相比,本文所提IBOA 算法速度更快、收斂精度更高,特別是對于Rastrigin 和Griewank 這兩個多峰值函數(shù),其曲線呈現(xiàn)出明顯的線性下降趨勢,在迭代次數(shù)較少的情況下就完成了收斂,這也進(jìn)一步說明IBOA沒有陷入局部最優(yōu)且搜索能力極強(qiáng)。

圖2 搜索迭代曲線
本文以YuMi-14000-ABB 型機(jī)械臂為研究對象,建立逆運動學(xué)求解模型。該機(jī)械臂左臂的D-H 連桿坐標(biāo)系如圖3 所示,D-H 連桿坐標(biāo)系的參數(shù)如表3所示。

圖3 YuMi-14000-ABB 機(jī)械臂

表3 D-H 參數(shù)
對于關(guān)節(jié)i,根據(jù)表1 中的相關(guān)D-H 參數(shù),可得其齊次變換矩陣為

其中:sθi和 cθi分別表示 sinθi和 cosθi;sαi和 cαi分別表示 sinαi和 cosαi。根據(jù)正運動學(xué),可得機(jī)械臂末端執(zhí)行器的位姿矩陣與各關(guān)節(jié)變量之間的關(guān)系為

由此可知,該型7 自由度機(jī)械臂的正運動學(xué)方程是與7 個關(guān)節(jié)變量為自變量的復(fù)雜函數(shù)。在機(jī)械臂逆運動學(xué)求解中,需要對 θ1~θ7等7 個關(guān)節(jié)角進(jìn)行求解,假設(shè)期望的機(jī)械臂末端執(zhí)行器的位姿矩陣為


由于方向誤差與角度有關(guān)、位置誤差與長度有關(guān),二者不是同一量綱,在實際求解過程中就會造成兩種誤差收斂不平衡,為均衡兩種誤差的收斂,引入調(diào)整因子 λ,可得修正后的逆運動學(xué)求解適應(yīng)度函數(shù)為

為了驗證IBOA 算法在冗余機(jī)械臂逆運動學(xué)求解中的有效性,將IBOA 的優(yōu)化求解結(jié)果同參考文獻(xiàn)[10]中的混合果蠅優(yōu)化算法(HLFOA)、參考文獻(xiàn)[12]中的混合克隆變異算法(HMCSA)、參考文獻(xiàn)[13]中的自適應(yīng)動態(tài)差分進(jìn)化算法(ADDEA)、參考文獻(xiàn)[14] 中的改進(jìn)人工蜂群算法(IABC)以及BOA 算法進(jìn)行對比分析。所有算法的種群規(guī)模和最大迭代次數(shù)分別設(shè)置為50 和500,誤差調(diào)整因子 λ設(shè)置為0.01,HLFOA、HMCSA、ADDEA和IABC等算法的相關(guān)參數(shù)均按照原文獻(xiàn)推薦設(shè)置。
給定YuMi-14000-ABB 型機(jī)械臂一個期望位姿為

利用上述各算法分別進(jìn)行10 次獨立運算,可得各算法得到的最優(yōu)適應(yīng)度值、平均適應(yīng)度值和標(biāo)準(zhǔn)差等統(tǒng)計結(jié)果如表4 所示,最優(yōu)適應(yīng)度值對應(yīng)下的逆解所對應(yīng)的位姿誤差如表5 所示,各算法的最優(yōu)適應(yīng)度值收斂曲線如圖4 所示。
由表4 中可知,IBOA 求得的最優(yōu)適應(yīng)度值、平均適應(yīng)度值和標(biāo)準(zhǔn)差,在5 種方法中均是最優(yōu)的,都達(dá)到了10-18,比其余5 種方法均要高,這說明IBOA 對機(jī)械臂逆運動學(xué)解得求解精度和計算穩(wěn)定性要比其余4 種方法更好。從表5 種可知,IBOA方法得到的最優(yōu)逆解對應(yīng)的位置誤差和方向誤差分量最大分別為10-18和10-17級,是5 種方法中最優(yōu)的,這說明IBOA 得到的最優(yōu)逆解能夠讓機(jī)械臂更趨近于期望位姿,從而減小誤差。從圖4 中可知,IBOA 的適應(yīng)度值迭代曲線的下降速度最快,且在停止迭代后,位置處于最下方,這說明IBOA 的收斂速度和求解精度均優(yōu)于其他算法。

表4 給定期望位姿下各算法計算結(jié)果

表5 各算法位姿誤差

圖4 給定期望位姿下適應(yīng)度值收斂曲線
為進(jìn)一步驗證IBOA 在冗余機(jī)械臂逆運動學(xué)求解中的泛化能力,對于YuMi-14000-ABB 型機(jī)械臂位姿空間的10 個任意期望位姿,利用上述算法進(jìn)行求解的結(jié)果如表6 所示,收斂曲線如圖5 所示。

表6 任意期望位姿下各算法計算結(jié)果

圖5 任意期望位姿下適應(yīng)度值收斂曲線
從表6 中可知,對于任意給定的機(jī)械臂期望位姿,IBOA 的計算結(jié)果均可達(dá)到10-18數(shù)量級,是5種方法中最高的,較結(jié)果已經(jīng)很優(yōu)的HLFOA 的10-16數(shù)量級和HMCSA 的10-15數(shù)量級,都有所提高;雖然ADDEA 和IABC 適應(yīng)度值得數(shù)量級也在10-13和10-9,但平均適應(yīng)度值和標(biāo)準(zhǔn)差指標(biāo)并不是很理想,以上結(jié)果說明IBOA 所得結(jié)果對應(yīng)的逆解得到了很高的位姿精度,可以有效減少誤差。從圖5 中可知,對于任意給定的機(jī)械臂期望位姿,IBOA 適應(yīng)度值迭代曲線的下降速度同樣最快且處于最下方,這說明其更適用于冗余機(jī)械臂的逆運動學(xué)求解。
在研究BOA 算法的基礎(chǔ)上,提出一種IBOA算法。IBOA 算法融入了動態(tài)轉(zhuǎn)換概率策略、最優(yōu)鄰域擾動策略和隨機(jī)慣性權(quán)重策略等3 種策略,實現(xiàn)了算法收斂速、收斂精度的提升,克服了BOA算法易陷入局部最優(yōu)、后期收斂精度不高的問題。利用3 個基準(zhǔn)測試函數(shù)對IBOA 的性能進(jìn)行了驗證;將IBOA 算法應(yīng)用于冗余機(jī)械臂的逆運動學(xué)求解中,獲得了更高的收斂精度和求解穩(wěn)定性。