24小时热门版块排行榜    

查看: 1365  |  回复: 3
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

浮尘nwpu

铁虫 (小有名气)

[求助] 使用谢菲尔德大学开发的Matlab遗传算法工具箱GATBX时,如何添加非线性约束 已有3人参与

例如下面的例子该如何使用GATBX求解:
min f(x) = 100 * (x1^2 - x2) ^2 + (1 - x1)^2;
s.t.
x1*x2 + x1 - x2 + 1.5 <=0, (nonlinear constraint)
   10 - x1*x2 <=0,            (nonlinear constraint)
   0 <= x1 <= 1, and          (bound)
   0 <= x2 <= 13              (bound)

各位大神给点提示,小弟感激不尽。
回复此楼
ffffffffff
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiao_668

新虫 (初入文坛)

【答案】应助回帖

这种简单的用matlab自带的gatool就能解决
3楼2015-07-09 10:39:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

射线

铜虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
我来抛砖引玉下,lz可以试试用罚函数来解决这种约束问题
2楼2015-05-26 23:22:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

583091408

新虫 (初入文坛)

【答案】应助回帖

编写约束函数
functionn [c,ceq]=yuesu(x)
c=[x(1)*x(2)+x(1)-x(2)+1.5;10-x(1)*x(2)];
ceq=[];
end
后面两个不等式直接设置成lower,和upper分别为[0,0],[1,13]
再GUI里面非线性约束里输入输入@yuesu就OK了
4楼2015-10-21 08:28:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见