Optimization Toolbox MATLAB优化工具箱
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Optimization Toolbox
--求解常规和大型优化问题
Optimization Toolbox 提供了应用广泛的算法集合,用于求解常规和大型的优化问题。
这些算法解决带约束、无约束的、连续的和离散的优化问题。
这些算法可以求解带约束的、无约束的以及离散的优化问题。
工具箱中包含的函数可以用于线性规划、二次规划、二进制整数规划、非线性优化、非线性最小二乘、非线性方程、以及多目标优化等。
用户能够使用这些算法寻找最优解,进行权衡分析,在多个设计方案之间平衡,以及将优化算法集成到算法和模型之中。
主要特点
•交互式工具用于定义、求解优化问题,并能监控求解过程
•求解非线性优化和多目标优化问题
•求解非线性最小二乘,数据拟合和非线性方程
•提供了解决二次方程和线性规划问题的方法
•提供了解决二进制整数规划问题的方法
•某些带约束条件的非线性求解器支持并行运算
使用Optimization Toolbox 中的基于梯度的求解器寻找峰值函数(peaks fun
ction)的局部最小解。
运用优化工具箱提供的大型线性最小二乘法修复一张模糊的照片。
定义,求解以及评定优化问题
优化工具箱提供了解决极小极大值问题的最常用方法。
工具箱包含了常规和大型优化问题的算法,使用户可以利用问题的稀疏结构来求解问题。
用户可以通过命令行或图形用户界面Optimization Tool调用工具箱函数和求解器选项。
通过命令行运行的优化程序(左,调用了定义指标函数(右上)和限定条件方程
(右下)的MATLAB文件。
Optimization Tool 是一个将一般优化工作简单化的图形用户界面。
通过该图形用户界面,用户能够完成以下操作:
•定义自己的优化问题并选择求解器
•配置,检验优化选项和所选求解器的默认设置
•运行优化问题,显示中间以及最终结果
•在可选择的快速帮助窗口中查看特定求解器的文档
•在MATLAB 的工作空间和优化工具之间导入和导出用户问题的定义,算法配置和结果
•保存用户工作和使工作自动化,自动生成M 语言代码
•调用Global Optimization Toolbox中的求解器
使用Optimization Tool 设置并求解的一个优化程序(左)。
一个用户定义的输出函数(右上)和选定的诊断用曲线(右下)用于显示当前和每次叠代的函数值。
用户能够通过优化方法的诊断用输出,进一步操纵和检查优化问题,这些输出中包括了显示求解器停止条件的求解器退出信息。
通过使用输出函数,用户能够将结果写入文件,生成自定义的停止条件,以及编写自己的图形用户界面以便和工具箱求解器互动。
大多数求解器都会在命令窗口显示描述求解器停止原因的退出信息,并提供指向上下文相关的帮助和相关产品文档的链接。
一个用户定义的输出函数(顶)用于绘制算法叠代的当前步骤的结果(左. Optimi zation Toolbox 还提供每次叠代的详细信息(底)。
线性规划
线性规划问题由线性指标函数和线性等式和不等式约束条件组成。
Optimiza tion Toolbox包含3种算法用于求解这类问题:内点法,有效集法,和单纯形法。
内点法是基于主-对偶、预报-校正思想的算法,用于解决线性规划问题。
内点法对于具有或能够被转化成稀疏矩阵的大型优化问题特别有效。
有效集法每一次叠代,针对有效集(一个在局部有效的约束条件的子集)优化指标函数,直到求出最优解。
单纯形法是一套为线性规划生成和测试待选顶点的系统的过程。
单纯形法是解决线性规划最常用的方法。
使用线性规划设计一个生成蒸汽和发电的系统。
二进制整数规划
二进制整数规划问题是指最小化线性目标函数同时遵从线性等式和不等式约束。
优化变量的取值只能是0或1。
Optimization Toolbox使用分支界限法来求解这类问题:
•寻找一个可行的二进制整数解
•更新在搜索树形图中找到的最佳二进制点
•通过求解一系列线性规划松弛问题,验证是否没有更好的解
使用二进制整数规划求解一个投资问题。
二次型规划
二次规划问题是指最小化某一多元二次函数同时遵从线性等式或不等式约束条件。
优化工具箱提供两种算法用于求解大型和中型的优化问题。
大型优化算法在置信域映射法和预条件共轭梯度法之间切换。
•中型问题使用有效集算法
•置信域映射法应用于带上下界的约束问题
•预条件共轭梯度法应用于受等式约束的问题
•有效集法是应用于带不等式或上下界约束和等式约束的问题
使用二次规划进行对3支共有基金做收益分析。
非线性规划
优化工具箱提供了在MATLAB中求解非线性规划问题的常用优化算法。
工具箱包括针对无约束和带约束非线性优化的求解器和最小二乘优化的求解器。
无约束的非线性优化问题
优化工具箱提供了三种求解无约束非线性最小化问题的方法:拟牛顿法(Q uasi-Newton),Nelder—Mead 搜索法和信赖域法(Trust Region)。
拟牛顿法(Quasi-Newton)运用混合的平方和立方线搜索程序,以及用于更新H essian矩阵近似值的Broyden-Fletcher-Goldfarb-Shanno (BFGS)公式。
Nelder—Mead(或下山单纯形法)是一种直接搜索法,它只需要函数值(不需要导数)并能处理非平滑函数。
Global Optimization Toolbox为非线性优化问题提供额外的不使用导数的优化算法。
信任域法(Trust Region)应用于无约束的非线性问题,对于具有稀疏矩阵
或结构的大规模优化问题特别有效。
使用无约束非线性规划在一个发动机性能映射表里搜索峰值效率。
带约束的非线性优化问题
带约束的非线性优化问题由非线性目标函数和可能的线性以及非线性的约束构成。
优化工具箱为解决这些问题提供了4种方法:内点法、序列二次规划法(s equential quadratic programming, SQP)、有效集法、和置信域映射法(T rust Region)。
内点法应用于一般性的非线性优化问题。
对具有稀疏属性或结构的大型优化问题特别有效,并且对容忍用户定义的指标函数和限定条件的评价失败。
它基于障碍函数,可以选择让优化的叠代过程严格保持在可行域内。
•SQP算法应用于一般的非线性优化问题。
它保证叠代中间解的可行性,并容忍用户定义的指标函数和限定条件的评价失败。
•有效集法应用于一般性的非线性优化问题
•置信域映射法应用于带上下界和等式约束条件的问题,它对大型问题特别有效
•内点法和置信域映射法使用户能够使用不同的方法估计Hessian矩阵
对于内点法:
•BFGS (稠密)
•有限记忆BFGS(对大型问题)
•Hessian乘法函数
•真实的Hessian(稀疏或稠密)
•梯度的有限偏差,但是不要求稀疏结构的知识
对于置信域映射法:
•梯度的有限偏差,需要已知Hessian的稀疏结构
•真实的Hessian(稀疏或稠密)
•Hessian乘法函数
另外,内点法和置信域映射法使用户能够在一个函数中直接计算Hessian和一个向量的乘积,而不需要Hessian矩阵的显式表达。
优化工具箱还提供与Ziena Optimization’s KNITRO®函数库德接口,用于求解非线性带约束的优化问题。
用于设计最优减震系统的带约束非线性规划。
非线性最小二乘,数据拟合和非线性方程
优化工具箱能够解决线性和非线性最小二乘问题,数据拟合问题,和求解非线性方程。
线性和非线性最小二乘优化
工具箱使用两个算法求解带约束的最小二乘问题:中型和大型。
中型算法应用有效集算法,用于求解带上下界、线性不等式和等式约束的问题。
大型算法应用置信域映射法,用于求解只带上下界约束的问题。
工具箱使用两种算法求解非线性最小二乘问题:信任域和Levenberg-Mar quardt。
置信域映射算法采用Levenberg-Marquardt算法。
用于求解无约束的和带上下界约束的问题。
工具箱使用标准Levenberg-Marquardt算法,用于求解无约束问题。
使用非线性最小二乘拟合一个超越方程。
数据拟合
工具箱为数据拟合问题提供一个专门的界面,用于在一族非线性函数中寻找对数据最好的拟合。
工具箱对数据拟合使用的算法与非线性最小二乘问题使用的算法一样。
通过最小二乘曲线拟合,拟和一个非线性指数方程。
求解非线性方程
优化工具箱使用折线信任域算法(dogleg trust-region)求解非线性方程组,方程个数与未知数个数一样多。
工具箱还能够使用信任域映射法和Levenberg-M arquardt算法。
使用非线性方程求解器对一个n维Rosenbrock函数求解。
多目标优化问题
多目标优化主要考虑带有一组约束,有多个指标函数的极小值问题。
优化工具箱为两种形式的多目标优化问题提供了解决方法,这两种形式的优化问题是:目标达到和极小极大。
目标达到问题包括减少一个线性或非线性矢量函数的值以达到目标矢量的目标值。
目标的相对重要性通过使用权向量来标定。
目标达到问题可以加入线性和非线性约束条件。
极小极大问题包括减少一系列多变量函数的最坏情况值,可以加入线性和非线性约束条件。
优化工具箱先将两类多目标问题转换为标准的约束优化问题,然后使用有效集方法对其求解。
Global Optimization Toolbox提供了多目标遗传算法求解器,用于计算多目标的Pareto前沿。
使用多目标优化设计一个低通滤波器。
使用并行计算解决优化问题
优化工具箱能够和并行计算工具箱结合起来采用并行计算的方式一起解决问题以享用并行计算带来的好处。
通过激活内置的并行计算支持或者定制优化问题的并行计算应用,用户可以减少求解所花费的时间。
用户在选择用于带约束非线性优化问题和多目标目标达到以及极大极小问题的求解器时,软件自带的并行计算工具有助于加速梯度估计。
使用一个非线性规划求解器内置的对并行计算的支持来加速求解静电学问题。
通过设置UseParallel选项,使内置并行功能生效(左),用来优化带约束(右下)的指标函数(右中),所得解显示在右上图中。
可定制的对并行计算的支持要求在优化问题中明确制定使用并行计算功能。
用户能够规定指标函数或约束条件使用并行计算,让用户能够减少评价指标函数或约束条件所用的时间。
通过变一行代码来定制指标函数(左上),从而加速带不确定性的减震系统设计问
题(左下和右下)的求解时间。