二阶锥编程问题具有表单
受限制
F那X那B.那贝卡那磅, 和UB.是载体,和一种和AEQ.是矩阵。对于每一个人一世, 矩阵一种SC.(一世),载体B.SC.(一世) 和D.SC.(一世)和标量γ.(一世)在您创建使用的二阶锥限制Themondercone.
。
换句话说,问题具有线性目标函数和线性约束,以及一组形式的二阶锥限制 。
Coneprog.
算法这Coneprog.
求解器使用Andersen,Roos和Terlaky中描述的算法[1]。该方法是一种类似于的内部点算法内部点LINPROG算法。
算法通过放置问题来开始标准格式。该算法添加了非负面的松弛变量,以便问题具有表单
受限制
求解器扩展了线性系数矢量的尺寸F和线性约束矩阵一种要考虑松弛变量。
该区域K.是杂交产品洛伦兹锥体等式1和非负面纠结。转换每个凸锥
到一个洛伦兹锥等式1,创建变量的列向量T.1那T.2,......,T.N+1:
这里,变量的数量N对于每个锥体一世是行的数量一种SC.(一世)。通过其定义,变量向量T.满足不平等
(1) |
等式1是洛伦兹锥的定义(N+1)变量。变量T.出现在问题上代替变量X在凸面区域K.。
在内部,算法也使用一个旋转洛伦兹锥在锥形约束的重新制定中,但本主题没有解决这种情况。有关详细信息,请参阅Andersen,Roos和Terlaky[1]。
添加Slack变量时,算法根据需要否定变量,并添加适当的常量,以便:
只有一个绑定的变量具有零的下限。
具有两个界限的变量具有零的较低限制,并且使用Slack变量,没有上限。
没有边界的变量被放置在Lorentz锥体中,并作为约束变量。此松弛变量不是任何其他表达式,目标或约束的一部分。
双锥是
双重问题是
这样
对于一些
双最优解决方案是一个点(y那S.)满足双重限制并最大化双目标。
为了处理潜在的不可行或无界问题,该算法增加了两个变量τ.和κ..并将问题交给均匀(等于零)和自我双重。
(2) |
随着约束
(3) |
这里, 是锥体K.与非负实际线相邻,这是(X;τ.)。相似地 是锥体 与非负实际线相邻,这是(S.;κ..)。在这种制剂中,以下引理显示τ.是可行解决方案的缩放和金宝搏官方网站κ..是一个不可行的问题的指标。
引理([1]LEMMA 2.1)
让 (X那τ.那y那S.那κ..)是一个可行的解决方案等式2随着约束等式3.。
XT.S.+τκ.= 0。
如果τ.> 0,然后(X那y那S./τ.是标准形式二阶锥问题的原始双重最佳解决方案。
如果κ..> 0,这些严格不平等中的至少一个持有:
B.T.y> 0.
FT.X<0。
如果第一次不等式持有,则标准形式,原始二阶锥问题是不可行的。如果第二个不等式持有,则标准形式,双二阶锥问题是不可行的。
总之,对于可行的问题,变量τ.缩放原始标准表单问题与均匀自我双重问题之间的解决方案。对于不可行的问题,最终迭代(X那y那S.那τ.那κ..)为原始标准表单问题提供了不可行性证书。
迭代的开始点是可行的点:
X对于每个非负变量,每个Lorentz锥体中的第一变量为1,否则为0。
y= 0。
S.每个锥体的(1,0,...,0),每个非负变量为1。
τ.= 1。
κ..= 1。
算法试图遵循中央路径,这是以下等式的参数化解决方案γ.从1朝向0减少。
(4) |
具有0下标的每个变量指示变量的起点。
变量X和S.是箭头头由...形成的基质X和S.载体分别。对于矢量X= [X1那X2,......,XN],箭头矩阵X有定义
通过其定义,X是对称的。
变量E.是与每个锥体坐标相对应的1的矢量X1洛伦兹锥坐标。
变量μ.0.有定义
在哪里K.是非零元素的数量X0.。
中央路径从起点开始,并以最佳的解决方案结束到均匀的自我双重问题。
安德森,roos和terlaky[1]在Lemma 3.1中显示互补条件XT.S.= 0,在哪里X和S.是洛伦兹锥体的产品L.,相当于条件
对于每个锥体一世。这里X一世=垫(X一世),X一世是与洛伦兹锥相关的变量一世那S.一世=垫(S.一世), 和E.一世是适当尺寸的单位矢量[1,0,0,...,0]。该讨论表明,中心路径在其终点上满足互补条件。
在作为参数附近的中心路径附近获得点γ.从1朝向0降低,算法使用牛顿的方法。要查找的变量被标记为(X那τ.那y那S.那κ..)。让D.X代表搜索方向X变量,等等。然后牛顿步骤解决了以下线性系统,源自等式4.。
该算法通过迈出一步来获得其下一点D.方向。
一步一步 。
对于数值稳定性和加速的收敛,该算法根据Nesterov和Todd的建议进行比较步骤[8]。此外,该算法根据Mehrotra的预测器校正器的变种来校正步骤[7]。(有关详细信息,请参阅Andersen,Roos和Terlaky[1]。)
前面的讨论涉及linearsolver
值'增强'
指定的。求解器具有更改步骤计算以适应不同类型的问题的其他值。
在每次迭代时K.,该算法计算了三种相对收敛措施:
原始的不可行性
双重缺乏
间隙不可行
您可以通过指定迭代显示在命令行中查看这三个统计信息。
选项= Optimoptions('coneprog'那'展示'那'iter');
当问题是可行的并且求解器收敛时,所有三个都应该接近零。对于可行的问题,变量κ..K.接近零,变量τ.K.接近积极的常数。
一个停止条件有些与间隙不可行性有所相关。停止条件是当以下最优性测量降低到最优耐受性以下。
这种统计量度测量客观价值的精度。
求解器还在以下条件下停止并宣布存在不可行的问题。三种相对的不可用措施小于C=约束特许
, 和
如果B.T.yK.> 0.然后,求解器声明了原始问题是不可行的。如果FT.XK.<0然后,求解器声明了双重问题是不可行的。
该算法也停止何时
和
在这种情况下,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。