1. 使用MATLAB遗传算法工具箱如何设置参数使得收敛速度加快
fitness function要自己设计的 比如y=sinx 也要编成一个m文件啊……
2. matlab遗传算法工具箱求解多元函数显示输入参数数目不足求解答,非常感谢
错误的主要原因是你写的函数有问题。函数应该这样来表示:
function y = Test1(x)
a=x(1);b=x(2);
y=a+b;
end
使用优化工具箱,选择ga,运行可以得到如下结果
3. matlab遗传算法工具箱函数的参数问题
可能的原因是:
1.gatbx工具箱下的crtbp函数的文件名为crtbp.m,大小写不统一所以出现了warning,需要把把专它改为属小写的crtbp.m;
2.gatbx属于第三方工具箱,matlab自身对它是没有说明的,所以搜不到这些遗传算法的指令。
4. MATLAB遗传算法工具箱优化变量定义问题
你定义的目标函数有问题。应把h1、h2、h3看成一个变量组,即h=[h1,h2,h3],即
function y=Fitfun1(h)
y=25*h(1)+50*h(2)-10*h(3) %为了说回明问题,把函数表达答式写成该形式
如还不能理解,最好把具体问题贴出来,包括其约束条件,以便我们帮助你。
5. matlab遗传算法工具箱应用问题.在适应度函数处应该输入什么约束条件怎么输入
这个ga工具箱只能解决简单的线性约束问题,你的约束条件是非线性约束,所以你还是要使用gatbx菲尔德大学的那个工具箱,你的问题带有不等式约束,转化为无约束的拉格朗日对偶问题求解
6. 使用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嘛 我也木有用过,其实你也可以不用管的。
懂了木有呢,亲?
7. 请教用matlab编遗传算法程序如何给多个变量定义不同的范围
matlab是不需要预定义变量的,
如果你要限制变量的范围,可以独自单个定义。
如果它们的范围相同,可以直接赋值
8. matlab遗传算法工具箱可以自己先赋初值吗
可以的,你应该在自定义函数中体现。例如:
function y=ga_main(x)
y=max(x)+floor(abs(x(1))/abs(x(2)))
end
然后,在遗传算法工具箱中调用。