資源簡介
遺傳算法的基本步驟如下:
1)在一定編碼方案下,隨機產生一個初始種群;
2)用相應的解碼方法,將編碼后的個體轉換成問
題空間的決策變量,并求得個體的適應值;
3)按照個體適應值的大小,從種群中選出適應值
較大的一些個體構成交配池;
4)由交叉和變異這兩個遺傳算子對交配池中的
個體進行操作,并形成新一代的種群;
5)反復執行步驟2-4,直至滿足收斂判據為止。
用MATLAB 編寫了遺傳算法程序,并給出完
整代碼,程序在matlabR2009中調試通過。最后,通過
一個實例說明其在函數優化中的應用。

代碼片段和文件信息
function?new_gen=crossover(old_genpc)
[nousemating]=sort(rand(size(old_gen1)1));%將種群順序擾亂
mat_gen=old_gen(mating:);%記錄擾亂后的種群
pairs=size(mat_gen1)/2;%進行配對
bits=size(mat_gen2);
cpairs=rand(pairs1) cpoints=randint(pairs1[1bits]);%隨機選擇交叉點
cpoints=cpairs.*cpoints;%不需要交叉則為0
for?i=1:pairs
????new_gen([2*i-1?2*i]:)=[mat_gen([2*i-1?2*i]1:cpoints(i))?mat_gen([2*i?2*i-1]cpoints(i)+1:bits)];%兩兩進行交叉
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????488??2010-05-21?14:14??用MATLAB實現遺傳算法程序.pdf\crossover.m
?????文件????????669??2010-05-21?11:57??用MATLAB實現遺傳算法程序.pdf\decoding.m
?????文件????????212??2010-05-21?11:57??用MATLAB實現遺傳算法程序.pdf\encoding.m
?????文件???????1497??2010-05-21?15:39??用MATLAB實現遺傳算法程序.pdf\ga.m
?????文件????????133??2010-05-20?16:22??用MATLAB實現遺傳算法程序.pdf\mutation.m
?????文件?????????45??2010-05-20?23:33??用MATLAB實現遺傳算法程序.pdf\myfunc.m
?????文件???????1000??2010-05-21?11:57??用MATLAB實現遺傳算法程序.pdf\selection.m
?????文件??????95460??2010-05-21?16:28??用MATLAB實現遺傳算法程序.pdf\用MATLAB實現遺傳算法程序.pdf
?????目錄??????????0??2010-05-21?16:28??用MATLAB實現遺傳算法程序.pdf
-----------?---------??----------?-----??----
????????????????99504????????????????????9
- 上一篇:MATLAB實現卷積碼編譯碼
- 下一篇:matlab之循環卷積自寫
評論
共有 條評論