主要内容

二阶锥编程算法

二阶锥编程的定义

二阶锥编程问题具有表单

X F T. X

受限制

一种 SC. 一世 X - B. SC. 一世 ≤. D. SC. T. 一世 X - γ. 一世 一种 X ≤. B. AEQ. X = 贝卡 ≤. X ≤. UB.

FXB.贝卡, 和UB.是载体,和一种AEQ.是矩阵。对于每一个人一世, 矩阵一种SC.一世),载体B.SC.一世) 和D.SC.一世)和标量γ.一世)在您创建使用的二阶锥限制Themondercone.

换句话说,问题具有线性目标函数和线性约束,以及一组形式的二阶锥限制 一种 SC. 一世 X - B. SC. 一世 ≤. D. SC. T. 一世 X - γ. 一世

Coneprog.算法

Coneprog.求解器使用Andersen,Roos和Terlaky中描述的算法[1]。该方法是一种类似于的内部点算法内部点LINPROG算法

标准格式

算法通过放置问题来开始标准格式。该算法添加了非负面的松弛变量,以便问题具有表单

X F T. X

受限制

一种 X = B. X K.

求解器扩展了线性系数矢量的尺寸F和线性约束矩阵一种要考虑松弛变量。

该区域K.是杂交产品洛伦兹锥体等式1和非负面纠结。转换每个凸锥

一种 SC. 一世 X - B. SC. 一世 ≤. D. SC. T. 一世 X - γ. 一世

到一个洛伦兹锥等式1,创建变量的列向量T.1T.2,......,T.N+1

T. 1 = D. T. X - γ. T. 2 N + 1 = 一种 SC. X - B. SC.

这里,变量的数量N对于每个锥体一世是行的数量一种SC.一世)。通过其定义,变量向量T.满足不平等

T. 2 N + 1 ≤. T. 1 (1)

等式1是洛伦兹锥的定义(N+1)变量。变量T.出现在问题上代替变量X在凸面区域K.

在内部,算法也使用一个旋转洛伦兹锥在锥形约束的重新制定中,但本主题没有解决这种情况。有关详细信息,请参阅Andersen,Roos和Terlaky[1]

添加Slack变量时,算法根据需要否定变量,并添加适当的常量,以便:

  • 只有一个绑定的变量具有零的下限。

  • 具有两个界限的变量具有零的较低限制,并且使用Slack变量,没有上限。

  • 没有边界的变量被放置在Lorentz锥体中,并作为约束变量。此松弛变量不是任何其他表达式,目标或约束的一部分。

双重问题

双锥是

K. * = { S. S. T. X 0. X K. }

双重问题是

最大限度 y B. T. y

这样

一种 T. y + S. = F

对于一些

S. K. *

双最优解决方案是一个点(yS.)满足双重限制并最大化双目标。

均匀自我双重制剂

为了处理潜在的不可行或无界问题,该算法增加了两个变量τ.κ..并将问题交给均匀(等于零)和自我双重。

一种 X - B. τ. = 0. 一种 T. y + S. - F τ. = 0. - F T. X + B. T. y - κ.. = 0. (2)

随着约束

X ; τ. K. ¯ S. ; κ.. K. ¯ * (3)

这里, K. ¯ 是锥体K.与非负实际线相邻,这是(X;τ.)。相似地 K. ¯ * 是锥体 K. * 与非负实际线相邻,这是(S.;κ..)。在这种制剂中,以下引理显示τ.是可行解决方案的缩放和金宝搏官方网站κ..是一个不可行的问题的指标。

引理[1]LEMMA 2.1)

