【路徑規(guī)劃】基于果蠅優(yōu)化算法實現(xiàn)機器人路徑規(guī)劃matlab源碼
一、簡介
果蠅優(yōu)化算法(FOA)是一種基于果蠅覓食行為推演出尋求全局優(yōu)化的新方法。果蠅本身在感官知覺上優(yōu)于其他物種,尤其是嗅覺和視覺上。果蠅的嗅覺器官能很好的搜集漂浮在空氣中的各種氣味,甚至能夠嗅到40公里以外的食物源。然后,飛到食物位置附近后亦可使用敏銳的視覺發(fā)現(xiàn)食物和同伴聚集的位置,并且向該方向飛去。
果蠅算法可應(yīng)用于求解最優(yōu)解。

果蠅群體迭代搜尋食物的步驟如下:
(1)隨機初始化果蠅群體位置。
Init X_aXis
Init Y_aXis
(2)賦予果蠅個體利用嗅覺搜尋食物的隨機距離與方向。
Xi = X_aXis + Random Value
Yi = Y_aXis + Random Value
(3)由于無法得知食物的位置,因此先估計與原點的距離(Dist),再計算味道濃度判定值(S),此值為距離的倒數(shù)。
Disti = sqrt(Xi^2 + Yi^2)
Si = 1 / Disti
(4)味道濃度判定值(S)代入味道濃度判定函數(shù)(或稱為Fitness function)以求出該果蠅個體位置的味道濃度(Smelli)。
Smelli = Function(Si)
(5)找出該果蠅群體中味道濃度最高的果蠅(求極大值)。
[bestSmell bestIndex] = max(Smell)
(6)保留最佳味道濃度值與x、y的坐標,此時果蠅群體利用視覺往該位置飛去。
Smellbest = bestSmell
X_aXis = X(bestIndex)
Y_aXis = Y(bestIndex)
(7)進入迭代尋優(yōu),重復(fù)執(zhí)行步驟2-5,并判斷味道濃度是否優(yōu)于前一迭代味道濃度,若是則實行步驟6。
二、源代碼
三、源代碼


