資源簡介
用matlab語言實現(xiàn)的算法,用于解決背包問題,帶完整的中文注釋
代碼片段和文件信息
function?newpop?=?ga(?poppcpmchromsomefit?)
%遺傳算法
pop_size?=?size(pop1);
%賭輪選擇
ps?=?zeros(pop_size1);?%選擇概率
???for?i=1:pop_size
????ps(i)?=?fit(i)/sum(fit);
???end
pssum?=?zeros(pop_size1);?%選擇概率累加
pssum(1)=ps(1);
???for?j=2:pop_size
???????pssum(j)?=?pssum(j-1)+ps(j);
???end
newpop?=?zeros(pop_sizechromsome);
???for?k=1:pop_size
???????r?=?rand();
???????if?r ???????????newpop(k:)=pop(1:);
???????else
???????????for?m=2:pop_size
???????????????if?pssum(m-1) ???????????????????newpop(k:)=pop(m:);
???????????????end
???????????end
???????en
評論
共有 條評論