让 (Xτ.yS.κ..)是一个可行的解决方案等式2随着约束等式3.

  • XT.S.+τκ.= 0。

  • 如果τ.> 0,然后(XyS./τ.是标准形式二阶锥问题的原始双重最佳解决方案。

  • 如果κ..> 0,这些严格不平等中的至少一个持有:

    B.T.y> 0.

    FT.X<0。

    如果第一次不等式持有,则标准形式,原始二阶锥问题是不可行的。如果第二个不等式持有,则标准形式,双二阶锥问题是不可行的。

总之,对于可行的问题,变量τ.缩放原始标准表单问题与均匀自我双重问题之间的解决方案。对于不可行的问题,最终迭代(XyS.τ.κ..)为原始标准表单问题提供了不可行性证书。

起点

迭代的开始点是可行的点:

  • X对于每个非负变量,每个Lorentz锥体中的第一变量为1,否则为0。

  • y= 0。

  • S.每个锥体的(1,0,...,0),每个非负变量为1。

  • τ.= 1。

  • κ..= 1。

中央路径

算法试图遵循中央路径,这是以下等式的参数化解决方案γ.从1朝向0减少。

一种 X - B. τ. = γ. 一种 X 0. - B. τ. 0. 一种 T. y + S. - C τ. = γ. 一种 T. y 0. + S. 0. - F τ. 0. - F T. X + B. T. y - κ.. = γ. - F T. X 0. + B. T. y 0. - κ.. 0. X S. E. = γ. μ. 0. E. τ. κ.. = γ. μ. 0. (4)
  • 具有0下标的每个变量指示变量的起点。

  • 变量XS.箭头头由...形成的基质XS.载体分别。对于矢量X= [X1X2,......,XN],箭头矩阵X有定义

    X = X = [ X 1 X 2 N T. X 2 N X 1 一世 ]

    通过其定义,X是对称的。

  • 变量E.是与每个锥体坐标相对应的1的矢量X1洛伦兹锥坐标。

  • 变量μ.0.有定义

    μ. 0. = X 0. T. S. 0. + τ. 0. κ.. 0. K. + 1

    在哪里K.是非零元素的数量X0.

中央路径从起点开始,并以最佳的解决方案结束到均匀的自我双重问题。

安德森,roos和terlaky[1]在Lemma 3.1中显示互补条件XT.S.= 0,在哪里XS.是洛伦兹锥体的产品L.,相当于条件

X 一世 S. 一世 E. 一世 = S. 一世 X 一世 E. 一世 = 0.

对于每个锥体一世。这里X一世=垫(X一世),X一世是与洛伦兹锥相关的变量一世S.一世=垫(S.一世), 和E.一世是适当尺寸的单位矢量[1,0,0,...,0]。该讨论表明,中心路径在其终点上满足互补条件。

搜索方向

在作为参数附近的中心路径附近获得点γ.从1朝向0降低,算法使用牛顿的方法。要查找的变量被标记为(Xτ.yS.κ..)。让D.X代表搜索方向X变量,等等。然后牛顿步骤解决了以下线性系统,源自等式4.

一种 D. X - B. D. τ. = γ. - 1 一种 X 0. - B. τ. 0. 一种 T. D. y + D. S. - F D. τ. = γ. - 1 一种 T. y 0. + S. 0. - F τ. 0. - F T. D. X + B. T. D. y - D. κ.. = γ. - 1 - F T. X 0. + B. T. y 0. - κ.. X 0. D. S. + S. 0. D. X = - X 0. S. 0. E. + γ. μ. 0. E. τ. 0. D. κ.. + κ.. 0. D. T. 一种 = - τ. 0. κ.. 0. + γ. μ. 0.

该算法通过迈出一步来获得其下一点D.方向。

[ X 1 τ. 1 y 1 S. 1 κ.. 1 ] = [ X 0. τ. 0. y 0. S. 0. κ.. 0. ] + α. [ D. X D. τ. D. y D. S. D. κ.. ]

一步一步 α. [ 0. 1 ]

对于数值稳定性和加速的收敛,该算法根据Nesterov和Todd的建议进行比较步骤[8]。此外,该算法根据Mehrotra的预测器校正器的变种来校正步骤[7]。(有关详细信息,请参阅Andersen,Roos和Terlaky[1]。)

步骤求解器变化

前面的讨论涉及linearsolver'增强'指定的。求解器具有更改步骤计算以适应不同类型的问题的其他值。

  • '汽车'(默认) -Coneprog.选择步骤求解器:

    • 如果问题稀疏,则步骤求解器是'prodchol'

    • 否则,步骤求解器是'增强'

  • '普通的'- 求解器使用变体'增强'当问题稀疏时是合适的步骤。看到安德森,roos和terlaky[1]

  • 'schur'- 求解器使用修改的SCHUR补充方法来处理少量密集列的稀疏问题。该方法也适用于大锥体。看见安德森[2]

  • 'prodchol'- 求解器使用Goldfarb和Scheinberg中描述的方法([4][5])处理几列的少数浓度。该方法也适用于大锥体。

迭代显示和停止条件

在每次迭代时K.,该算法计算了三种相对收敛措施:

  • 原始的不可行性

    ideas. 原始 K. = 一种 X K. - B. τ. K. 最大限度 1 一种 X 0. - B. τ. 0.

  • 双重缺乏

    ideas. K. = 一种 T. y K. + S. K. - F τ. K. 最大限度 1 一种 T. y 0. + S. 0. - F τ. 0.

  • 间隙不可行

    ideas. 差距 K. = | - F T. X K. + B. T. y K. - κ.. K. | 最大限度 1 | - F T. X 0. + B. T. y 0. - κ.. 0. |

您可以通过指定迭代显示在命令行中查看这三个统计信息。

选项= Optimoptions('coneprog''展示''iter');

当问题是可行的并且求解器收敛时,所有三个都应该接近零。对于可行的问题,变量κ..K.接近零,变量τ.K.接近积极的常数。

一个停止条件有些与间隙不可行性有所相关。停止条件是当以下最优性测量降低到最优耐受性以下。

最优性 K. = | F T. X K. - B. T. y K. | τ. K. + | B. T. y K. | = | F T. X K. / τ. K. - B. T. y K. / τ. K. | 1 + | B. T. y K. / τ. K. |

这种统计量度测量客观价值的精度。

求解器还在以下条件下停止并宣布存在不可行的问题。三种相对的不可用措施小于C=约束特许, 和

τ. K. ≤. C 最大限度 1 κ.. K.

如果B.T.yK.> 0.然后,求解器声明了原始问题是不可行的。如果FT.XK.<0然后,求解器声明了双重问题是不可行的。

该算法也停止何时

μ. K. ≤. C μ. 0.

τ. K. ≤. C 最大限度 1 κ.. K.

在这种情况下,Coneprog.报告问题在数字上不稳定(退出标志-10)。

当至少一个不可缺陷措施大于时,剩余的停止条件发生约束特许并且计算的步长太小。在这种情况下,Coneprog.报告说明搜索方向变得太小,无法进一步进展(退出标志-7)。

参考

[1] Andersen,E. D.,C. Roos和T. Terlaky。关于实施锥形二次优化原始 - 双内点法的研究。数学。程序。,Ser。B.95.,pp。249-277(2003)。https://doi.org/10.1007/S10107-002-0349-3.

[2]安德森,K。D.在用于线性规划内点法处理密集柱的改性舒尔补体法。ACM在数学软件(TOM)的交易,22(3):348-356,1996。

[3] Ben-tal,Aharon和Arkadi Nemirovski。凸优化在工程中:建模,分析,算法。(1998)。可用AT.https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.455.2733&Rep=rep1&type=pdf.

[4] GoldFarb,D.和K.Scheinberg。一种用于处理内部点方法的致密柱的产品形式的孔基分解方法,用于线性规划。数学编程,99(1):1-34,2004。

[5] Goldfarb,D.和K.Scheinberg。二阶锥形编程中的产品形式凿色分解。数学规划,103(1):153-179,2005。

[6]罗,志泉,乔斯·斯特姆,张章。锥形凸编程的二元和自二种性。(1996)。可用AT.https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.48.6432

[7] Mehrotra,Sanjay。“关于基于双重内部点法的实施。”优化暹罗杂志2, 不。4(1992年11月):575-601。https://doi.org/10.1137/0802028

[8] Nesterov,Yu。E.和M. J. Todd。“凸编程的自我规模障碍和内部点方法。”运营数学研究22, 不。1(1997年2月):1-42。https://doi.org/10.1287/moor.22.1.1

也可以看看

|

相关话题