日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

基于布谷鸟灰狼算法、灰狼算法求解复杂地形下三维无人机路径规划问题研究附matlab代码

發布時間:2024/8/1 循环神经网络 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于布谷鸟灰狼算法、灰狼算法求解复杂地形下三维无人机路径规划问题研究附matlab代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?作者簡介:熱愛科研的Matlab仿真開發者,修心和技術同步精進,matlab項目合作可私信。

🍎個人主頁:Matlab科研工作室

🍊個人信條:格物致知。

更多Matlab仿真內容點擊👇

智能優化算法 ?神經網絡預測 雷達通信? 無線傳感器

信號處理 圖像處理 路徑規劃 元胞自動機 無人機? 電力系統

? 內容介紹

?無人機飛行過程中,路線上會出現一些障礙物,障礙物會威脅無人機的飛行安全.在無人機執行任務時,路徑規劃需要進行動態調整以實現快速準確地避開障礙.在對無人機避障算法進行研究中.根據無人機航跡環境構建任務空間模型;構建無人機路徑的路徑代價函數,以獲取布谷鳥灰狼算法、灰狼算法中最優粒子的參數;根據最優粒子的參數和地形值構建航路點;以及根據航路點獲取無人機的最優路徑,實現了提高了布谷鳥灰狼算法、灰狼算法算法的全局尋優能力以及尋優精度,避免陷入局部最優,并成功得到一條平滑有效的路徑.

劃分為灰燼時,因此在智能獵物是通過相交流共享的體制來模擬的。這只狼的發展需要不斷地不斷地評價一只狼的作用,只在一只頭狼的過程中進行,在整個過程中進行一次,算法在繼續更新的作用。狼的位置算法所將只由這3只狼頭廣泛應用領域應用領域中,尤其是狼群通過應用最廣泛的應用領域。α狼都代表狼群位置,代表狼群,在狼群中,在當有任務需要執行時,α狼將號施令,其余的狼發群主動配合執行之便,因此α狼當無的成為當狼群中選擇了自己的狼群。狼狼狼的原因是因為α狼的原因是α中的最強管理,而它最近擁有其他狼所擁有的狼所不具備的組織能力。β狼在活動中都需要從α狼的指揮,同時從其他點級別的狼群也可以聽它的指揮。在灰狼群體中,位于第三級是δ狼,在嚴格的等級制度中, δ必須遵守從α狼和β狼的命令, δ狼不是最低一級,它在的下一級還存在著ω狼,ω狼在整個群體中擔任追捕獵物群體的偵查,也是圍狼群體中等級的。看起來它們整個無足灰重,但失去了它們這一整群,灰狼和輕狼都將面臨著基層組織的危險,所以它們也可以是狼群的重要部分。

正在上傳…重新上傳取消

? 部分代碼

function solution = GWO(UAV, SearchAgents, Max_iter)

%GWO 灰狼優化算法

%Gray Wolf Optimization

%?參數

g = 50;? ? ? ?% 動態加權系數

% 算法初始化

[WolfPops, Tracks] = PopsInit(UAV, SearchAgents, false);? ?% 隨機生成 初始狼群 和 軌跡們

dim = WolfPops.PosDim;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?% 狀態變量維度

% 初始化解

Alpha_pos = zeros(1, dim);? ?% α解

Alpha_score = inf;? ? ? ? ? ? ? ? ? % α解適應度

Alpha_no = 1;? ? ? ? ? ? ? ? ? ? ? ? ?% α解編號

Beta_pos = zeros(1, dim);? ? ? % β解

Beta_score = inf;? ? ? ? ? ? ? ? ? ? ?% β解適應度

Beta_no = 1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ?% β解編號

Delta_pos = zeros(1, dim);? ? ?% δ解

Delta_score = inf;? ? ? ? ? ? ? ? ? ? % δ解適應度

Delta_no = 1;? ? ? ? ? ? ? ? ? ? ? ? ? ?% δ解編號

Fitness_list = zeros(1, Max_iter);

% 迭代求解

tic

fprintf('>>GWO 優化中? ? 00.00%%')

for iter = 1 : Max_iter

? ? % ①? 計算每只狼的適應度,更改其種群等級

