資源簡介
遺傳算法求最小值 經(jīng)本人調(diào)試 十分好用 用run命令調(diào)用mainmin1和mainmin2 就可以算出了
f='-(exp(-1))+(x-20).*(x-22)';可以改為其他計算其他函數(shù)的最小值

代碼片段和文件信息
%--------------------------------------------------------------------------
%Crossover%交叉操作
function?v=crossover(vtemppc)
[NL]=size(vtemp);
C(:1)=rand(N1)<=pc;%選擇被雜交的。<=pc就是1否則是0構(gòu)成0-1向量
I=find(C(:1)==1);%找分量等于1的元素,其下標(biāo)構(gòu)成向量。
I‘;%變成行向量
j=1;
for?i=1:2:size(I)%兩兩配對所以以2為步長
????if?i>=size(I)%奇數(shù)個處理?如果是奇數(shù)個,則最后一行不處理
????????break;
????end
????site=fix(1+L*rand(1));%fix向零取整,L=22.%site屬于1-22.隨機確定交換點的位置
????temp=vtemp(I(i1):);%交換的暫存變量。T??記錄要交叉的第一行基因
????vtemp(I(i1)site:end)=vtemp(I(i+11)site:end);%交換后面的數(shù)值
????vtemp(I(i+11)site:end)=temp(:site:end);%交換??temp沒有被修改
end
v=vtemp;%復(fù)制返回
end????????
%%
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????751??2013-12-03?20:58??ga_main\crossover.m
?????文件????????513??2013-12-03?20:57??ga_main\decode.m
?????文件????????210??2013-12-03?20:58??ga_main\init_population.m
?????文件???????2984??2015-08-25?16:28??ga_main\mainmin1.m
?????文件???????2999??2015-08-25?16:42??ga_main\mainmin2.m
?????文件????????376??2013-12-05?00:54??ga_main\roulette.m
?????文件????????403??2013-12-03?21:00??ga_main\roulette2.m
?????目錄??????????0??2015-08-25?16:39??ga_main
-----------?---------??----------?-----??----
?????????????????8236????????????????????8
- 上一篇:flash計算器
- 下一篇:110kv變電站設(shè)計CAD圖
評論
共有 條評論