多无人机协同三维路径规划的蛇优化算法Snake Optimizer(提供MATLAB代码)
一、蛇優化算法簡介
蛇優化算法(Snake Optimizer,SO)由Fatma A. Hashim和Abdelazim G. Hussien于2022年提出,該算法思路新穎,快速高效,模擬了蛇的覓食和繁殖行為。
二、蛇優化算法原理
雄性蛇和雌性蛇之間交配的發生受到某些因素的影響。蛇在春末和初夏交配,那時溫度低。但交配過程不僅取決于溫度,還取決于食物的充足性。如果溫帶低,食物充足;雄性蛇會互相爭斗,以吸引雌性的注意力。雌性有權決定是否交配。如果發生交配,雌性開始在巢穴或洞穴中產卵,一旦卵出現,它就會離開。
蛇優化算法受蛇交配行為的啟發,如果溫度低且食物充足,則會發生交配,否則蛇只會尋找食物或吃掉剩余的食物。蛇優化算法分為兩個階段即全局探索或局部開發。探索取決于環境因素,即寒冷的地方和食物,在這種情況下,蛇只在周圍尋找食物。對于開發,此階段包括許多過渡階段,以使全局更有效率。在食物可用但溫度高的情況下,蛇只會專注于吃可用的食物。如果食物可用并且該區域寒冷,則會導致交配過程的發生;交配過程進行戰斗模式或交配模式。在戰斗模式中,每個雄性都會為獲得最好的雌性而戰,每個雌性都會嘗試選擇最好的雄性。在交配模式下,每對配對之間發生交配與食物數量的可用性有關。如果交配過程發生,則雌性產卵并將其孵化成新的蛇。SO將群體分成兩個相等的群體即雄性和雌性。
2.1全局搜索(無食物)
如果Q<0.25,蛇通過選擇任何隨機位置來搜索食物,并更新它們的位置。
雄性蛇位置更新:
雌性蛇位置更新:
2.2局部搜索(有食物)
如果Q>0.25,且溫度>0.6,則蛇只會向食物移動:
如果Q>0.25,且溫度<0.6,則蛇將處于戰斗模式或交配模式
2.2.1戰斗模式
雄性蛇位置更新:
雌雄蛇位置更新:
2.2.2交配模式
雄性蛇位置更新:
雌雄蛇位置更新:
三、蛇優化算法流程
四、無人機(UAV)三維路徑規劃
單個無人機三維路徑規劃數學模型參考如下文獻:
Phung M D , Ha Q P . Safety-enhanced UAV Path Planning with Spherical Vector-based Particle Swarm Optimization[J]. arXiv e-prints, 2021.
每個無人機的目標函數由路徑長度成本,安全性與可行性成本、飛行高度成本和路徑平滑成本共同組成:
4.1路徑長度成本
路徑長度成本由相鄰兩個節點之間的歐氏距離和構成,其計算公式如下:
4.2路徑安全性與可行性成本
路徑安全性與可行性成本通過下式計算:
4.3路徑飛行高度成本
飛行高度成本通過如下公式計算所得:
4.4路徑平滑成本
投影向量通過如下公式計算:
轉彎角度的計算公式為:
爬坡角度的計算公式為:
平滑成本的計算公式為:
4.5總成本(目標函數)
總成本由最優路徑成本,安全性與可行性成本、飛行高度成本和路徑平滑成本的線性加權所得。其中,b為加權系數。
五、實驗結果
在三維無人機路徑規劃中,無人機的路徑由起點,終點以及起始點間的點共同連接而成。因此,自變量為無人機起始點間的各點坐標,每個無人機的目標函數為總成本(公式9)。本文研究兩個無人機協同路徑規劃,總的目標函數為兩個無人機的總成本之和。
5.1參數設置
(1)9個柱狀障礙物的位置及半徑:
R1=60; % Radius 60 x1 = 350; y1 = 500; z1 = 100; % centerR2=70; % Radius 70 x2 = 600; y2 = 200; z2 = 150; % centerR3=80; % Radius 80 x3 = 500; y3 = 350; z3 = 150; % centerR4=70; % Radius 70 x4 = 350; y4 = 200; z4 = 150; % centerR5=70; % Radius 70 x5 = 700; y5 = 550; z5 = 150; % centerR6=80; % Radius 80 x6 = 650; y6 = 750; z6 = 150; % centerR7=70; % Radius 70 x7 = 800; y7 = 400; z7 = 150; % centerR8=50; % Radius 50 x8 = 300; y8 = 350; z8 = 100; % centerR9=50; % Radius 50 x9 = 500; y9 = 600; z9 = 100; % center(2)起始點位置:
第一個無人機起始點:
start_location = [150;200;150];
end_location = [800;800;150];
第二個無人機起始點:
start_location = [400;100;150];
end_location = [900;550;150];
(3)每個無人機起始點間共12個待求點。
(4)加權系數b=[5 1 10 1]。
(5)SO種群大小為50,最大迭代次數為5000。
5.2求解結果
獨立運行三次,得到三次參考方案如下:(黑色正方形是起點,黑色圓圈是終點,共有9個柱狀障礙物,紅線為優化得到的第一個無人機路線,粉線為優化得到的第二個無人機路線。)
5.2.1結果一
5.2.2結果二
5.2.3結果三
六、參考代碼
參考代碼聯系博主。
總結
以上是生活随笔為你收集整理的多无人机协同三维路径规划的蛇优化算法Snake Optimizer(提供MATLAB代码)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: word——VBA编程
- 下一篇: 单片机类毕业设计题目汇总