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

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

資源簡介

自己寫的一個遺傳算法的matlab實現,有注釋,實現了基本的遺傳算法思想,用于求解函數極大值,初學者可以借鑒,相信有很大幫助價值。缺點是算法難收斂,搞懂算法思想后,大家可自行改進。

資源截圖

代碼片段和文件信息

clc
clear
%第一步:初始化,產生初始種群
%初始種群數n
%迭代次數itr
%雜交概?率pc
%變異概率pm?
%最優化問題:maxf(x1x2)=21.5+x1*sin(4*pi*x1)+x2*sin(20*pi*x2)
n=40;
itr=200;
pc=0.25;
pm=0.2;
for?i=1:n
????for?j=1:33
????????if(rand(1)>0.5)
????????????p(ij)=1;
????????else?p(ij)=0;
????????end
????end
end
%計算父體的適應值
for?i=1:n
????dec1=bin2dec(int2str(p(i1:18)));
????x1=-3+dec1*15.1/(2^18-1);
????dec2=bin2dec(int2str(p(i19:33)));
????x2=4.1+dec2*1.7/(2^15-1);
????F(i)=fun1(x1x2);
end
%進入遺傳算法,進化itr代
for?itr=1:itr
??
????[G(itr)g]=max(F);
????p2(itr:)=p(g:);
????
????for?j=1:n????????????????????????????????%父體選擇,輪盤賭選擇
????????Ps(j)=F(j)/sum(F(:));
????????Pcn(j)=sum(Ps(1:j));
????end

????for?l=1:n
????????for?k=1:n
????????????r=rand(1);
????????????if?r<=Pcn(1)
????????????????p1(l:)=p(k:);
????????????else?if?r<=Pcn(k)&r>Pcn(k-1)
????????????????????p1(l:)=p(k-1:);
????????????????end
????????????end
????????end
????end
????%父體選擇結束
????%雜交,產生下一代。遺傳算子,包括雜交算子和變異算子

????k=0;
????for?i=1:n????????????????????????????????%雜交
????????if?rand(1)<=pc
????????????if??k==0
????????

評論

共有 條評論