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

如题所述

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

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

至于添加的方式,这里要重点的提一下,首先将问题抽象成规划问题的标准形式(如果你不懂什么是标准形式的话,建议你去翻阅运筹学那本书,上告诉你什么是标准形式),然后用矩阵语言写出来,最后将矩阵的系数填写到线性不等约束和线性相等约束中,同时定义所求变量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嘛  我也木有用过,其实你也可以不用管的。

懂了木有呢,亲?

温馨提示:答案为网友推荐,仅供参考
相似回答