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

 我来答
fisher_man1990
推荐于2018-03-07 · TA获得超过1231个赞
知道小有建树答主
回答量:217
采纳率:100%
帮助的人:187万
展开全部

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

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

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

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

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

 

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

help ga 之后会得到一下一些函数

ga

Find minimum of function using genetic algorithm  //这个是定义

      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嘛  我也木有用过,其实你也可以不用管的。

懂了木有呢,亲?

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式