首页编程遗传算法代码(求遗传算法(GA)C语言代码)

遗传算法代码(求遗传算法(GA)C语言代码)

编程之家2023-11-0767次浏览

大家好,今天小编来为大家解答以下的问题,关于遗传算法代码,求遗传算法(GA)C语言代码这个很多人还不知道,现在让我们一起来看看吧!

遗传算法代码(求遗传算法(GA)C语言代码)

遗传算法的matlab代码实现是什么

遗传算法我懂,我的论文就是用着这个算法,具体到你要遗传算法是做什么?优化什么的。。。我给你一个标准遗传算法程序供你参考:

该程序是遗传算法优化BP神经网络函数极值寻优:

%%该代码为基于神经网络遗传算法的系统极值寻优

%%清空环境变量

clc

clear

遗传算法代码(求遗传算法(GA)C语言代码)

%%初始化遗传算法参数

%初始化参数

maxgen=100;%进化代数,即迭代次数

sizepop=20;%种群规模

pcross=[0.4];%交叉概率选择,0和1之间

pmutation=[0.2];%变异概率选择,0和1之间

遗传算法代码(求遗传算法(GA)C语言代码)

lenchrom=[1 1];%每个变量的字串长度,如果是浮点变量,则长度都为1

bound=[-5 5;-5 5];%数据范围

individuals=struct('fitness',zeros(1,sizepop),'chrom',[]);%将种群信息定义为一个结构体

avgfitness=[];%每一代种群的平均适应度

bestfitness=[];%每一代种群的最佳适应度

bestchrom=[];%适应度最好的染色体

%%初始化种群计算适应度值

%初始化种群

for i=1:sizepop

%随机产生一个种群

individuals.chrom(i,:)=Code(lenchrom,bound);

x=individuals.chrom(i,:);

%计算适应度

individuals.fitness(i)=fun(x);%染色体的适应度

end

%找最好的染色体

[bestfitness bestindex]=min(individuals.fitness);

bestchrom=individuals.chrom(bestindex,:);%最好的染色体

avgfitness=sum(individuals.fitness)/sizepop;%染色体的平均适应度

%记录每一代进化中最好的适应度和平均适应度

trace=[avgfitness bestfitness];

%%迭代寻优

%进化开始

for i=1:maxgen

i

%选择

individuals=Select(individuals,sizepop);

avgfitness=sum(individuals.fitness)/sizepop;

%交叉

individuals.chrom=Cross(pcross,lenchrom,individuals.chrom,sizepop,bound);

%变异

individuals.chrom=Mutation(pmutation,lenchrom,individuals.chrom,sizepop,[i maxgen],bound);

%计算适应度

for j=1:sizepop

x=individuals.chrom(j,:);%解码

individuals.fitness(j)=fun(x);

end

%找到最小和最大适应度的染色体及它们在种群中的位置

[newbestfitness,newbestindex]=min(individuals.fitness);

[worestfitness,worestindex]=max(individuals.fitness);

%代替上一次进化中最好的染色体

if bestfitness>newbestfitness

bestfitness=newbestfitness;

bestchrom=individuals.chrom(newbestindex,:);

end

individuals.chrom(worestindex,:)=bestchrom;

individuals.fitness(worestindex)=bestfitness;

avgfitness=sum(individuals.fitness)/sizepop;

trace=[trace;avgfitness bestfitness];%记录每一代进化中最好的适应度和平均适应度

end

%进化结束

%%结果分析

[r c]=size(trace);

