A. 如何调用MATLAB遗传算法工具箱
1、打开MATLAB软件。
B. 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是运行方式。这两个可以写函数自己完成,也可默认
函数默认计算最小值,计算最大值要加负号
非线性约束条件的写法
function [c,ceq]=nonlcon(x) 定义函数自变量是x,x可以是一列矩阵
c=[]; c表示非线性等式约束,以为没有,所以为空
ceq=[x(1)-2*(x(2))^2;
x(1)+X(2) ] ceq是非线性不等式约束,默认ceq<=0,ceq可以为一列矩阵.
>>
C. matlab遗传算法工具箱安装问题
可能的原因是:
1.gatbx工具箱下的crtbp函数的文件名为CRTBP.M,大小写不统一所以出现了warning,需要把把它版改为小写的crtbp.m;
2.gatbx属于第权三方工具箱,MATLAB自身对它是没有说明的,所以搜不到这些遗传算法的指令。
D. 如何提高matlab的GA工具箱(遗传算法)的运算精度
options.TolFun=1e-10
E. 使用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嘛 我也木有用过,其实你也可以不用管的。
懂了木有呢,亲?
F. Genetic Algorithm 优化工具箱中非线性不等式约束怎么加
建立约束条件函数,把非线性的等式约束条件添加加在[c,ceq]中。如
function [c,ceq]=NonCon(x)
c=x(1)^2+x(2)^2-9;
ceq=[];
然后,再用ga()函数调用,如
[x, fval, exitflag] =ga(o@FitFun,nvars,A,b,Aeq,beq,lb,ub,NonCon)