国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于靜電勢場法改進(jìn)的蟻群算法用于路徑規(guī)劃

2020-06-13 06:56尤潤川
電子技術(shù)與軟件工程 2020年2期
關(guān)鍵詞:靜電勢蟻群移動機器人

文/尤潤川

(湖北工業(yè)大學(xué) 湖北省武漢市 430068)

近年來,智能自主移動機器人得到了廣泛的關(guān)注。在機器人技術(shù)中導(dǎo)航任務(wù)十分復(fù)雜,其中路徑規(guī)劃是非常重要的一項技術(shù)。移動機器人的路徑規(guī)劃指的是確定移動機器人如何安全地到達(dá)目標(biāo)的策略,以確保避免障礙[1]。

針對移動機器人路徑規(guī)劃的問題,國內(nèi)外學(xué)者做了很多方面的研究。文獻(xiàn)[2]中引入激勵函數(shù)改進(jìn)基本蟻群算法的啟發(fā)函數(shù),增強了路徑平滑性,降低搜索過程的死鎖現(xiàn)象,文獻(xiàn)[3]中利用機器人當(dāng)前朝向和下一次位置的方位之間的夾角來改變螞蟻的轉(zhuǎn)移概率,不僅增強了路徑的平滑性,也縮短了路徑的長度。文獻(xiàn)[4]中提出了靜電勢場法用于路徑規(guī)劃,和人工勢場法不同的是,靜電勢場是標(biāo)量場只有大小沒有方向,便于計算,降低了路徑規(guī)劃過程中計算的復(fù)雜度,縮短了路徑規(guī)劃的時間。

本文將蟻群算法與靜電勢場法結(jié)合,將靜電勢場函數(shù)引入蟻群算法的啟發(fā)函數(shù)中,不僅考慮下一個節(jié)點到目標(biāo)點的距離,還考慮障礙物的影響,增加初始搜索階段的目的性;加入回退機制,減少蟻群算法容易死鎖的問題;將揮發(fā)因子設(shè)置為動態(tài)的,增強初始階段的搜索能力,同時保證后期的收斂速度。

1 基本的蟻群算法

1.1 環(huán)境的建模

本文主要研究二維平面內(nèi)移動機器人的路徑規(guī)劃問題,不考慮環(huán)境中障礙物以及機器人的高度,采用柵格法對環(huán)境進(jìn)行建模,將環(huán)境抽象為一個二維平面,根據(jù)移動機器人的大小和步長將平面分為若干個等大的正方形柵格,如圖1所示。

柵格編號與坐標(biāo)的轉(zhuǎn)換公式如下:

其中a為柵格的邊長,mod為取余運算,Ni為柵格編號,l為每行柵格的個數(shù)。ceil為向上取整運算。同時將障礙物也抽象為柵格,黑色的柵格表示障礙物。為了防止障礙物與機器人的碰撞,對障礙物進(jìn)行膨脹處理,使障礙物的邊界向外膨脹,膨脹的寬度為機器人的半徑。機器人所在位置在沒有障礙的情況下有8個可移動的位置。

1.2 蟻群算法的基本原理

首例蟻群算法由Dorigo提出,被稱為螞蟻系統(tǒng)[5]。在螞蟻系統(tǒng)中,最核心的是轉(zhuǎn)移概率,表示螞蟻從點i移動到點j的概率,計算公式如下:

其中djE表示位置j到位置E的距離。α,β分別表示信息素濃度和啟發(fā)式信息對轉(zhuǎn)移概率的影響程度,體現(xiàn)了螞蟻對記憶的優(yōu)質(zhì)路徑和先驗知識的傾向性。

當(dāng)一代螞蟻全部從起點移動到終點或者走到?jīng)]有位置可以移動的節(jié)點,表示這一代螞蟻工作結(jié)束,開始對信息素進(jìn)行更新。更新公式為:

其中t表示迭代次數(shù),ρ表示信息素?fù)]發(fā)系數(shù),m表示每代螞蟻的數(shù)量,Q是一個常數(shù),表示一只螞蟻在所在路徑上釋放的信息素,Lk表示螞蟻所走過完整路徑的長度。

2 靜電勢場法

靜電勢場法同樣以柵格法對環(huán)境建模,然后對每個障礙物建立勢場函數(shù),把每個障礙物看做是帶正電荷的粒子,在周圍產(chǎn)生勢場,勢場函數(shù)為:

