- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
$标准遗传算法
%优化函数为f=-(x-l厂2+4,其中,0=x=3
$编码长度为10位,编码精度为0. 0029
嗚种群规模设为40,遗传算J?分别为比例选择,单点交叉和单点变异。交叉槪率0?7,变异概率0?1 %最大进化代数为200代,保优操作。
main? m
initial;
global G;
for G=l:200
crossover;
mutation;
adapting;
keepbest; selection;
end
result;
嗚初始化函数,甌机形成规模为40初始种群
initial.m
pop (40, 10)=0;
best_individual (10)=0; %最优个体 adaptive (200) =0; %种群平均适应值
for i=l:40
for j=l:10
if rand0? 5
pop(i, j)=l;
else
pop(i, j)=0;
end
end
end
% pop
clear i;
clear j;
务交叉操作,概率为0.7,单点交叉
crossover? m
for i=l:2:39
cross_P=rand; $随机产生?个数,以比较交叉概率
if cross_P0. 9 $交叉概率为0?9 cross_pos=round(10*rand);玄交叉位置为0为,若位置为0或9,则不辿〔 if or (cross_pos=0, cross_pos==9)
continue;
for j=cross_pos:10 temp二pop (i, j); pop(i, j)=pop(i+l, j); pop(i+l, j)=temp;
end
end
end
clear i;
clear j;
clear temp;
clear cross_P;
clear cross_pos;
賀变异操作,单点变异,变异概率为0.1 mutation? m
for i=l:40
if rand0. 1 $通过变异槪率
M_pos=round(l0*rand);
if Mj)os=0 %若变异位为0则无总义 pop(i, M_pos)=l-pop(i, M_pos);
end
end
end
clear M_pos;
clear i;
%计算适应值
adapting? m
for i=l:40
adapt(i)=0;
end
for i=l:40
for j=l:10
if pop(i, j)==l adapt (i)=adapt (i)+2* (10-j);
end
end
adapt (i)=adapt (i)*0. 0029; adapt (i)=-(adapt (i)-l). *2+4;
end
global adapt_best;
global best_pos;
adapt_best=0; %最佳个体
best_pos=0; %最佳个体在种群「11的位置
% adapt_ave=O;
for i=l:40
adaptive(G) =adapt__avc(G)-t-adapt(i):
i f adapt__bestadapt(i) adapt_bcst=adapt(i); best_pos=i;
end
end
adaptive (G) =adapt_ave (G)/ 40;
clear i:
clear j;
制呆优操作
keepbest? m
for i=l:10
best individual(i)=pop(best pos, i);
end
% The select oprator function
selection? m
ada_sum=0;
ada^temp^O;
r=0;
i=0;j=0;
for i=l:40
ada_sum=ada_sum+adapt(i):
end
for i=l:39 %选抒39次,M.n; -个个体留给历代最优解
r rand*ada_sum; %随机产生_个数 ada.temp=0: %初始化累加值为0
j=0;
while(ada_tempr)
j=j+l;
ada_temp=ada_temp+adapt(j):
end
%退出循环时的j值即为被选择的个体序号
% if j40
% j=40;
% end
for k=l:10
new_pop(i, k)=pop(j, k);
end %最优解复制
for i=l:10
new_pop(40, i)=best_individual (i); end
玄将选择产生的新群体复制给pop种群
for i=l:40
for j=l:10
pop(i, j)=new_pop(i, j);
end
end
clear i;
clear j;
clear k;
clear r;
clear ada_tem
您可能关注的文档
最近下载
- 22G101 三维彩色立体图集.docx VIP
- 2010年考研英语一真题解析.pdf VIP
- 柔性吊桥计算书程序.xls VIP
- 崔德山-岩土测试技术3-第1篇室内试验-土的理化试验.ppt VIP
- 2025小升初英语基础时态专项训练题及答案.pdf VIP
- 崔德山-岩土测试技术4-第1篇室内试验-土的力学试验.pptx VIP
- 超重和失重 教学设计 高中物理新人教版必修第一册(2023~2024学年).docx VIP
- 奥数应用题(和差、和倍、差倍).docx VIP
- (完整版)和差、和倍、差倍问题应用题.doc VIP
- 小学英语 2024年新疆克拉玛依市白咸滩区小升初英语试卷.pdf VIP
文档评论(0)