plot([1:r]',trace(:,2),'r-');

title('适应度曲线','fontsize',12);

xlabel('进化代数','fontsize',12);ylabel('适应度','fontsize',12);

axis([0,100,0,1])

disp('适应度变量');

x=bestchrom;

%窗口显示

disp([bestfitness x]);

求遗传算法(GA)C语言代码

.----来个例子,大家好理解..--

基于遗传算法的人工生命模拟

#include<stdio.h>

#include<stdlib.h>

#include<graphics.h>

#include<math.h>

#include<time.h>

#include<string.h>

#include"graph.c"

/*宏定义*/

#define TL1 20/*植物性食物限制时间*/

#define TL2 5/*动物性食物限制时间*/

#define NEWFOODS 3/*植物性食物每代生成数目*/

#define MUTATION 0.05/*变异概率*/

#define G_LENGTH 32/*个体染色体长度*/

#define MAX_POP 100/*个体总数的最大值*/

#define MAX_FOOD 100/*食物总数的最大值*/

#define MAX_WX 60/*虚拟环境的长度最大值*/

#define MAX_WY 32/*虚拟环境的宽度最大值*/

#define SX1 330/*虚拟环境图左上角点x坐标*/

#define SY1 40/*虚拟环境图左上角点y坐标*/

#define GX 360/*个体数进化图形窗口的左上角点X坐标*/

#define GY 257/*个体数进化图形窗口的左上角点Y坐标*/

#define GXR 250/*个体数进化图形窗口的长度*/

#define GYR 100/*个体数进化图形窗口的宽度*/

#define GSTEP 2/*个体数进化图形窗口的X方向步长*/

#define R_LIFE 0.05/*初期产生生物数的环境比率*/

#define R_FOOD 0.02/*初期产生食物数的环境比率*/

#define SL_MIN 10/*个体寿命最小值*/

/*全局变量*/

unsigned char gene[MAX_POP][G_LENGTH];/*遗传基因*/

unsigned char iflg[MAX_POP];/*个体死活状态标志变量*/

跪求一份多目标遗传算法的代码,matlab的

我给你一个标准遗传算法程序供你参考:

该程序是遗传算法优化BP神经网络函数极值寻优:

%%该代码为基于神经网络遗传算法的系统极值寻优

%%清空环境变量

clc

clear

%%初始化遗传算法参数

%初始化参数

maxgen=100;%进化代数,即迭代次数

sizepop=20;%种群规模

pcross=[0.4];%交叉概率选择,0和1之间

pmutation=[0.2];%变异概率选择,0和1之间

lenchrom=[1 1];%每个变量的字串长度,如果是浮点变量,则长度都为1

bound=[-5 5;-5 5];%数据范围

individuals=struct('fitness',zeros(1,sizepop),'chrom',[]);%将种群信息定义为一个结构体

avgfitness=[];%每一代种群的平均适应度

bestfitness=[];%每一代种群的最佳适应度

bestchrom=[];%适应度最好的染色体

%%初始化种群计算适应度值

%初始化种群

for i=1:sizepop

%随机产生一个种群

individuals.chrom(i,:)=Code(lenchrom,bound);

x=individuals.chrom(i,:);

%计算适应度

individuals.fitness(i)=fun(x);%染色体的适应度

end

%找最好的染色体

[bestfitness bestindex]=min(individuals.fitness);

bestchrom=individuals.chrom(bestindex,:);%最好的染色体

avgfitness=sum(individuals.fitness)/sizepop;%染色体的平均适应度

%记录每一代进化中最好的适应度和平均适应度

trace=[avgfitness bestfitness];

%%迭代寻优

%进化开始

for i=1:maxgen

i

%选择

individuals=Select(individuals,sizepop);

avgfitness=sum(individuals.fitness)/sizepop;

%交叉

individuals.chrom=Cross(pcross,lenchrom,individuals.chrom,sizepop,bound);

%变异

individuals.chrom=Mutation(pmutation,lenchrom,individuals.chrom,sizepop,[i maxgen],bound);

%计算适应度

for j=1:sizepop

x=individuals.chrom(j,:);%解码

individuals.fitness(j)=fun(x);

end

%找到最小和最大适应度的染色体及它们在种群中的位置

[newbestfitness,newbestindex]=min(individuals.fitness);

[worestfitness,worestindex]=max(individuals.fitness);

%代替上一次进化中最好的染色体

if bestfitness>newbestfitness

bestfitness=newbestfitness;

bestchrom=individuals.chrom(newbestindex,:);

end

individuals.chrom(worestindex,:)=bestchrom;

individuals.fitness(worestindex)=bestfitness;

avgfitness=sum(individuals.fitness)/sizepop;

trace=[trace;avgfitness bestfitness];%记录每一代进化中最好的适应度和平均适应度

end

%进化结束

%%结果分析

[r c]=size(trace);

plot([1:r]',trace(:,2),'r-');

title('适应度曲线','fontsize',12);

xlabel('进化代数','fontsize',12);ylabel('适应度','fontsize',12);

axis([0,100,0,1])

disp('适应度变量');

x=bestchrom;

%窗口显示

disp([bestfitness x]);

文章分享结束,遗传算法代码和求遗传算法(GA)C语言代码的答案你都知道了吗?欢迎再次光临本站哦!

upload,upload是什么意思学编程,学习编程都学些什么内容