其中(xi,yi)表示編號為i的障礙物的中心坐標(biāo),βi是與障礙物的面積成反比。

Ai表示編號為i障礙物的面積,將所有障礙物的勢場函數(shù)累加得到下式。

建立勢場函數(shù)意在使移動機器人盡量避開勢場高的地方,從而找到一條沒碰撞的路徑。然而這樣并不能保證能夠找到一條比較優(yōu)質(zhì)到達(dá)目標(biāo)點的路徑,因此定義代價函數(shù):

通過找到當(dāng)前位置周圍8個位置上代價函數(shù)最低的位置作為下一次移動的位置,重復(fù)這個過程,直到到達(dá)終點。

圖1:柵格法環(huán)境建模

圖2:死鎖示意圖

3 基于電勢場法的蟻群算法

利用傳統(tǒng)的蟻群算法進(jìn)行路徑規(guī)劃時,前幾代螞蟻留下的信息素少,同時初始化信息素是平均分配的,螞蟻在尋找路徑的過程中,主要在啟發(fā)函數(shù)的作用下進(jìn)行移動,避障能力較弱,效率低下,很多路徑都是在重復(fù)無用的搜索。因此本文對啟發(fā)函數(shù)進(jìn)行改進(jìn),讓算法早期的搜索更有目的性,不僅具有向目標(biāo)點搜索的能力,同時也能具有避開障礙物的能力。在蟻群算法前期,需要快速的找到可行解,不需要過度要求路徑的長度,使用靜電勢場法快速避障的特點,快速找到可行的解。到了蟻群算法后期,要得到更高質(zhì)量的路徑,即蟻路徑長度要求盡可能的短,因此要降低靜電勢場的影響,使路徑不是主要繞行障礙,而是能夠盡快到達(dá)目標(biāo)點,后期就要降低啟發(fā)函數(shù)中靜電勢場的影響值。改進(jìn)的啟發(fā)函數(shù)如下式:

傳統(tǒng)的蟻群算法在前期的搜索過程中盲目性強,在地形復(fù)雜的環(huán)境中,如U形障礙,容易陷入死鎖,導(dǎo)致本次螞蟻搜索無效。

如圖2所示,移動機器人在R所標(biāo)注的位置,當(dāng)其向圖示方向移動時就會陷入死鎖問題。當(dāng)移動機器人從位置R移動到位置1時,它下一次移動的位置只能是位置2,到達(dá)位置2陷入死鎖,此時采用回退機制,讓移動機器人回退到位置1,位置2加入禁忌表中,然后發(fā)現(xiàn)移動機器人依然沒有位置可以移動,繼續(xù)回退,退到位置R,將位置1加入禁忌表中,移動機器人回到位置R,可以正常移動。同時對位置R到位置1,位置1到位置2進(jìn)行懲罰,使其信息素含量降低50%,避免下一只螞蟻進(jìn)入死鎖。

傳統(tǒng)的蟻群算法中,在一代螞蟻全部移動到終點或出現(xiàn)死鎖的情況之后再對信息素進(jìn)行更新,所有的螞蟻走過的路徑信息素都會增加,然而早期螞蟻的路徑的隨機性強,所走出來的路徑不夠優(yōu)質(zhì),因此沒有必要將所有的路徑都進(jìn)行信息素的更新,只需要選擇其中路徑相對較短的路徑進(jìn)行信息素的更新,使算法更快收斂,更新公式如下式。

蟻群算法前幾代螞蟻的路徑的參考價值相對較低,這里動態(tài)的改變信息素?fù)]發(fā)因子的ρ,使其在蟻群算法早期有一個相對較大的值,降低蟻群算法前期的信息素對轉(zhuǎn)移概率的影響,然而到后期有一個相對較小的值使信息素對轉(zhuǎn)移概率的影響較大,加快收斂速度?;陟o電勢場法的蟻群算法路徑規(guī)劃步驟如下:

(1)初始化參數(shù),用矩陣G表示已知的環(huán)境模型,確定起始點S和終點E,通過式(1)計算出障礙物的坐標(biāo)。設(shè)定表示信息素和啟發(fā)函數(shù)重要程度的參數(shù)α,β,種群數(shù)量為M,迭代次數(shù)上限為K。初始化信息素強度Tau,設(shè)定信息素增強系數(shù)為Q。

圖3:改進(jìn)前后的蟻群算法在障礙物較多的環(huán)境下仿真結(jié)果

