首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尽管存在惩罚,但鲸鱼优化算法中的等式约束未满足

尽管存在惩罚,但鲸鱼优化算法中的等式约束未满足
EN

Stack Overflow用户
提问于 2018-09-25 19:09:37
回答 1查看 99关注 0票数 0

我正在使用Matlab和鲸鱼优化Algorithm来优化我的11维系统。我需要保持一些等式约束(即x(2)-x(1)-90,x(4)-x(3)=60...)。我知道对于这些类型的优化算法,必须使用惩罚函数来解决约束问题(根据同一链接中的论文)。

我的目标函数名为House_cost,我在成本函数中添加了一个惩罚条件。

代码语言:javascript
复制
if((x(2)-x(1))~= 90)
C=inf;
end

其中C是我的成本,我也尝试将其设置为一个非常大的value.The,其余的界限和参数设置如下:

代码语言:javascript
复制
    dim = 11;
    Max_iteration =1000;
    SearchAgents_no = 30;
    lb = [1    1      1       1    2 1 50 3 19 1 1];
    ub = [1440  1440   1440   1440   5 3 80 10 24 3 200];
    fobj=@House_cost;
    Function_name='House_cost';

    tic;
    [Best_score,xbest,WOA_cg_curve]=WOA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);
    toc;

当我运行我的程序时,约束并不满足,实际上在我的最后一次尝试中x(2)-x(1)=-73。此问题的原因可能是什么?

EN

回答 1

Stack Overflow用户

发布于 2018-09-25 19:47:47

这些类型的随机搜索算法在处理等式约束方面不是很好。有时,您可以替换掉一个变量:

x2-x1=90

手段

x2 = 90+x1

因此,您可以从模型中删除变量x2和约束x2-x1=90

否则,请使用其他可以更好地处理联立方程的技术,例如整数规划(分段线性)、非线性规划等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52496778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档