MATLAB安装优化工具包OPTI Toolbox

您所在的位置:网站首页 Matlab怎么安装工具包 MATLAB安装优化工具包OPTI Toolbox

MATLAB安装优化工具包OPTI Toolbox

2024-06-30 21:07| 来源: 网络整理| 查看: 265

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。

在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;打开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文件,稍等片刻即可完成安装;在Matlab命令窗口输入optiSolver即可看到可选的求解器,我们会发现有一些求解器是缺失的,本人试验了补充安装SCIP、sedumi和mosek这3个求解器的方法,在OPTI Toolbox官方主页上提供了获取SCIP求解器的方法(提供邮箱即可获得下载链接),另外sedumi求解器的github地址为https://github.com/sqlp/sedumi,mosek求解器的主页为https://www.mosek.com/。对于SCIP求解器,下载得到的scip.mexw64文件直接放入C:\Users\Truth\Documents\MATLAB\OPTI-OPTI_Toolbox_v2.28_Released\Solvers文件夹下;对于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的数字);即可;对于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即可;上述操作完成后,在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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3