导航:首页 > 五金知识 > matlab遗传算法工具箱变量约束

matlab遗传算法工具箱变量约束

发布时间:2022-02-02 17:15:55

『壹』 请问,Matlab遗传算法工具箱能施加的非线性隐性约束条件吗谢谢!!!

Matlab遗传算法工具箱是可以施加的非线性隐性约束条件的。例如:

min z= 3050*x1³+0.25*x2;

其中x1定义域[-0.381,0.381],x2定义域[-100,100]

求目标函数值为10时的x1、x2值。

求解结果

x1=0.14169943480903302 x2=5.289387991237991

function [c,ceq]=ga_con(x) %非线性约束条件函数

c=10-(3050*x(1)^3+0.25*x(2));

ceq=[];

『贰』 请高人指点:matlab遗传算法工具箱编程,求一个多约束,多元非线性方程的最小值


将下属两个目标函数分别保存在两个m文件中
function f1=func1(x) %第一目标函数
f1=x(:,1).*x(:,1)./4+x(:,2).*x(:,2)./4;
function f2=func2(x) %第二目标函数
f2=x(:,1).*(1-x(:,2))+10;

function GA()
clear;clc;close all
NIND=100; %个体数目
MAXGEN=50; %最大遗传代数
NVAR=2; %变量个数
PRECI=20; %变量的二进制位数
GGAP=0.9; %代沟
trace1=[];trace2=[];trace3=[]; %性能跟踪
%建立区域描述器
% rep([PRECI],[1,NVAR])
FieldD=[rep([PRECI],[1,NVAR]);rep([1;2],[1,NVAR]);rep([1;0;1;1],[1,NVAR])];
Chrom=crtbp(NIND,NVAR*PRECI); %初始种群
v=bs2rv(Chrom,FieldD) ; %初始种群十进制转换
gen=1;
while gen<MAXGEN,
[NIND,N]=size(Chrom);
M=fix(NIND/2);
ObjV1=func1(v(1:M,:)); %分组后第一目标函数值
FitnV1=ranking(ObjV1); %分配适应度值
SelCh1=select('sus',Chrom(1:M,:),FitnV1,GGAP); %选择
ObjV2=func2(v(M+1:NIND,:)); %分组后第二目标函数值
FitnV2=ranking(ObjV2); %分配适应度值
SelCh2=select('sus',Chrom(M+1:NIND,:),FitnV2,GGAP); %选择
SelCh=[SelCh1;SelCh2]; %合并
SelCh=recombin('xovsp',SelCh,0.7); %重组
Chrom=mut(SelCh); %变异
v=bs2rv(Chrom,FieldD);
trace1(gen,1)=min(func1(v));
trace1(gen,2)=sum(func1(v))/length(func1(v));
trace2(gen,1)=min(func2(v));
trace2(gen,2)=sum(func2(v))/length(func2(v));
trace3(gen,1)=min(func1(v)+func2(v));
trace3(gen,2)=sum(func1(v))/length(func1(v))+sum(func2(v))/length(func2(v));
gen=gen+1;
end
figure(1);clf;
plot(trace1(:,1));hold on;plot(trace1(:,2),'-.');
plot(trace1(:,1),'.');plot(trace1(:,2),'.');grid on;
legend('解的变化','种群均值的变化')
xlabel('迭代次数');ylabel('目标函数值');
figure(2);clf;
plot(trace2(:,1));hold on;
plot(trace2(:,2),'-.');
plot(trace2(:,1),'.');
plot(trace2(:,2),'.');grid;
legend('解的变化','种群均值的变化');
xlabel('迭代次数');ylabel('目标函数值');
figure(3);clf;
plot(trace3(:,1));hold on;
plot(trace3(:,2),'-.');
plot(trace3(:,1),'.');
plot(trace3(:,2),'.');grid;
legend('解的变化','种群均值的变化');
xlabel('迭代次数');ylabel('目标函数值');
figure(4);clf;plot(func1(v));hold on;
plot(func2(v),'r-.');grid;

『叁』 matlab遗传算法工具箱求解非线性约束问题,如何在GUI设置,或者这个程序如何编

感觉lb=[2,30];和ub=[2,30];上有问题。根据我的判断,lb=[2,30];和ub=[];,这样的话,可以得到,x1=5.91529880464077,x2= 91.34970961511135,y=8.612323770417001

『肆』 用遗传算法工具箱怎么求解线性约束函数

Matlab遗传算法工具箱是可以施加的非线性隐性约束条件的。例如:
min z= 3050*x1³+0.25*x2;
其中x1定义域[-0.381,0.381],x2定义域[-100,100]
求目标函数值为10时的x1、x2值。
求解结果
x1=0.14169943480903302 x2=5.289387991237991
function [c,ceq]=ga_con(x) %非线性约束条件函数
c=10-(3050*x(1)^3+0.25*x(2));
ceq=[];

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

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

『陆』 求助:关于matlab遗传算法工具箱中约束的输入问题

