主要内容

选择和控制求解器的均值 - 方差组合优化

用于均值 - 方差组合优化的默认解算器是lcprog,实现线性互补规划(LCP)算法。虽然lcprog适用于大多数问题,你可以调整参数来控制算法。或者,均值-方差组合优化工具允许您使用任何变量Quadprog.从优化工具箱™软件。喜欢使用的优化工具箱内部点凸算法作为默认算法Quadprog.,投资组合优化工具也使用内部点凸默认为算法。对象的细节Quadprog.还有二次规划算法和选项二次编程算法

使用'lcprog''quadprog'

要么修改lcprog或指定Quadprog.作为你的解决方案,使用塞洛弗函数设置隐藏属性索尔弗蒂solverOptions指定和控制求解器。由于隐藏了求解器属性,因此无法使用这些文件夹对象。默认解算器为lcprog所以你不需要使用塞洛弗指定此解算器。使用Quadprog.,可以设置默认值内部点凸算法的Quadprog.使用:

p =投资组合;p = setSolver (p,'quadprog');显示(p.solvertype)显示(p.solveroptions)
QuadProg选项:当前算法使用的选项('Interion-point-convex'):(其他可用算法:'主动集','信任区域反光')设置属性:算法:'内部点凸'显示:'关闭'最优性特:1.0000E-12默认属性:约束特许:1.0000E-08 Linearsolver:'Auto'最大值:200个台步:1.0000E-12
你可以切换回来lcprog:
p = setSolver (p,'lcprog');显示(p.solverType);显示器(p.solverOptions)
lcprog maxiter:[] titebreak:[] tolpiv:5.0000e-08
在这两种情况下,塞洛弗设置与求解器关联的默认选项。如果要指定与给定求解器关联的其他选项,塞洛弗在函数调用中通过参数名-值对参数接受这些选项。例如,如果您打算使用Quadprog.想要使用'信任区域反光'算法,称之为塞洛弗:
p =投资组合;p = setSolver (p,'quadprog','算法','信任区域反光');显示器(p.solverOptions)
算法:'trust-region- reflection '默认属性:Display: 'final'功能的容错:' Default依赖于问题'StepTolerance: 2.2204e-14 subproblemalgalgorithm: 'cg' TypicalX: 'ones(numberOfVariables,1)'

此外,如果要指定任何选项Quadprog.通常都是通过的optimoptions从优化工具箱,塞洛弗接受一个optimoptions对象作为第二个参数。例如,可以从默认选项开始Quadprog.设定的塞洛弗然后把算法改为'信任区域反光'没有显示输出:

p =投资组合;选择= optimoptions ('quadprog','算法','信任区域反光','展示','离开');p = setSolver (p,'quadprog', 选项);显示(p.solveroptions.algorithm)显示(p.solveroptions.display)
trust-region-reflective掉

利用混合整数非线性规划(MINLP)求解器

混合整数非线性编程(MINLP)求解器,配置使用setSolverMINLP,使您能够为投资组合优化指定相关的求解器选项文件夹对象。当任何一个或任何组合时使用minlp求解器“条件”边界,MinNumAssets,或MaxNumAssets约束是活跃的。在这种情况下,投资组合问题是通过添加来表述的NumAssets二进制变量,0表示未投资,和1投资。有关使用的更多信息“条件”边界,请参阅setBounds。有关指定的更多信息MinNumAssetsMaxNumAssets,请参阅setminmaxnumassets.

当使用估计功能与A.文件夹对象“条件”边界,MinNumAssets,或MaxNumAssets约束是活动的,混合整数非线性编程(MINLP)解器自动使用。

组合对象的求解主理指南

下表提供了使用指南塞洛弗setSolverMINLP

投资组合问题 投资组合功能 优化问题的类型 主要解决 帮助解决者
没有跟踪误差约束的组合 estismsFrontierByRisk. 在一定风险水平下优化投资组合会引入非线性约束。因此,该问题具有线性和非线性约束的线性目标。 '粉丝'使用塞洛弗

