遗传算法的matlab初步实现

2025-07-08 21:39:52

遗传算法的matlab初步实现

2018.7.20 做了7个小时,终于搞出来了一个可行的遗传算法 本遗传算法用于实现了 这比昨天的粒子群算法复杂多了。。 而且出了一大堆问题。。。 不过呢。。写完就好。。。哈哈哈

主函数部分

clear;

clc;

popsize=20;%种群大小

chromlength=10;%二进制编码长度

pc = 0.7;%交叉概率

pm = 0.005;%变异概率

pop = initpop(popsize,chromlength);%初始种群

for i = 1:2000 % 迭代次数

[objvalue] = calobjvalue(pop); %计算目标函数

fitvalue = calfitvalue(objvalue); %计算适应度值(函数值)

[newpop] = selection(pop,fitvalue); % 选择操作

[newpop] = crossover(newpop,pc); %交叉操作

[newpop] = mutation(newpop,pm); %变异操作

[bestindividual,bestfit] = best(newpop,fitvalue); %更新种群

%寻找最优解

y(i)=max(bestfit);

n(i)=i;

pop5=bestindividual;

x(i)=decodechrom(pop5,1,chromlength)*10/1023;

pop=newpop;

end

fplot(@(x)9.*sin(5.*x)+8.*cos(4.*x))

hold on

plot(x,y,'r')

hold off

function [besti

Copyright © 2022 世界杯预选赛欧洲区_世界杯在哪个国家举行 - kd896.com All Rights Reserved.