遗传算法工具箱的函数GA基本调用格式如下:
X = GA(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub)
其中前两个参数分别是适应度函数和变量个数,第三、四个参数(A和b)即为线性不等式约束。

你现在需要做的是,增加几个线性约束条件:
x1 < x2
x2 < x3
x3 < x4
x4 < x5
不过,有个问题,遗传算法等优化工具对不等式约束的要求,都必须是闭集(带等号的不等式),也就是说,要的是类似下面这样的约束:
x1 <= x2
x2 <= x3
x3 <= x4
x4 <= x5
不知道你的问题是否允许把约束放宽到上面的形式,如果可以,就很简单了(如果不能放宽,我暂时还没想起怎么解决):
x1 - x2 <= 0
x2 - x3 <= 0
x3 - x4 <= 0
x4 - x5 <= 0
也就是调用函数时,线性约束的A和b分别为
A = [
1 -1 0 0 0
0 1 -1 0 0
0 0 1 -1 0
0 0 0 1 -1
];
b=[0;0;0;0];

『柒』 使用matlab遗传算法工具箱如何加入目标函数中变量的约束条件啊,可否在M文件中加

首先回答你第一个问题:怎么加入变量的约束条件?

打开遗传算法工具箱的窗体中会有下图所示的选项,即是约束条件的编辑

至于添加的方式,这里要重点的提一下,首先将问题抽象成规划问题的标准形式(如果你不懂什么是标准形式的话,建议你去翻阅运筹学那本书,上告诉你什么是标准形式),然后用矩阵语言写出来,最后将矩阵的系数填写到线性不等约束和线性相等约束中,同时定义所求变量x的上界和下界(记住有多少个变量就有多少列,如果你发现有些条件中没有出现某些变量,那么就应该用0补足,这个是matlab解决规划问题与lingo想比较麻烦的一个地方,)。

然后回答你第二个问题:可否在M文件中添加约束条件?

当然可以,界面的东西是为了方便不熟悉matlab编程的人而设计出来的,但是其底层的算法和接口肯定是有的。

碰到不懂的函数,请记得:help函数名

helpga之后会得到一下一些函数

ga

//这个是定义

Syntax //这个是语法也即是调用的规则

x=ga(fitnessfcn,nvars)

x=ga(fitnessfcn,nvars,A,b)

x=ga(fitnessfcn,nvars,A,b,Aeq,beq)

x=ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB)

x=ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon)

x=ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon,options)

x=ga(problem)

[x,fval]=ga(...)

[x,fval,exitflag]=ga(...)

直接给你将最长的那个吧

x=ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon,options)

X是返回所求的解

fitnessfcn是适应度函数

nvars是适应度函数中所含变量的维数

A是不等式约束中变量的系数矩阵,b是不等式约束中不含变量的值矩阵

Aeq是等式约束中变量的系数矩阵,beq是等式约束中不含变量的值矩阵

LB是下界,UB是上界

nonlcon是非线性约束条件

至于options嘛 我也木有用过,其实你也可以不用管的。

懂了木有呢,亲?

『捌』 matlab遗传算法工具箱复杂约束条件在哪添加

是Matrix
Laboratory公司自己聘人做出来的,就是最标准的遗传算法
不是那种什么神经网络遗传算法,也不是什么遗传退火算法。
如果你自己有这类混杂算法的工具箱,只能自己去下载第三方的工具箱,当然前提是有人编过
英国谢菲尔德大学有一套自己的遗传算法工具箱,比MATLAB默认功能强大一些,但是相对难用
如果你不是有什么特殊的需求,默认的已经够了

『玖』 matlab遗传算法工具箱应用问题.在适应度函数处应该输入什么约束条件怎么输入

这个ga工具箱只能解决简单的线性约束问题,你的约束条件是非线性约束,所以你还是要使用gatbx菲尔德大学的那个工具箱,你的问题带有不等式约束,转化为无约束的拉格朗日对偶问题求解

阅读全文

与matlab遗传算法工具箱变量约束相关的资料

热点内容
大众汽车仪表盘怎么开里程数 浏览:193
皮带机拉紧装置怎么设计 浏览:211
川崎6r排气阀门 浏览:766
铸造废沙再生可以做什么用 浏览:120
机械图纸上m4代表什么意思 浏览:6
超级机械狗怎么获取 浏览:763
简述机械超速保护装置的动作过程 浏览:390
燃气阀门执行机构原理 浏览:463
机械装置翻译 浏览:773
如何恢复移除的设备 浏览:410
五金机电气什么名字 浏览:62
生活中的齿轮传动装置6 浏览:339
修电动车轴承用什么胶 浏览:428
机械安全装置有 浏览:408
采摘水果的小型机械装置 浏览:659
泵前泵后应该使用什么阀门 浏览:226
所有的云梯器材箱怎么打开 浏览:109
装置设计变量的压力等级数 浏览:634
苏州高中压阀门厂有限公司销售电话 浏览:529
自行车后轴轴承型号是什么 浏览:530