? ? ProbPoints = cell(SearchAgents, 1);? ?

? ? for i = 1 : SearchAgents

? ? ? ? % 計算目標函數

? ? ? ? [fitness, ~, Data] = ObjFun(Tracks{i}, UAV);? ? % 一個智能體的目標函數

? ? ? ? ProbPoints{i} = Data.ProbPoint;? ? ? ? ? ? ? ? ? ? ? ?% 所有智能體不符合條件的狀態

? ? ? ? % 更新 Alpha、Beta 和 Delta 解

? ? ? ? if fitness <= Alpha_score? % 適應能力最強(因為性能指標越小越好,因此為小于號)

? ? ? ? ? ? Alpha_score = fitness;

? ? ? ? ? ? Alpha_pos = WolfPops.Pos(i, :);

? ? ? ? ? ? Alpha_no = i;

? ? ? ? end?

? ? ? ? if fitness > Alpha_score && fitness <= Beta_score

? ? ? ? ? ? Beta_score = fitness;

? ? ? ? ? ? Beta_pos = WolfPops.Pos(i, :);

? ? ? ? ? ? Beta_no = i;

? ? ? ? end

? ? ? ? if fitness > Alpha_score && fitness > Beta_score && fitness <= Delta_score

? ? ? ? ? ? Delta_score = fitness;

? ? ? ? ? ? Delta_pos = WolfPops.Pos(i, :);

? ? ? ? ? ? Delta_no = i;

? ? ? ? end

? ? end

? ? % ②? 更新參數a

? ? a = 2 - iter * 2 / Max_iter;? ? ? ? ? ? ? ? ? % 線性遞減

? ? %a = 2 * cos((iter / Max_iter) * pi/2);? ?% 非線性遞減

? ? % ③? 更新位置(朝著前三只狼位置前進)

%? ? ?r1 = rand(SearchAgents, dim);

%? ? ?r2 = rand(SearchAgents, dim);

%? ? ?A1 = 2*a*r1 - a;

%? ? ?C1 = 2*r2;

%? ? ?D_alpha = abs(C1.*repmat(Alpha_pos, SearchAgents, 1) - WolfPops.Pos);

%? ? ?X1 = repmat(Alpha_pos, SearchAgents, 1) - A1.*D_alpha;

%?

%? ? ?r1 = rand(SearchAgents, dim);

%? ? ?r2 = rand(SearchAgents, dim);? ? ? ? ? ??

%? ? ?A2 = 2*a*r1 - a;

%? ? ?C2 = 2*r2;

%? ? ?D_beta = abs(C2.*repmat(Beta_pos, SearchAgents, 1) - WolfPops.Pos);

%? ? ?X2 = repmat(Beta_pos, SearchAgents, 1) - A2.*D_beta;

%? ? ?

%? ? ?r1 = rand(SearchAgents, dim);

%? ? ?r2 = rand(SearchAgents, dim);

%? ? ?A3 = 2*a*r1 - a;

%? ? ?C3 = 2*r2;

%? ? ?D_delta = abs(C3.*repmat(Delta_pos, SearchAgents, 1) - WolfPops.Pos);

%? ? ?X3 = repmat(Delta_pos, SearchAgents, 1) - A3.*D_delta;

%?

%? ? ?%-- 靜態更新位置

%? ? ?WolfPops.Pos = (X1 + X2 + X3) / 3;??

? ? %-- 動態更新位置

%? ? ?q = g * a;?

%? ? ?if abs(Alpha_score - Delta_score) > q

%? ? ? ? ?Sum_score = Alpha_score + Beta_score + Delta_score;

%? ? ? ? ?WolfPops.Pos = (Alpha_score*X1 + Beta_score*X2 + Delta_score*X3) / Sum_score;

%? ? ?else

%? ? ? ? ?WolfPops.Pos = (X1 + X2 + X3) / 3;

%? ? ?end

? ? for i = 1 : SearchAgents

? ? ? ? for j = 1 : dim

? ? ? ? ? ? r1 = rand();

? ? ? ? ? ? r2 = rand();

? ? ? ? ? ? A1 = 2*a*r1 - a;

? ? ? ? ? ? C1 = 2*r2;

