【智能優(yōu)化算法-灰狼算法】基于貪婪非分級(jí)灰狼優(yōu)化器求解單目標(biāo)優(yōu)化問題附matlab代碼
【智能優(yōu)化算法-灰狼算法】基于貪婪非分級(jí)灰狼優(yōu)化器求解單目標(biāo)優(yōu)化問題附matlab代碼
TT_Matlab
博主簡(jiǎn)介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)、信號(hào)處理、元胞自動(dòng)機(jī)、圖像處理、路徑規(guī)劃、無人機(jī)等多種領(lǐng)域的Matlab仿真,完整matlab代碼或者程序定制加qq1575304183。
1 內(nèi)容介紹
灰狼優(yōu)化(GWO)算法是一種新興的算法,它基于灰狼的社會(huì)等級(jí)以及它們的狩獵和合作策略。該算法于 2014 年推出,已被大量研究人員和設(shè)計(jì)人員使用,原始論文的引用次數(shù)超過了許多其他算法。在 Niu 等人最近的一項(xiàng)研究中,介紹了該算法優(yōu)化現(xiàn)實(shí)問題的主要缺點(diǎn)之一??傊麄儽砻?,隨著問題的最優(yōu)解偏離 0,GWO 的性能會(huì)下降。在本文中,通過對(duì)原始 GWO 算法進(jìn)行直接修改,即忽略其社會(huì)等級(jí),作者能夠在很大程度上消除 這一缺陷為今后使用該算法開辟了新的視角。通過將其應(yīng)用于基準(zhǔn)和實(shí)際工程問題,驗(yàn)證了所提出方法的有效性。
2 仿真代碼
%
E. Akbari, A. Rahimnejad, S. A. Gadsden, "A greedy non-hierarchical grey
%
wolf optimizer for real-world optimization", Electronics Letters, Apr. 2021
%
http://dx.doi.org/10.1049/ell2.12176
clc
clear
global
NFE
NFE
=
0;
nPop
=
30; % Number of search agents (Population Number)
MaxIt
=
1000; % Maximum number of iterations
nVar
=
30; % Number of Optimization Variables
nFun
=
1; % Function No, select any integer number from 1 to 14
CostFunction
=
@(x,nFun) Cost(x,nFun); % Cost Function
%%
Problem Definition
VarMin
=
-100; % Decision Variables Lower Bound
if
nFun==7
VarMin
=
-600; % Decision Variables Lower Bound
end
if
nFun==8
VarMin
=
-32; % Decision Variables Lower Bound
end
if
nFun==9
VarMin
=
-5; % Decision Variables Lower Bound
end
if
nFun==10
VarMin
=
-5; % Decision Variables Lower Bound
end
if
nFun==11
VarMin
=
-0.5; % Decision Variables Lower Bound
end
if
nFun==12
VarMin
=
-pi; % Decision Variables Lower Bound
end
if
nFun==14
VarMin
=
-100; % Decision Variables Lower Bound
end
VarMax
=
-VarMin; % Decision Variables Upper Bound
if
nFun==13
VarMin
=
-3; % Decision Variables Lower Bound
VarMax
=
1; % Decision Variables Upper Bound
end
%%
NH-Grey Wold Optimizer (GWO)
%
Initialize Best Solution (Alpha) which will be used for archiving
Alpha_pos
=
zeros(1,nVar);
Alpha_score
=
inf;
%Initialize
the positions of search agents
Positions
=
rand(nPop,nVar).*(VarMax-VarMin)+VarMin;
Positions1
=
rand(nPop,nVar).*(VarMax-VarMin)+VarMin;
BestCosts
=
zeros(1,MaxIt);
fitness(1
:
nPop)=inf;
fitness1
=
fitness;
iter
=
0; % Loop counter
%%
Main loop
while
iter<MaxIt
for
i=1:nPop
%
Return back the search agents that go beyond the boundaries of the search space
Flag4ub
=
Positions1(i,:)>VarMax;
Flag4lb
=
Positions1(i,:)<VarMin;
Positions1(i,
:
)=(Positions1(i,:).*(~(Flag4ub+Flag4lb)))+VarMax.*Flag4ub+VarMin.*Flag4lb;
%
Calculate objective function for each search agent
fitness1(i)
=
CostFunction(Positions1(i,:), nFun);
%
Update Grey Wolves
if
fitness1(i)<fitness(i)
Positions(i,
:
)=Positions1(i,:);
fitness(i)
=
fitness1(i) ;
end
%
Update Best Solution (Alpha) for archiving
if
fitness(i)<Alpha_score
Alpha_score
=
fitness(i);
Alpha_pos
=
Positions(i,:);
end
end
a
=
2-(iter*((2)/MaxIt)); % a decreases linearly fron 2 to 0
%
Update the Position of all search agents
for
i=1:nPop
for
j=1:nVar
GGG
=
randperm(nPop-1,3);
ind1
=
GGG>=i;
GGG(ind1)
=
GGG(ind1)+1;
m1
=
GGG(1);
m2
=
GGG(2);
m3
=
GGG(3);
r1
=
rand;
r2
=
rand;
A1
=
2*a*r1-a;
C1
=
2*r2;
D_alpha
=
abs(C1*Positions(m1,j)-Positions(i,j));
X1
=
Positions(m1,j)-A1*D_alpha;
r1
=
rand;
r2
=
rand;
A2
=
2*a*r1-a;
C2
=
2*r2;
D_beta
=
abs(C2*Positions(m2,j)-Positions(i,j));
X2
=
Positions(m2,j)-A2*D_beta;
r1
=
rand;
r2
=
rand;
A3
=
2*a*r1-a;
C3
=
2*r2;
D_delta
=
abs(C3*Positions(m3,j)-Positions(i,j));
X3
=
Positions(m3,j)-A3*D_delta;
Positions1(i,j)
=
(X1+X2+X3)/3;
end
end
iter
=
iter+1;
BestCosts(iter)
=
Alpha_score;
fprintf(’Iter
=
%g, NFE= %g, Best Cost = %g
’,iter,NFE,Alpha_score);
end
figure
plot(BestCosts)
xlabel(’迭代次數(shù)’)
ylabel(’適應(yīng)度值’)
3 運(yùn)行結(jié)果
4 參考文獻(xiàn)
[1]高珊. 基于貪婪隨機(jī)自適應(yīng)灰狼優(yōu)化算法求解TSP的研究與應(yīng)用[D]. 太原理工大學(xué).
[2]龍文, 趙東泉, 徐松金. 求解約束優(yōu)化問題的改進(jìn)灰狼優(yōu)化算法[J]. 計(jì)算機(jī)應(yīng)用, 2015, 35(009):2590-2595.
[3]姜天華. 混合灰狼優(yōu)化算法求解柔性作業(yè)車間調(diào)度問題[J]. 控制與決策, 2018, 33(3):6.
[4] Akbari E , Rahimnejad A , Gadsden S A . A greedy non﹉ierarchical grey wolf optimizer for real﹚orld optimization[J]. Electronics Letters, 2021(1).
博主簡(jiǎn)介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)、信號(hào)處理、元胞自動(dòng)機(jī)、圖像處理、路徑規(guī)劃、無人機(jī)等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。
-
2023年各省最新電價(jià)一覽!8省中午執(zhí)行谷段電價(jià)! 2023-01-03
-
PPT導(dǎo)出高分辨率圖片的四種方法 2022-09-22
-
全國消防救援總隊(duì)主官及簡(jiǎn)歷(2023.2) 2023-02-10
-
盤點(diǎn) l 中國石油大慶油田現(xiàn)任領(lǐng)導(dǎo)班子 2023-02-28
-
我們的前輩!歷屆全國工程勘察設(shè)計(jì)大師完整名單! 2022-11-18
-
關(guān)于某送變電公司“4·22”人身死亡事故的快報(bào) 2022-04-26
