当前位置:首页 » 操作系统 » 遗传算法优化matlab

遗传算法优化matlab

发布时间: 2023-01-17 15:00:54

⑴ 用遗传算法工具箱求解一个多目标优化问题,现在需要一个matlab程序,求高人指点

用遗传算法工具箱求解一个多目标优化问题的步骤:

1、根据题意,建立自定义目标函数,ga_fun1(x)

2、在命令窗口中,输入

>> optimtool %调用遗传算法工具箱

3、在遗传算法工具箱界面中,分别对Fitnessfunction框内输入@ga_fun1();A框内输入[1,1,1];b框内输入16;Aeq框内输入[];beq框内输入[];Lower框内输入[0,0,0];Upper框内输入[];

4、单击Start。得到x=4.508 y=2.513 z=1.912值。

⑵ 关于MATLAB遗传算法的问题

不知道你这个遗传算法得出的结果与你已知的最小值差距多大?其实遗传算法作为优化算法,得到的只是优化解,不一定是最优解,此其一,其二,基本遗传算法可调整的参数太多,例如选择,交叉的方法,而这些对结果影响还是比较大的,如果你用轮盘赌方法效果不怎样,可以选择用其他方法试试。

最后,matlab是有遗传工具箱的,你可以直接使用工具箱得到结果,如果你不确定你的程序有没有写错的话。也可以作为一个参考。

⑶ matlab的遗传算法优化BP神经网络

对y=x1^2+x2^2非线性系统进行建模,用1500组数据对网络进行构建网络,500组数据测试网络。由于BP神经网络初始神经元之间的权值和阈值一般随机选择,因此容易陷入局部最小值。本方法使用遗传算法优化初始神经元之间的权值和阈值,并对比使用遗传算法前后的效果。
步骤:
未经遗传算法优化的BP神经网络建模
1、
随机生成2000组两维随机数(x1,x2),并计算对应的输出y=x1^2+x2^2,前1500组数据作为训练数据input_train,后500组数据作为测试数据input_test。并将数据存储在data中待遗传算法中使用相同的数据。
2、
数据预处理:归一化处理。
3、
构建BP神经网络的隐层数,次数,步长,目标。
4、
使用训练数据input_train训练BP神经网络net。

⑷ MATLAB遗传算法编程(多目标优化)

多目标是通过分布性 和非劣解来进行评价的

⑸ 遗传算法的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]; %数据范围

indivials=struct('fitness',zeros(1,sizepop), 'chrom',[]); %将种群信息定义为一个结构体
avgfitness=[]; %每一代种群的平均适应度
bestfitness=[]; %每一代种群的最佳适应度
bestchrom=[]; %适应度最好的染色体

%% 初始化种群计算适应度值
% 初始化种群
for i=1:sizepop
%随机产生一个种群
indivials.chrom(i,:)=Code(lenchrom,bound);
x=indivials.chrom(i,:);
%计算适应度
indivials.fitness(i)=fun(x); %染色体的适应度
end
%找最好的染色体
[bestfitness bestindex]=min(indivials.fitness);
bestchrom=indivials.chrom(bestindex,:); %最好的染色体
avgfitness=sum(indivials.fitness)/sizepop; %染色体的平均适应度
% 记录每一代进化中最好的适应度和平均适应度
trace=[avgfitness bestfitness];

%% 迭代寻优
% 进化开始
for i=1:maxgen
i
% 选择
indivials=Select(indivials,sizepop);
avgfitness=sum(indivials.fitness)/sizepop;
%交叉
indivials.chrom=Cross(pcross,lenchrom,indivials.chrom,sizepop,bound);
% 变异
indivials.chrom=Mutation(pmutation,lenchrom,indivials.chrom,sizepop,[i maxgen],bound);

% 计算适应度
for j=1:sizepop
x=indivials.chrom(j,:); %解码
indivials.fitness(j)=fun(x);
end

%找到最小和最大适应度的染色体及它们在种群中的位置
[newbestfitness,newbestindex]=min(indivials.fitness);
[worestfitness,worestindex]=max(indivials.fitness);
% 代替上一次进化中最好的染色体
if bestfitness>newbestfitness
bestfitness=newbestfitness;
bestchrom=indivials.chrom(newbestindex,:);
end
indivials.chrom(worestindex,:)=bestchrom;
indivials.fitness(worestindex)=bestfitness;

avgfitness=sum(indivials.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]);

⑹ 关于MATLAB遗传算法的问题

在matlab里没有
for
i
=
1
to
80
...
endfor
这样的语法的
在matlab里应该是:
for
i
=
1:
1:
80
...
end
1:1:80
第一个1是初始值,第二个是每次+1的意思
当然如果是我古若寡闻那也请见谅~~哈哈~~

⑺ matlab上的遗传算法函数优化

用ga函数,ga函数就是遗传算法的函数,它的调用格式为:
x
=
ga(fitnessfcn,nvars,a,b,aeq,beq,lb,ub,nonlcon,options)
fitnessfcn就是待优化函数,nvars为变量个数,然后后面的lb是下界,ub是上界,你这个问题就需要这4个位置的参数,其他位置的参数用[]代替就行,由于ga函数默认是求待优化函数的最小值,所以要想求最大值需要把待优化函数取负,即编写为
function
y=myfun(x)
y=-x.*sin(10*pi.*x)-2;
把这个函数存为myfun.m,然后在命令行里敲
x=ga(@myfun,1,[],[],[],[],[1],[2])
会返回
optimization
terminated:
average
change
in
the
fitness
value
less
than
options.tolfun.
x
=
1.8506
由于遗传算法的原理其实是在取值范围内随机选择初值然后进行遗传,所以可能每次运行给出的值都不一样,比如再运行一次会返回
optimization
terminated:
average
change
in
the
fitness
value
less
than
options.tolfun.
x
=
1.6507
这个具体原因需要参考遗传算法的有关资料

热点内容
android数据库的操作 发布:2025-07-04 04:37:35 浏览:165
登录时设置密码保存在哪里 发布:2025-07-04 04:34:23 浏览:532
网站开发源码 发布:2025-07-04 04:30:45 浏览:340
魔戒护卫队是什么配置 发布:2025-07-04 04:25:33 浏览:565
数据库外网 发布:2025-07-04 04:19:48 浏览:111
固件解压包 发布:2025-07-04 04:15:02 浏览:925
卡罗拉顶配都有什么配置 发布:2025-07-04 04:12:50 浏览:671
python3435 发布:2025-07-04 04:12:07 浏览:828
数据库日志满了 发布:2025-07-04 04:09:15 浏览:515
尚硅谷java视频ftp 发布:2025-07-04 04:09:13 浏览:646