服务咨询热线0898-88889999
网站首页 关于杏耀 杏耀中心 杏耀动态 杏耀登录 杏耀注册 杏耀平台 杏耀开户 联系我们
咨询热线
0898-88889999
地址:海南省海口市
邮箱:admin@youweb.com

杏耀动态

当前位置: 首页 > 杏耀动态

#MATLAB# 全局优化求解器

发布时间:2024-06-10 05:15:49 点击量:

为了数模,整理下MATLAB中常见的全局优化求解器。

算法Matlab求解器作用
全局搜索GlobalSearch寻找全局最小值
多起点搜索MultiStart寻找多个局部最小值(也可以得到全局最优)
模式搜索patternsearch用模式搜索方式寻找函数的最小值
遗传算法ga用遗传算法寻找函数的最小值
粒子群算法particleswarm用粒子群算法寻找函数的最小值
模拟退火simulannealbnd用模拟退火算法寻找函数的最小值
1. 全局搜索

官方文档中的demo

 

运行结果为

 

注:

  1. optimoptions的第一参数指定求解器,如果只输入求解器名字,其他参数将按默认的配置。这里采用的是fmincon,其为求解非线性多元函数最小值的matlab函数。算法采用内点法,其他可选的算法参数有’active-set’,‘sqp’,‘sqp-legacy’,‘trust-region-reflective’。除此之外,常见的配置属性有(其余详见MATLAB官方文档):
参数名作用
‘MaxIterations’指定最大迭代次数
‘ConstraintTolerance’约束容忍度,默认为 1 0 ? 6 10^{-6} 10?6
‘MaxFunctionEvalutions’函数评估的最大次数
2. 多起点搜索

与GlobalSearch的用法基本相同,需要注意的是在使用MultiStart时,run函数需要有三个参数:求解器,优化问题,求解器个数n。如此才能够从多个起点同时进行运算。

 

运行结果为

 

与GlobalSearch的结果一致。

3. 模式搜索

模式搜索pattersearch,全是小写字母,说明其是一个函数。而上面的GlobalSearch,MultiStart为类。因此用法上自然也有所不同。其可求解如下形式的问题:

min F ( x ) s.t. A ? X < = B , A e q ? X = B e q ( 线 性 约 束 ) C ( X ) < = 0 , C e q ( X ) = 0 ( 非 线 性 约 束 ) L B < = X < = U B \begin{array}{rl} extrm{min}\quad &F(x)\\ extrm{s.t.}\quad& A*X <= B,Aeq*X = Beq(线性约束) \\ &C(X) <= 0, Ceq(X) = 0 (非线性约束)\\ & LB <= X <= UB \end{array} mins.t.?F(x)A?X<=B,Aeq?X=Beq(线)C(X)<=0,Ceq(X)=0(线)LB<=X<=UB?

函数调用方式如下(更多形式见官方文档)

 

下面还是给几个MATLAB官方文档中的demo。

  1. 求解无约束优化问题
 

运行结果为

 
  1. 求解带线性不等式约束的优化问题
 

运行结果为

 
  1. 求解带box约束的优化问题
 
 
4. 遗传算法

可求解如下形式的问题:

min F ( x ) s.t. A ? X < = B , A e q ? X = B e q ( 线 性 约 束 ) C ( X ) < = 0 , C e q ( X ) = 0 ( 非 线 性 约 束 ) L B < = X < = U B X ( i ) integer vector INTCON \begin{array}{rl} extrm{min}\quad &F(x)\\ extrm{s.t.}\quad& A*X <= B,Aeq*X = Beq(线性约束) \\ &C(X) <= 0, Ceq(X) = 0 (非线性约束)\\ & LB <= X <= UB\\ & X(i)\quad extrm{integer}\\ & extrm{vector\; INTCON} \end{array} mins.t.?F(x)A?X<=B,Aeq?X=Beq(线)C(X)<=0,Ceq(X)=0(线)LB<=X<=UBX(i)integervectorINTCON?

 

注:
nvar: Number of design variables
nonlcon: Nonlinear constraint function
intcon : Index vector for integer variables
X ( i ) X(i) X(i)为整数,则 intcon = i extrm{intcon} = i intcon=i
若nonlcon非空,则A,b为空

Demo

 

运行结果为:

 
5. 粒子群算法

可求解如下形式的问题:

min F ( x ) L B < = X < = U B \begin{array}{rl} extrm{min}\quad &F(x)\\ & LB <= X <= UB \end{array} min?F(x)LB<=X<=UB?

调用形式

 

Demo

 

运行结果如下

 
6. 模拟退火

可求解如下形式的问题:

min F ( x ) L B < = X < = U B \begin{array}{rl} extrm{min}\quad &F(x)\\ & LB <= X <= UB \end{array} min?F(x)LB<=X<=UB?

调用形式

 

Demo

 

运行结果为

 

平台注册入口