91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .m
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-01
  • 語言: Matlab
  • 標簽: 算法??

資源簡介

差分進化算法在尋優的過程中,首先,從父代個體間選擇兩個個體進行向量做差生成差分矢量;其次,選擇另外一個個體與差分矢量求和生成實驗個體;然后,對父代個體與相應的實驗個體進行交叉操作,生成新的子代個體;最后在父代個體和子代個體之間進行選擇操作,將符合要求的個體保存到下一代群體中去。

資源截圖

代碼片段和文件信息

function?trace=DE(fGenmax_FESNPDenx_minx_maxi_info)
%輸入:
%f-目標函數
%Gen-迭代次數
%max_FES-目標函數最大訪問次數
%NP-種群規模
%x_min-自變量最小值
%x_max-自變量最大值

%初始化
t0=cputime;
G=1;%初始化代數
F=0.5;%縮放因子
CR=0.8;%交叉概率
FES=0;%目標函數的訪問次數
Gmin=zeros(1Gen);%各代最優值
Best_X=zeros(GenDen);%各代最優解
Value=zeros(1NP);%當前代下每個個體的最優值


X_0=x_min+(x_max-x_min)*rand(NPDen);%初始化NP個Den維向量
X_Mutation=zeros(NPDen);%變異后的向量
X_CrossOver=zeros(NPDen);%交叉后的向量
X_Selection=zeros(NPDen);%選擇后的向量

%找出初代最優值
for?i=1:NP
????Value(i)=f(X_0(i:)i_info);
end
[value_minpos_min]?=?min(Value);
FES=FES+NP;

while(FES<=max_FES)????
????%變異操作
????for?i=1:NP
????????%隨機產生三個不相同的向量
????????r=randperm(NP);
????????q=r(1);
????????k=r(2);
????????p=r(3);
????????if?q==i
????????????q=r(4);
????????else?if?k==i
????????????????k=r(4);
????????????else?if?p==i
????????????????????p=r(4);
????????????????end
????????????end
????????end
???????????
????????mutation=X_0(q:)+F*(X_0(k:)-X_0(p:));
????????for?j=1:Den
????????????%變異后不能超出邊界
????????????if?mutation(1j)>x_min?&?mutation(1j)????????????????X_Mutation(ij)=mutation(1j);
????????????else
????????????????X_Mutation(ij)=x_min+(x_max-x_min)*rand(1);
????????????end
????????end

評論

共有 條評論