PSO工具箱中,如何添加等式约束条件

PSO工具箱中,如何添加等式约束条件,第1张

1条回答

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

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

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

懂了木有呢,亲?

这关键是适应度函数液友的问题,你可以编写如下适应度函数: F=|E(X1y1+X2y2)-0|+|D(X1y1+X2y2)-1|,F值越小越好,||指的是绝对值肆则。 而变量你裂埋棚就选取X1和X2里的每个元素。比如X1=[x1,x2,x3]X2=[x4,x5,x6]你就可以设置PSO的变量为x1到x6这六个值...


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/8225215.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存