資源簡介
帶佳點集理論的灰狼算法(GWO),求解帶約束的非線性規劃問題。可直接運行。

代碼片段和文件信息
tic?%?計時器
%%?清空環境變量
clear
clc
%%?利用灰狼算法選擇最佳的SVM參數c和g
SearchAgents_no=20;?%?狼群數量,Number?of?search?agents
Max_iteration=100;?%?最大迭代次數,Maximum?numbef?of?iterations
dim=2;?%?此例需要優化兩個參數c和g,number?of?your?variables
lb=[0.010.01];?%?參數取值下界
ub=[100100];?%?參數取值上界
%?v?=?5;?%?SVM?Cross?Validation參數默認為5
%?initialize?alpha?beta?and?delta_pos
Alpha_pos=zeros(1dim);?%?初始化Alpha狼的位置
Alpha_score=inf;?%?初始化Alpha狼的目標函數值,change?this?to?-inf?for?maximization?problems
Beta_pos=zeros(1dim);?%?初始化Beta狼的位置
Beta_score=inf;?%?初始化Beta狼的目標函數值,change?this?to?-inf?for?maximization?problems
Delta_pos=zeros(1dim);?%?初始化Delta狼的位置
Delta_score=inf;?%?初始化Delta狼的目標函數值,change?this?to?-inf?for?maximization?problems
%Initialize?the?positions?of?search?agents
Positions=initialization(SearchAgents_nodimublb);
Convergence_curve=zeros(1Max_iteration);
l=0;?%?Loop?counter循環計數器
%?Main?loop主循環
while?l ????for?i=1:size(Positions1)??%?遍歷每個狼
???????flag=1;
???????%?Return?back?the?search?agents?that?go?beyond?the?boundaries?of?the?search?space
???????%?若搜索位置超過了搜索空間,需要重新回到搜索空間
????????Flag4ub=Positions(i:)>ub;
????????Flag4lb=Positions(i:)
????????%?若狼的位置在最大值和最小值之間,則位置不需要調整,若超出最大值,最回到最大值邊界;
????????%?若超出最小值,最回答最小值邊界
????????Positions(i:)=(Positions(i:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;?%?~表示取反???????????
??????
??????
???????
???????if(conf(Positions(i1)Positions(i2)))%如不滿足約束條件
???????????flag=0;
???????end
???????if(flag==1)?%如滿足約束條件
???????????%?計算適應度函數值
????????????fitnessw=f(Positions(i1)Positions(i2));
????????????fitness=fitnessw;?%?正求最小值,負求最大值
????????????%?Update?Alpha?Beta?and?Delta
????????????if?fitness ????????????????Alpha_score=fitness;?%?則將Alpha狼的目標函數值更新為最優目標函數值,Update?alpha
????????????????Alpha_pos=Positions(i:);?%?同時將Alpha狼的位置更新為最優位置
????????????end
????????????if?fitness>Alpha_score?&&?fitness ????????????????Beta_score=fitness;?%?則將Beta狼的目標函數值更新為最優目標函數值,Update?beta
????????????????Beta_pos=Positions(i:);?%?同時更新Beta狼的位置
????????????end
????????????if?fitness>Alpha_score?&&?fitness>Beta_score?&&?fitness ????????????????Delta_score=fitness;?%?則將Delta狼的目標函數值更新為最優目標函數值,Update?delta
????????????????Delta_pos=Positions(i:);?%?同時更新Delta狼的位置
????????????end
???????end
????end
????
????a=2*cos(l/Max_iteration*pi/2);?%?對每一次迭代,計算相應的a值,a?decreases?linearly?fron?2?to?0
????
????%?Update?the?Position?of?search?agents?including?omegas
????for?i=1:size(Positions1)?%?遍歷每個狼
????????for?j=1:size(Positions2)?%?遍歷每個維度
????????????
????????????%?包圍獵物,位置更新
????????????
????????????r1=rand();?%?r1?is?a?random?number?in?[01]
????????????r2=rand();?%?r2?is?a?random?number?in?[01]
????????????
????????????A1=2*a*r1-a;?%?計算系數A,Equation?(3.3)
????????????C1=2*r2;?%?計算系數C,Equation?(3.4)
????????????
????????????%?Alpha
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????4789??2019-11-08?12:08??JGWO\CalGWO.m
?????文件????????1779??2019-11-08?12:04??JGWO\Calolot.m
?????文件?????1753133??2016-09-08?10:07??JGWO\GWO_finalVersion.pdf
?????文件?????????171??2019-11-07?11:31??JGWO\conf.m
?????文件?????????101??2019-11-07?11:32??JGWO\f.m
?????文件????????2091??2019-11-08?12:04??JGWO\initialization.m
?????目錄???????????0??2019-11-08?12:04??JGWO\
- 上一篇:BabeLua For Visual Studio
- 下一篇:大學生綜合測評系統
評論
共有 條評論