? ? ? ? ? ? D_alpha = abs(C1*Alpha_pos(j) - WolfPops.Pos(i, j));

? ? ? ? ? ? X1 = Alpha_pos(j) - A1*D_alpha;

? ? ? ? ? ? r1 = rand();

? ? ? ? ? ? r2 = rand();? ? ? ? ? ??

? ? ? ? ? ? A2 = 2*a*r1 - a;

? ? ? ? ? ? C2 = 2*r2;

? ? ? ? ? ? D_beta = abs(C2*Beta_pos(j) - WolfPops.Pos(i, j));

? ? ? ? ? ? X2 = Beta_pos(j) - A2*D_beta;

? ? ? ? ? ??

? ? ? ? ? ? r1 = rand();

? ? ? ? ? ? r2 = rand();

? ? ? ? ? ? A3 = 2*a*r1 - a;

? ? ? ? ? ? C3 = 2*r2;

? ? ? ? ? ? D_delta = abs(C3*Delta_pos(j) - WolfPops.Pos(i, j));

? ? ? ? ? ? X3 = Delta_pos(j) - A3*D_delta;

? ? ? ? ? ??

? ? ? ? ? ? %靜態更新

? ? ? ? ? ? WolfPops.Pos(i, j) = (X1 + X2 + X3) / 3;

%? ? ? ? ? ? ?%動態更新

%? ? ? ? ? ? ?%? ? ? ? ? ? ? q = g * a; %閾值

%? ? ? ? ? ? ?%? ? ? ? ? ? ? if abs(Alpha_score - Delta_score) > q

%? ? ? ? ? ? ?%? ? ? ? ? ? ? ? ? ? ?Sum_score = Alpha_score + Beta_score + Delta_score;

%? ? ? ? ? ? ?%? ? ? ? ? ? ? ? ? ? ?WolfPops.Pos(i, j) = (Alpha_score*X1 + Beta_score*X2 + Delta_score*X3) / Sum_score;

%? ? ? ? ? ? ?%? ? ? ? ? ? ? else

%? ? ? ? ? ? ?%? ? ? ? ? ? ? ? ? ? ?WolfPops.Pos(i, j) = (X1 + X2 + X3) / 3;

%? ? ? ? ? ? ?%? ? ? ? ? ? ? end

? ? ? ? end

? ? end

? ? % ④? 調整不符合要求的狀態變量

? ? [WolfPops, Tracks] = BoundAdjust(WolfPops, ProbPoints, UAV);

? ? % ⑤? 存儲適應度

? ? Fitness_list(iter) = Alpha_score;

? ? if iter/Max_iter*100 < 10

? ? ? ? fprintf('\b\b\b\b\b%.2f%%', iter/Max_iter*100)

? ? else

? ? ? ? fprintf('\b\b\b\b\b\b%.2f%%', iter/Max_iter*100)

? ? end

end

fprintf('\n\n>>計算完成!\n\n')

toc

% 輸出值

solution.method = 'GWO';? ? ? ? ? ? ? ? % 算法

solution.WolfPops = WolfPops;? ? ? ?% 所有解種群信息

solution.Tracks = Tracks;? ? ? ? ? ? ? ? ? % 所有解航跡信息

solution.Fitness_list = Fitness_list;? ?% α解適應度曲線

solution.Alpha_Data = Data;? ? ? ? ? ? % α解的威脅信息

solution.Alpha_no = Alpha_no;? ? ? ? % α解的位置

solution.Beta_no = Beta_no;? ? ? ? ? ? ?% β解的位置

solution.Delta_no = Delta_no;? ? ? ? ? % δ解的位置

end

? 運行結果

? 參考文獻

[1]趙其定, 汪夏榮. 無人機覆蓋路徑規劃中基于能量感知網格的三維避障算法的研究[J]. 現代信息科技, 2022, 6(18):6.

[2]羅誠. 無人機路徑規劃算法研究[D]. 復旦大學, 2010.

?? 關注我領取海量matlab電子書和數學建模資料

??部分理論引用網絡文獻,若有侵權聯系博主刪除

總結

以上是生活随笔為你收集整理的基于布谷鸟灰狼算法、灰狼算法求解复杂地形下三维无人机路径规划问题研究附matlab代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。