MATLAB安装优化工具包OPTI Toolbox

Matlab自带优化工具箱提供了fmincon等诸多函数解决含约束条件的优化问题,但如果需要求解含整数约束的混合优化问题,fmincon就不是特别合适了,虽然提供了遗传算法优化函数ga,不过速度可能比较慢,因此有时候需要寻求第三方工具箱,最近发现一款名为OPTI Toolbox的三方工具箱可以作为Matlab自带优化工具箱的补充,用于求解一些比较复杂的问题。OPTI Toolbox集成了一系列优化求解器,其官方主页为https://www.inverseproblem.co.nz/OPTI/index.php/Main/HomePage,上面有对OPTI Toolbox的组成和使用方法的详细介绍,其代码的github地址为https://github.com/jonathancurrie/OPTI,不过从2019年其开发者就官宣停止维护了,见https://groups.google.com/forum/#!topic/opti-toolbox-forum/dR6x-1gBMkA,比较遗憾,不过现存的版本也已经足够强大了,下面简单介绍一下OPTI Toolbox的安装方法,这里默认已经安装了64位版本的Matlab。

  1. 在github地址上下载到OPTI-OPTI_Toolbox_v2.28_Released.zip(主程序)和optiMEXFiles_mexw64_2_28.zip(多种求解器的mex文件)两个压缩文件(https://github.com/jonathancurrie/OPTI/releases)将OPTI-OPTI_Toolbox_v2.28_Released.zip解压到想存放的地方,比如本人解压到Matlab工作文件夹下C:\Users\Truth\Documents\MATLAB\OPTI-OPTI_Toolbox_v2.28_Released;
  2. 打开Matlab软件,打开存放解压OPTI-OPTI_Toolbox_v2.28_Released.zip的文件夹(如C:\Users\Truth\Documents\MATLAB\OPTI-OPTI_Toolbox_v2.28_Released),运行opti_Install.m程序,遇到询问的提示就输入y,直到弹出选择文件对话框,选中optiMEXFiles_mexw64_2_28.zip文件,稍等片刻即可完成安装;
  3. 在Matlab命令窗口输入optiSolver即可看到可选的求解器,我们会发现有一些求解器是缺失的,本人试验了补充安装SCIP、sedumi和mosek这3个求解器的方法,在OPTI Toolbox官方主页上提供了获取SCIP求解器的方法(提供邮箱即可获得下载链接),另外sedumi求解器的github地址为https://github.com/sqlp/sedumi,mosek求解器的主页为https://www.mosek.com/。
  4. 对于SCIP求解器,下载得到的scip.mexw64文件直接放入C:\Users\Truth\Documents\MATLAB\OPTI-OPTI_Toolbox_v2.28_Released\Solvers文件夹下;
  5. 对于sedumi求解器,在github主页https://github.com/sqlp/sedumi/releases下载获得sedumi-1.3.4.zip后,解压至C:\Users\Truth\Documents\MATLAB\OPTI-OPTI_Toolbox_v2.28_Released\Solvers中,重命名为sedumi(个人习惯),运行C:\Users\Truth\Documents\MATLAB\OPTI-OPTI_Toolbox_v2.28_Released\Solvers\sedumi下的install_sedumi.m文件即可,然后在Matlab命令窗口输入edit optiSolver打开optiSolver.m文件,在第222行[~,major,minor] = getVerFromVerFile(‘sedumi’)的下方加一行minor=34(或者任何其他大于31的数字);即可;
  6. 对于mosek求解器,因为是商用软件,所以其官网https://www.mosek.com/有非常详细的安装方式,包括如何添加Matlab路径便于被调用,这里不再赘述,按照官网说明操作即可,提醒一下mosek需要license文件,如果有教育邮箱可以申请一年有效期,到期后可继续申请。本人安装的是9.1版,需要对C:\Users\Truth\Documents\MATLAB\OPTI-OPTI_Toolbox_v2.28_Released\Solvers\mosek\Utilities中的mosekRes文件,对第46行case语句中的sc.MSK_RES_ERR_OPEN_DL替换为sc.MSK_RES_ERR_LINK_FILE_DLL即可;
  7. 上述操作完成后,在Matlab命令窗口输入optiSolver可得到如下结果

来个小例子测试一下:

% Objective
H = eye(2);                 %Objective Function (min 0.5x'Hx + f'x)
f = -[2 2]';                

% Linear Constraints
A = [-1,1; 1,3];            %Linear Inequality Constraints (Ax <= b)
b = [2;5];    
lb = [0;0];                 %Bounds on x (lb <= x)

% Quadratic Constraint
Q = [1 0; 0 1];             %Quadratic Inequality (x'Qx + l'x <= r)
l = [0;-2];
r = 1;
% Create OPTI Object
Opt = opti('solver','mosek','qp',H,f,'ineq',A,b,'lb',lb,'qc',Q,l,r)

% Solve the QCQP problem
[x,fval,exitflag,info] = solve(Opt)

获得结果

------------------------------------------------------
Quadratically Constrained Quadratic Program (QCQP) Optimization
 min  0.5x'Hx + f'x 
 s.t. rl <= Ax <= ru
      qrl <= x'Qx + l'x <= qru
      lb <= x <= ub
------------------------------------------------------
   Problem Properties: 
# Decision Variables:        2 [H: 2 nz]
# Constraints:               5
  # Linear Inequality:       2
  # Quadratic Constraints:   1 [Q: 2 nz]
  # Bounds:                  2
------------------------------------------------------
  Solver Parameters:
Solver:                    MOSEK
------------------------------------------------------

x =

    1.4000
    1.2000


fval =

   -3.5000


exitflag =

     1


info = 

  包含以下字段的 struct:

    Iterations: 8
          Time: 0.0040
     Algorithm: 'MOSEK'
        Status: 'Optimal'
        Lambda: [1×1 struct]

更进一步的使用例子建议参考官网https://www.inverseproblem.co.nz/OPTI/index.php/Main/HomePage。如果不想一个个去找,OPTI-OPTI_Toolbox_v2.28_Released.zip、optiMEXFiles_mexw64_2_28.zip、scip.mexw64和sedumi-1.3.4.zip文件已经打包上传至https://download.csdn.net/download/xiaofei473/12678541,欢迎按需下载。

  • 19
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 34
    评论
### 回答1: Opti Toolbox是一种用于优化问题的MATLAB®工具箱,旨在帮助用户解决各种优化问题。Opti Toolbox提供了多种算法,包括线性规划、非线性规划、最小二乘问题、整数规划、二次规划和全局优化。此外,Opti Toolbox还包括各种优化模型构建函数和可视化函数,以帮助用户轻松构建优化模型和可视化结果。Opti Toolbox的界面友好、易于使用,可帮助用户加速优化问题的求解过程。要下载Opti Toolbox,用户可以前往MathWorks官网,在工具箱选项卡下搜索Opti Toolbox并进行下载。在下载和使用Opti Toolbox之前,用户应该了解基本的MATLAB®编程知识和优化问题的基本原理。Opti Toolbox可以应用于各种领域,包括工业、经济、金融、工程、自然科学等,帮助用户在各种实际问题中寻找最优解。 ### 回答2: Opti ToolboxMATLAB的一个有用工具箱,主要用于优化问题的求解。它提供了一系列的优化算法,如线性规划、非线性规划、二次规划、整数规划、约束优化等,同时还有优化控制接口、多目标优化、不确定性优化等高级功能。Opti Toolbox这个工具箱可以帮助用户在MATLAB环境中轻松地解决复杂的优化问题,提高工作效率和准确率。 Opti Toolbox的下载安装步骤如下: 1. 打开MATLAB软件,点击“Add-Ons”选项卡; 2. 在“Add-On Explorer”界面中搜索“Opti Toolbox”; 3. 点击“Opti Toolbox”进行下载和安装; 4. 安装完成后,在命令窗口输入“opti”命令,查看是否安装成功。 Opti Toolbox的使用方法多种多样,用户可以根据自己的需求进行优化问题的求解,同时还可以进行数据可视化分析,将求解结果呈现出来。总体来说,Opti Toolbox是一个非常实用的工具箱,对于需要进行优化问题求解的MATLAB用户来说,具有很大的帮助和作用。 ### 回答3: Opti Toolbox是一个为优化问题提供解决方案的工具箱。它由OptTek Systems公司推出,主要面向工程师、科学家和决策者等专业人士。这个工具箱中包含了多种优化算法,包括线性规划、整数规划、非线性规划、全局优化、多目标优化等。在使用Opti Toolbox时,可以通过其图形化用户界面来设置问题的模型和参数,并根据需求选择适当的算法进行求解。此外,Opti Toolbox还支持Matlab、Python和C++等常用编程语言的集成,可以方便地与其他软件进行交互。同时,Opti Toolbox还提供了大量的文档和示例,使用户可以更快地了解与使用该工具箱。因此,对于需要进行优化建模和求解的领域,如工业制造、供应链管理、金融风险管理等,Opti Toolbox是一个强大且易于使用的优化工具。
评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值