查看: 109|回复: 1|关注: 0

[未答复] 急!!!!毕业论文MATLAB遗传算法求助!

[复制链接]

新手

10 麦片

财富积分


050


1

主题

14

帖子

0

最佳答案
发表于 2020-5-23 19:57:35 | 显示全部楼层 |阅读模式
本帖最后由 suyppp 于 2020-5-24 12:11 编辑

求助大神帮忙看看我的代码,很有点急,可私聊 有偿!!!
遗传算法是和选址问题相关的
谢谢大家了!
% 2.0 主程序
%遗传算法主程序
%Name:genmain05.m
%要求精度不大于0.01,
clear
clc
popsize=10;                         %群体大小
chromlength=10;                  %字符串长度(个体长度)
pc=0.6;                                %交叉概率,只有在随机数小于pc时,才会产生交叉
pm=0.002;                              %变异概率
pop=initpop(popsize,chromlength); %随机产生初始群体
[objvalue]=calobjvalue(pop);                  %计算目标函数
fitvalue=calfitvalue(objvalue);                 %计算群体中每个个体的适应度
for i=1:2000                                                     %20为遗传代数      
        [newpop]=selection(pop,fitvalue);                 %复制  
        [newpop1]=crossover(newpop,pc);               %交叉
        [newpop2]=mutation(newpop1,pm);               %变异
        
        [objvalue]=calobjvalue1(newpop2);                 %计算目标函数
        fitvalue=calfitvalue(objvalue);                       %计算群体中每个个体的适应度
        
        [bestindividual,bestfit]=best(newpop2,fitvalue);     %求出群体中适应值最大的个体及其适应值
        y(i)=bestfit; %返回的 y 是自适应度值,而非函数值
        temp_pop(i,:) = bestindividual;
        [temp_result(i),index(i)] = max(y);
        

        pop=newpop2;

end
final_result = temp_result(end);
final_pop = temp_pop(index(end),:);
figure(1);
hand1=plot(1:i,temp_result);
hold on;

xlabel('进化代数');
ylabel('最大适应度');
xlim([1 i]);
box off;


回复主题 已获打赏: 0 积分

举报

新手

10 麦片

财富积分


050


1

主题

14

帖子

0

最佳答案
 楼主| 发表于 2020-5-24 12:34:38 | 显示全部楼层
救救孩子吧:'(
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表