导航:首页 > 源码编译 > matlab遗传算法函数优化

matlab遗传算法函数优化

发布时间:2022-09-27 11:27:30

⑴ 用matlab做遗传算法解决优化问题时候的约束处理

对于类似a+b+c+d+e=1的约束,只能是尽量随机又均匀地生成若干点,作为初始,来探索这个五维空间。对于a至d采用随机生成的方式,e的值用1去减,如此可保证约束成立。同时生成a至d的方式要尽量合理,以保证e的期望值和分布状态合理。

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

杀鸡焉用牛刀。用for循环就可以了。
for x1=-2.048:0.001:2.048;
for x2=-2.048:0.001:2.048;
f1=100*(x1^2-x2)^2+(1-x1)^2;
if x1+2.048<0.00001 && x2+2.048<0.00001
f2=f1;
end
if f1>f2
f2=f1;
end
end
end
fprintf('max=%.4f',f2)

⑶ 基于Matlab的函数优化遗传算法程序

新建一个函数
_f.m
function
f=_f(x)
f=0.5-((sin(sqrt(x(1)^2+x(2)^2)))^2-0.5)/(1+0.001*(x(1)^2+x(2)^2)^2)
然后用fmins函数寻找极值。
x
=
fmins('_f',
[0
0],
[2
2]);
另外你的语句中有错,少写了一个括号,你再自己检查一下。

⑷ 本人刚学MATLAB遗传算法工具箱,请大家帮我看一下这个简单一元函数优化错误的原因及怎样修改。

由于有代沟,所以plot中的variable是36*20的,而I对应的ObjV是40*1的,所以I可能取40个值,但variable只有36行,所以出错。在“gen=gen+1;%代计数器增加”后加variable=bs2rv(Chrom,FieldD),你调试一下试试。

⑸ 各位谁擅长遗传算法呀,我这有个函数得用遗传算法编一下,进行最优化求解的过程,最好是用Matlab。

% 主程序
%遗传算法主程序
%Name:genmain.m
%author:杨幂

clear
clf
%%初始化
popsize=50; %群体大小
chromlength=30; %字符串长度(个体长度)
pc=0.6; %交叉概率
pm=0.1; %变异概率
pop=initpop(popsize,chromlength); %随机产生初始群体
%%开始迭代
for i=1:20 %20为迭代次数
[objvalue]=calobjvalue(pop); %计算目标函数
fitvalue=calfitvalue(objvalue); %计算群体中每个个体的适应度
[newpop]=selection(pop,fitvalue); %复制
[newpop]=crossover(pop,pc); %交叉
[newpop]=mutation(pop,pm); %变异
[bestindivial,bestfit]=best(pop,fitvalue); %求出群体中适应值最大的个体及其适应值
y(i)=max(bestfit);%储存最优个体适应值
n(i)=i;
pop5=bestindivial;%储存最优个体
%解码
x1(i)=decodechrom(pop5,1,chromlength/2)*2/32767;
x2(i)=10+decodechrom(pop5,chromlength/2+1,chromlength/2)*10/32767;
pop=newpop;%将新产生的种群作为当前种群
end
%%绘图
figure(1)%最优点变化趋势图
i=1:20;
plot(y(i),'-r*')
xlabel('迭代次数');
ylabel('最优个体适应值');
title('最优点变化趋势');
legend('最优点');
grid on

figure(2)%最优点分布图
[X1,X2]=meshgrid(0:0.1:2,10:0.1:20);
Z=X1.^2+X2.^2;
mesh(X1,X2,Z);
xlabel('自变量x1'),ylabel('自变量x2'),zlabel('函数值f(x1,x2)');
hold on
plot3(x1,x2,y,'ro','MarkerEdgeColor','r','MarkerFaceColor','r','MarkerSize',5)
title('最优点分布');
legend('最优点');
hold off

[z index]=max(y); %计算最大值及其位置
x5=[x1(index),x2(index)]%计算最大值对应的x值
z

⑹ 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
这个具体原因需要参考遗传算法的有关资料

⑺ MATLAB中用遗传算法优化模糊控制的隶属函数,模糊控制是用的模糊工具箱,优化结果怎样连接模糊工具箱呢

(1)模糊统计法: 模糊统计法的基本思想是对论域U上的一个确定元素vo是否属于论域上的一个可变动的清晰集合A3作出清晰的判断.对于不同的试验者,清晰集合 A3可以有不同的边界,但它们都对应于同一个模糊集A.模糊统计法的计算步骤是:在每次统计中, vo是固定的,A3的值是可变的,作 n次试验,其模糊统计可按下式进行计算 v0对 A 的隶属频率 = v0∈A 的次数 / 试验总次数 n 随着 n的增大,隶属频率也会趋向稳定,这个稳定值就是 vo对A 的隶属度值.这种方法较直观地反映了模糊概念中的隶属程度,但其计算量相当大. (2)例证法: 例证法的主要思想是从已知有限个μA的值,来估计论域 U 上的模糊子集 A 的隶属函数.如论域 U代表全体人类,A 是“高个子的人”.显然 A 是一个模糊子集.为了确定μA,先确定一个高度值 h,然后选定几个语言真值(即一句话的真实程度)中的一个来回答某人是否算“高个子”.如语言真值可分为“真的”、“大致真的”、“似真似假”、

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

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

⑼ MATLAB遗传算法工具箱优化变量定义问题

你定义的目标函数有问题。应把h1、h2、h3看成一个变量组,即h=[h1,h2,h3],即
function y=Fitfun1(h)
y=25*h(1)+50*h(2)-10*h(3) %为了说明问题,把函数表达式写成该形式
如还不能理解,最好把具体问题贴出来,包括其约束条件,以便我们帮助你。

⑽ matlab遗传算法工具箱优化结果数值

ga就是在穷举不可能完成时,用一种方式找到最优解
ga工具的完整形式如下表示
[X,FVAL,EXITFLAG,OUTPUT,POPULATION,SCORES] =
GA(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub,NONLCON,options)
X是最优自变量
FVAL是求得的最优值
其他以此是推出标志,结构体,终止时的总群,终止时种群函数值
后半部分以此是目标函数,目标函数自变量个数
A和b是线性约束不等式AX〈b
Aeq和beq是一对线性等式约束,AeqX=beq
lb是X值下限,ub是X值下限
NONLCON是非线性约束函数 options是运行方式。这两个可以写函数自己完成,也可默认
函数默认计算最小值,计算最大值要加负号

阅读全文

与matlab遗传算法函数优化相关的资料

热点内容
超声雾化器与压缩雾化器 浏览:641
模拟实现进程调度算法 浏览:386
现在的压缩包都是加密 浏览:329
施工员找工作去哪个app 浏览:630
安卓手机的游戏怎么打开 浏览:200
pdf扫描转文字 浏览:532
微机室里面的云服务器 浏览:108
excel能编程吗 浏览:931
android系统框架的介绍 浏览:947
无盘系统服务器如何配置 浏览:836
背负贷款如何缓解压力 浏览:82
linux获取日期时间 浏览:881
搬砖问题最合适的算法 浏览:446
小米安卓机密码忘记了如何解锁 浏览:910
产电plc编程手册 浏览:761
vscodephp 浏览:535
阿里云linux桌面 浏览:754
php二维数组搜索 浏览:116
ps快捷命令工具箱 浏览:253
c4d教程pdf 浏览:462