“最小值”:二次目标,'quadprog'或者'lcprog'使用塞洛弗

'最大限度':线性目标,“linprog”或者'lcprog'使用塞洛弗

没有跟踪误差约束的组合 estimateFrontierByReturn 线性约束的二次目标 'quadprog'或者'lcprog'使用塞洛弗

“最小值”:二次目标,'quadprog'或者'lcprog'使用塞洛弗

'最大限度':线性目标,“linprog”或者'lcprog'使用塞洛弗

没有跟踪误差约束的组合 estismsfrontierlimits.

带有线性约束的二次或线性目标

“最小值”:二次目标,'quadprog'或者'lcprog'使用塞洛弗

'最大限度':线性目标,“linprog”或者'lcprog'使用塞洛弗

不适用
没有跟踪误差约束的组合 estimateMaxSharpeRatio 线性约束的二次目标 'quadprog'使用塞洛弗

因为estimateMaxSharpeRatio在内部调用estismsfrontierlimits.,所需的所有求解器estismsfrontierlimits.会是帮助者吗

带有跟踪误差约束的投资组合 estismsFrontierByRisk. 线性目标线性和非线性约束 '粉丝'使用塞洛弗 不适用
带有跟踪误差约束的投资组合 estimateFrontierByReturn 线性目标线性和非线性约束 '粉丝'使用塞洛弗 不适用
带有跟踪误差约束的投资组合 estismsfrontierlimits. 具有线性和非线性约束的二次(最小风险问题)或线性(最大返回问题)目标 '粉丝'使用塞洛弗 不适用
带有跟踪误差约束的投资组合 estimateMaxSharpeRatio 具有线性和非线性约束的二次目标 '粉丝'使用塞洛弗 不适用
投资组合与活跃“条件”边界,MinNumAssets, 和MaxNumAssets estismsFrontierByRisk. 这个问题是通过引入来表述的NumAssets二进制变量指示是否投入了相应的资产。因此,它需要混合整数非线性编程求解器。提供了三种类型的Minlp溶剂,参见setSolverMINLP 混合整数非线性规划求解器(MINLP)setSolverMINLP 'quadprog'或者'粉丝'时使用估计函数将问题减少到NLP中。这两个求解器可以通过塞洛弗
投资组合与活跃“条件”边界,MinNumAssets, 和MaxNumAssets estimateFrontierByReturn 这个问题是通过引入来表述的NumAssets二进制变量指示是否投入了相应的资产。因此,它需要混合整数非线性编程求解器。提供了三种类型的Minlp溶剂,参见setSolverMINLP 混合整数非线性规划求解器(MINLP)setSolverMINLP 'quadprog'或者'粉丝'时使用估计函数将问题减少到NLP中。这两个求解器可以通过塞洛弗
投资组合与活跃“条件”边界,MinNumAssets, 和MaxNumAssets estismsfrontierlimits. 这个问题是通过引入来表述的NumAssets二进制变量指示是否投入了相应的资产。因此,它需要混合整数非线性编程求解器。提供了三种类型的Minlp溶剂,参见setSolverMINLP 混合整数非线性规划求解器(MINLP)setSolverMINLP 'quadprog'或者'粉丝'时使用估计函数将问题减少到NLP中。这两个求解器可以通过塞洛弗
投资组合与活跃“条件”边界,MinNumAssets, 和MaxNumAssets estimateMaxSharpeRatio 这个问题是通过引入来表述的NumAssets二进制变量指示是否投入了相应的资产。因此,它需要混合整数非线性编程求解器。提供了三种类型的Minlp溶剂,参见setSolverMINLP 混合整数非线性规划求解器(MINLP)setSolverMINLP 'quadprog'或者'粉丝'使用,当时估计函数将问题减少到NLP中。这两个求解器可以通过塞洛弗

另请参阅

|||

相关的例子

更多关于

外部网站