【单目标优化求解】基于matlab水循环算法求解约束优化问题【含Matlab源码 1428期】

举报
海神之光 发表于 2022/05/29 23:55:43 2022/05/29
【摘要】 一、获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。 获取代码方式2: 完整代码已上传我的资源:【单目标优化求解】基于matlab水循环算法求解约束优...

一、获取代码方式

获取代码方式1:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

获取代码方式2:
完整代码已上传我的资源:【单目标优化求解】基于matlab水循环算法求解约束优化问题【含Matlab源码 1428期】

备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、部分源代码

clear all;
clc;
close all;

format long g

objective_function=@fun;
constraints=@Constraints;

for k=1:1  % Number of independent runds
    %==========================================================================
    % Problem 1
    % nvars=7;
    % LB=[-10 -10 -10 -10 -10 -10 -10];
    % UB=[10 10 10 10 10 10 10];
    %==========================================================================
    % Problem 2
    % nvars=5;
    % LB=[78 33 27 27 27];
    % UB=[102 45 45 45 45];
    %==========================================================================
    % Problem 3
    % nvars=10;
    % LB=ones(1,nvars)*0;
    % UB=ones(1,nvars)*1;
    %==========================================================================
    % Problem 4
    % nvars=3;
    % LB=ones(1,nvars)*0;
    % UB=ones(1,nvars)*10;
    %==========================================================================
    % Three-bar truss problem
    % nvars=2;
    % LB=[0 0];
    % UB=[1 1];
    %==========================================================================
    % Speed reducer problem
    nvars=7;
    LB=[2.6 0.7 17 7.3 7.3 2.9 5];
    UB=[3.6 0.8 28 8.3 8.3 3.9 5.5];
    %==========================================================================
    % Pressure vessel problem
    % nvars=4;
    % LB=[0 0 10 10];
    % UB=[100 100 200 200];
    %==========================================================================
    % Tension/compression spring design problem
    % nvars=3;
    % LB=[0.05 0.25 2];
    % UB=[2 1.3 15];
    %==========================================================================
    % Welded beam problem
    % nvars=4;
    % LB=[0.1 0.1 0.1 0.1];
    % UB=[2 10 10 2];
    %==========================================================================
    % Rolling Element Bearing
    % nvars=10;
    % D=160;
    % d=90;
    % LB=[0.5*(D+d) 0.15*(D-d) 4 0.515 0.515 0.4 0.6 0.3 0.02 0.6];
    % UB=[0.6*(D+d) 0.45*(D-d) 50 0.6 0.6 0.5 0.7 0.4 0.1 0.85];
    %==========================================================================
    % Multiple disk clutch brake
    % nvars=5;
    %--------------Info
    % % ri=[60,21,21,...,80]; x(1)
    % % ro=[90,91,92,...,110]; x(2)
    % % t=[1,1.5,2,2.5,3]; x(3)
    % % F=[600,610, 620,...,1000]; x(4)
    % % Z=[2,3,4,5,6,7,8,9]; x(5)
    %-------------
    % LB=[60 90 1 2];
    % UB=[80 110 3 9];
    
    [Xmin,Fmin,SUM_Constraints,NFEs,Elapsed_Time]=WCA_Const(objective_function,constraints,LB,UB,nvars)

    
    disp(['Run: ',num2str(k),'   Fmin= ',num2str(Fmin),'  Summation Constraint Violations:  ',num2str(SUM_Constraints)]);
    
    F(k)=Fmin;
    N(k)=NFEs;
    
end

[Min_F index]=min(F)
Ave_F=mean(F)
Max_F=max(F)
SD_F=std(F)

[Min_NFEs indexx]=min(N)
Ave_NFEs=mean(N)
Max_NFEs=max(N)
SD_NFEs=std(N)
function FVAL=fun(x)
%==========================================================================
% Problem 1
% FVAL=(x(1)-10)^2+5*((x(2)-12)^2)+x(3)^4+3*((x(4)-11)^2)+10*(x(5)^6)+7*(x(6)^2)+x(7)^4-4*x(6)*x(7)-10*x(6)-8*x(7);
%==========================================================================
% Problem 2
% FVAL=5.3578547*x(3)^2+0.8356891*x(1)*x(5)+37.293239*x(1)-40792.141;
%==========================================================================
% Problem 3
% nvars=10;
% a=1;
% 
% for i=1:nvars
%     aa=x(i);
%     a=aa*a;
% end
% FVAL=-((sqrt(nvars))^nvars)*a;
%==========================================================================
% Problem 4
% FVAL=-((100-(x(1)-5)^2-(x(2)-5)^2-(x(3)-5)^2)/100);
%==========================================================================
% Three-bar truss problem
% FVAL=(2*sqrt(2)*x(1)+x(2))*100;
%==========================================================================
% Speed reducer problem  
FVAL=0.7854*x(1)*x(2)^2*(3.3333*x(3)^2+14.9334*x(3)-43.0934)-1.508*x(1)*(x(6)^2+x(7)^2)+7.4777*(x(6)^3+x(7)^3)+0.7854*(x(4)*x(6)^2+x(5)*x(7)^2);
%==========================================================================
% Pressure Vessel
%FVAL=0.6224*x(1)*x(3)*x(4)+1.7781*x(2)*x(3)^2+3.1661*x(1)^2*x(4)+19.84*x(1)^2*x(3);
%==========================================================================
% Spring design
% FVAL=(x(3)+2)*x(2)*(x(1)^2);
%==========================================================================
% Welded Beam
% FVAL=1.10471*x(1)^2*x(2)+0.04811*x(3)*x(4)*(14+x(2));
%==========================================================================
% Rolling element bearing
% gama=x(2)/x(1);
% fc=37.91*((1+(1.04*((1-gama/1+gama)^1.72)*((x(4)*(2*x(5)-1)/x(5)*(2*x(4)-1))^0.41))^(10/3))^-0.3)*((gama^0.3*(1-gama)^1.39)/(1+gama)^(1/3))*(2*x(4)/(2*x(4)-1))^0.41;
% 
% if x(2)<=25.4
%     FVAL=-fc*x(3)^(2/3)*x(2)^1.8;   
% else
%     FVAL=-3.647*fc*x(3)^(2/3)*x(2)^1.4;
% end
%==========================================================================
% Multiple disk clutch brake (Discrete variables)
% ri=60:80;
% r0=90:110;
% t=[1.5 2 2.5 3];
% f=600:10:1000;
% z=2:9;
% r0=0.0000078;
% FVAL=pi*(x(2)^2-x(1)^2)*x(3)*(x(5)+1)*r0;
%==========================================================================

三、运行结果

在这里插入图片描述

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.

文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。

原文链接:qq912100926.blog.csdn.net/article/details/120914975

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。