⑴ 使用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遗传算法工具箱啊
工具箱要安装到指定的路径,好久没有用了,具体我也记不住了,你可以
网络搜索专
一下。属路径安装不对就会出问题。如果安装对了,你用help命令显示一下函数.
函数的m文件不用运行,直接调用就可以。eval=-eval;
以后eval变为负的了,而ga函数要求参数必须是正的。
⑶ Matlab自带遗传算法工具箱简介
Matlab提供遗传算法工具箱(Matlab2010版本之后),方便解决简单的优化问题,官方提示后续可能取消该功能。个人不建议使用工具箱求解数学规划问题,参数设置零散复杂,容易错漏,但可学习作为Demo问题的演示工具。
按从上到下,从左到右的顺序对Matlab自带的遗传算法工具箱GUI界面进行介绍和使用注意事项说明。
对应于非线性约束求解器
指定另外一个最小值函数,在遗传算法结束之后计算,在整数值限制的时候不可用。
⑷ 求解:怎样使用MATLAB中的遗传算法计算器Optimization Tool中的GA——Genetic Algorithm,如图,重谢
比如通过MATLAB遗传算法的思想求解f(x)=x*sin(10pi*x)+2.0,-1<=x<=2的最大值问题,结果精确版到3位小数。
首先在matlab命令权窗口输入f=@(x)-(x*sin(10*pi*x)+2) 输出结果为
>> f=@(x)-(x*sin(10*pi*x)+2)
f =
@(x)-(x*sin(10*pi*x)+2)
接着输入gatool会打开遗传算法工具箱
显示51代之后算法终止,最小结果为-3.85027334719567,对应的x为1.851,由于自定义函数加了负号,所以原式的最大值为3.85027334719567,对应的x为1.851。
不过这是遗传算法得到的结果,每次运行的结果可能会有所不同,而且不一定是确切的最大值。
遗传算法适合应用在一些求最优解比较复杂的问题(常规的算法运算时间过长,甚至无法解决)。
⑸ 用遗传算法工具箱求解一个多目标优化问题,现在需要一个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上安装遗传算法工具箱啊,为什么我安不上啊
直接在命令窗口里边输入gatool就行了,用遗传算法还可以使用ga函数,具体使用格式可以在help系统里看ga,你还可以按照如下步骤打开遗传算法工具箱:1,打开matlab,2点击左下方的start按钮
3,点toolboxes,打开后选择genetic
algorithm
and
direct
search
然后就可以进入gatool了,然后就会弹出ga工具箱(注:我的版本是7.7的,不同版本可能不同)