天牛須搜尋算法

天牛須搜尋算法

天牛須搜尋算法(Beetle Antennae Search Algorithm),縮寫為BAS,是一種2017年預印本發表 的生物啟發式算法。

算法設計

天牛須搜尋算法 是一種生物啟發的智慧型最佳化算法,是受到天牛覓食原理啟發而開發的算法,其仿生原理如下:

天牛須搜尋的原理:

當天牛覓食時,天牛並不知道實物在哪裡,而是根據食物氣味的強弱來覓食。天牛有兩隻長觸角,如果左邊觸角收到的氣味強度比右邊大,那下一步天牛就往左飛,否則就往右飛,依據這一原理天牛可以找到食物。

天牛須搜尋對我們的啟發:

食物的氣味就相當於一個函式,這個函式在三維空間每個點值都不同,天牛兩個須可以採集自身附近兩點的氣味值,天牛的目的是找到全局氣味值最大的點(即食物所在位置)。仿照天牛的行為,我們設計了該智慧型最佳化算法進行函式最最佳化求解。

天牛覓食的啟示 天牛覓食的啟示

天牛在三維空間運動,而天牛須搜尋需要對任意維函式都有效才可以。因而,天牛須搜尋是對天牛生物行為在任意維空間的推廣。採用如下模型描述天牛須搜尋算法的尋優策略:

1. 天牛左右兩須位於質心兩邊。

2. 天牛步長step與兩須之間距離d0的比值是個固定常數即step=c*d0其中c是常數。即,大天牛(兩須距離長)走大步,小天牛走小步。

3. 天牛飛到下一步後,頭的朝向是隨機的。

簡化模型 簡化模型

系統建模

第一步:對於一個n維空間的最佳化問題,我們用xl表示左須坐標,xr表示右須坐標,x表示質心坐標,用d0表示兩須之間距離。根據假設3,天牛頭朝向任意,因而從天牛右須指向左須的向量的朝向也是任意的,所以可以產生一個隨機向量dir=rands(n,1)來表示它。對此歸一化:dir=dir/norm(dir); 我們這樣可以得到xl-xr=d0*dir;顯然, xl,xr還可以表示成質心的表達式:xl=x+d0*dir/2;xr=x-d0*dir/2.

第二步:對於待最佳化的價值函式f,求取左右兩須的值: fleft=f(xl); fright=f(xr); 判斷兩個值大小:

1.

第一步:對於一個n維空間的最佳化問題,我們用xl表示左須坐標,xr表示右須坐標,x表示質心坐標,用d0表示兩須之間距離。根據假設3,天牛頭朝向任意,因而從天牛右須指向左須的向量的朝向也是任意的,所以可以產生一個隨機向量dir=rands(n,1)來表示它。對此歸一化:dir=dir/norm(dir); 我們這樣可以得到xl-xr=d0*dir;顯然, xl,xr還可以表示成質心的表達式:xl=x+d0*dir/2;xr=x-d0*dir/2.

2.

第二步:對於待最佳化的價值函式f,求取左右兩須的值: fleft=f(xl); fright=f(xr); 判斷兩個值大小:

•如果fleft

相關詞條

熱門詞條

聯絡我們