(2)螞蟻種群從起始位置出發(fā),獲取可行節(jié)點,通過式(2)建立概率分布律,利用輪判賭的方式選擇當(dāng)前這只螞蟻移動的下一個位置,螞蟻移動到所選擇的位置,并將上一個位置加入禁忌表中。如果螞蟻獲取可行節(jié)點的數(shù)量為零,螞蟻回退到上一次位置,將當(dāng)前位置加入禁忌表,并降低回退機制觸發(fā)時所移動位置的信息素至50%,降低其他螞蟻和后代螞蟻選擇此節(jié)點的概率。然后進(jìn)行下一個節(jié)點的選擇,直至到達(dá)終點E。

(3)當(dāng)此代螞蟻全部尋路完畢,記錄M只螞蟻的路徑長度,對沒有到達(dá)終點E的螞蟻的路徑長度設(shè)置為無窮大。通過式(12)計算當(dāng)代螞蟻信息素發(fā)揮率,然后對路徑長度短的路徑通過式(11)進(jìn)行信息素更新。

(4)判斷迭代次數(shù)是否到達(dá)上限,若沒有到達(dá)上限,迭代次數(shù)加一,然后重復(fù)進(jìn)行步驟(2)、(3)、(4),直到迭代次數(shù)到達(dá)上限,然后輸出最短的路徑。

4 仿真結(jié)果與分析

本文利用MATLAB 2014b軟件進(jìn)行仿真,實現(xiàn)了基本蟻群算法的路徑規(guī)劃以及改進(jìn)后的蟻群算法路徑規(guī)劃?;鞠伻核惴ǖ膮?shù)為,改進(jìn)的蟻群算法參數(shù)為,信息素?fù)]發(fā)速率采用式(12),啟發(fā)函數(shù)采用式(10)。本文在復(fù)雜環(huán)境下分別利用基本蟻群算法和改進(jìn)的蟻群算法進(jìn)行路徑規(guī)劃,仿真結(jié)果如圖3所示。

由圖3可知,基本蟻群算法和改進(jìn)的蟻群算法均能得到一條可行的路徑到達(dá)目標(biāo)點,改進(jìn)后的蟻群算法得到了更短的路徑,收斂速度更快,由于回退機制的加入,死鎖情況減少,到達(dá)目標(biāo)點的路徑更多。

5 結(jié)束語

針對基本蟻群算法前期搜索能力差并容易出現(xiàn)死鎖的問題,改進(jìn)了蟻群算法的啟發(fā)函數(shù),使蟻群算法前期的搜索能力更強,對死鎖問題進(jìn)行回退處理,增加路徑的有效性,使搜索能力加強。同時動態(tài)化信息素的揮發(fā)速率,使得前期信息素影響小,搜索能力強,后期信息素影響大,加快收斂。仿真表明,改進(jìn)的蟻群算法的搜索能力更強,在復(fù)雜環(huán)境下比基本蟻群算法規(guī)劃的路徑更短,收斂速度更快。

猜你喜歡
靜電勢蟻群移動機器人
表面活性劑十八烷基磺酸鈉的Multiwfn研究*
一種水處理劑:氨基三亞甲基膦酸的Multiwfn研究*
移動機器人自主動態(tài)避障方法
游戲社會:狼、猞猁和蟻群
水分子在高嶺石(001)面吸附的密度泛函計算
基于自適應(yīng)蟻群的FCM聚類優(yōu)化算法研究
基于奇異值差分譜分析和蟻群算法的小波閾值降噪
基于Twincat的移動機器人制孔系統(tǒng)
極坐標(biāo)系下移動機器人的點鎮(zhèn)定
基于引導(dǎo)角的非完整移動機器人軌跡跟蹤控制
沈丘县| 禄劝| 利辛县| 襄城县| 邢台市| 墨脱县| 安阳县| 武定县| 周宁县| 河西区| 嫩江县| 遂溪县| 桃园市| 鄂托克前旗| 托克逊县| 乌拉特中旗| 乐平市| 穆棱市| 西华县| 信阳市| 郑州市| 乌拉特中旗| 岱山县| 涞水县| 乐都县| 霸州市| 平凉市| 星座| 威宁| 平塘县| 富阳市| 宕昌县| 山阴县| 信宜市| 甘孜| 赤峰市| 商城县| 大埔县| 白玉县| 夏津县| 庆云县|