主要内容

二阶锥规划算法

二阶锥规划的定义

二阶锥规划问题的形式为

最小值 x f T x

受限于

一个 sc x b sc d sc T x γ 一个 x b Aeq x 说真的 x 乌兰巴托

fxb说真的,乌兰巴托是向量,并且一个而且Aeq矩阵。为每一个,矩阵一个sc),则向量bsc),dsc),标量γ)的二阶锥约束,您可以使用secondordercone

也就是说,该问题具有一个线性目标函数和线性约束,以及一组形式为二阶锥的约束 一个 sc x b sc d sc T x γ

coneprog算法

coneprog求解器使用在Andersen, Roos和terlaki中描述的算法[1].该方法是一种内点算法内点linprog算法

标准形式

算法首先把问题放在标准形式.算法添加非负松弛变量,使问题具有形式

最小值 x f T x

受限于

一个 x b x K

求解器扩展了线性系数向量的大小f和线性约束矩阵一个考虑到松弛变量。

该地区K的叉乘是洛伦兹锥方程1和非负正交向量。对每个凸锥进行转换

一个 sc x b sc d sc T x γ

变成洛伦兹锥方程1,创建变量列向量t1t2、……tn+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, and terlaki[1]

在添加松弛变量时,算法会根据需要对变量进行否定,并添加适当的常数,以便:

  • 只有一个上界的变量的下界为0。

  • 有两个边界的变量的下界为零,而使用松弛变量则没有上界。

  • 将无边界变量置于洛伦兹锥中,并以松弛变量作为约束变量。这个松弛变量不是任何其他表达式、目标或约束的一部分。

对偶问题

双锥是

K * 年代 年代 T x 0 x K

对偶问题是

马克斯 y b T y

这样

一个 T y + 年代 f

对于一些

年代 K *

对偶最优解是一个点(y年代),以满足双重约束并使双重目标最大化。

齐次自对偶公式

为了处理潜在的不可行的或无界的问题,该算法增加了两个变量τ而且κ并将问题表述为齐次(等于零)和自对偶。

一个 x b τ 0 一个 T y + 年代 f τ 0 f T x + b T y κ 0 (2)

除了约束条件

x τ K ¯ 年代 κ K ¯ * (3)

在这里, K ¯ 是锥体K与非负实线相邻,实线是(xτ).类似的 K ¯ * 是锥体 K * 与非负实线相邻,实线是(年代κ).在这个公式中,下面的引理表明τ是可行的解决方案,和金宝搏官方网站κ是一个不可行问题的指标。

引理[1]引理2.1)

让(xτy年代κ的可行解决方案方程2加上约束条件方程3

  • xT年代+τκ= 0。

  • 如果τ> 0,然后(xy年代) /τ是标准形式二阶锥问题的原对偶最优解。

  • 如果κ> 0,那么至少有一个严格不等式成立:

    bTy> 0

    fTx< 0。

    如果第一个不等式成立,则标准形式的原始二阶锥问题是不可行的。如果二阶不等式成立,则标准形式的对偶二阶锥问题是不可行的。

综上所述,对于可行问题,变量τ在原标准形式问题和齐次自对偶问题之间缩放解。对于不可行的问题,最终迭代(xy年代τκ)提供原始标准表格问题不可行的证明。

起点

迭代的起始点是可行点:

  • x每个非负变量= 1,每个洛伦兹锥中的第一个变量为1,否则为0。

  • y= 0。

  • 年代每个圆锥=(1,0,…,0),每个非负变量为1。

  • τ= 1。

  • κ= 1。

中央路径

算法尝试遵循中央路径,为下式的参数化解γ从1递减到0。

一个 x b τ γ 一个 x 0 b τ 0 一个 T y + 年代 c τ γ 一个 T y 0 + 年代 0 f τ 0 f T x + b T y κ γ f T x 0 + b T y 0 κ 0 X 年代 e γ μ 0 e τ κ γ μ 0 (4)
  • 每个下标为0的变量表示变量的起始点。

  • 的变量X而且年代箭头矩阵由x而且年代向量,分别。对于一个向量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 年代 0 + τ 0 κ 0 k + 1

    在哪里k非零元素的个数是多少x0

中心路径开始于起点,结束于齐次自对偶问题的最优解。

安德森,鲁斯和特拉基[1]在引理3.1中,有互补条件xT年代= 0,其中x而且年代是洛伦兹锥的产物l,等于条件

X 年代 e 年代 X e 0

对于每一个锥体.在这里X=垫(x),x变量与洛伦兹锥有关吗年代=垫(年代),e是适当维数的单位向量[1,0,0,…,0]。讨论表明,中心路径在其端点处满足互补条件。

搜索方向

以中心路径附近的点为参数γ从1递减到0时,算法采用牛顿法。要查找的变量被标记为(xτy年代κ).让dx的搜索方向x变量,等等。然后牛顿阶解下面的线性方程组,由方程4

一个 d x b d τ γ 1 一个 x 0 b τ 0 一个 T d y + d 年代 f d τ γ 1 一个 T y 0 + 年代 0 f τ 0 f T d x + b T d y d κ γ 1 f T x 0 + b T y 0 κ X 0 d 年代 + 年代 0 d x X 0 年代 0 e + γ μ 0 e τ 0 d κ + κ 0 d t 一个 u τ 0 κ 0 + γ μ 0

算法通过步进得到下一个点d方向。

x 1 τ 1 y 1 年代 1 κ 1 x 0 τ 0 y 0 年代 0 κ 0 + α d x d τ d y d 年代 d κ

对于某些步骤 α 0 1

为了数值稳定性和加速收敛,算法根据Nesterov和Todd的建议缩放步长[8].此外,该算法根据Mehrotra的预测-校正器的变体来纠正步骤[7].(欲了解更多细节,请参阅Andersen, Roos和terlaki[1].)

步骤求解变量

前面的讨论涉及LinearSolver选项的值“增强”指定。求解器具有其他值,这些值改变步长计算以适应不同类型的问题。

  • “汽车”(默认)coneprog选择步进求解器:

    • 如果问题是稀疏的,则步进求解器是“prodchol”

    • 否则,步进求解器是“增强”

  • “正常”的一个变体“增强”当问题是稀疏的时候是合适的步骤。见安徒生、鲁斯和特拉基[1]

  • “舒尔”-求解器使用了一种改进的Schur补法来处理具有少量密集列的稀疏问题。这种方法也适用于大锥。看到安徒生[2]

  • “prodchol”-求解器使用Goldfarb和Scheinberg ([4]而且[5]),用于处理带有少量密集列的稀疏问题。这种方法也适用于大锥。

迭代显示和停止条件

在每次迭代中k时,算法计算三个相对收敛测度:

  • 原始的不可行性

    Infeas 原始的 k 一个 x k b τ k 马克斯 1 一个 x 0 b τ 0

  • 双不可行性

    Infeas k 一个 T y k + 年代 k f τ k 马克斯 1 一个 T y 0 + 年代 0 f τ 0

  • 差距不可能实行

    Infeas 差距 k | f T x k + b T y k κ k | 马克斯 1 | f T x 0 + b T y 0 κ 0 |

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

选项= optimoptions(“coneprog”“显示”“通路”);

当问题可行且求解器收敛时,这三者都应该趋近于零。对于一个可行的问题,变量κk趋于0,变量τ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 |

这个统计量衡量的是客观值的精度。

在下列条件下,解算器也会停止并宣布问题是不可行的。这三个相对不可行的措施都不足cConstraintTolerance,

τ k c 马克斯 1 κ k

如果bTyk> 0,则解算者宣布原始问题是不可行的。如果fTxk< 0,则求解者声明对偶问题是不可行的。

算法也会在什么时候停止

μ k c μ 0

而且

τ k c 马克斯 1 κ k

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

当至少有一个不可行措施大于时,则发生剩余停止条件ConstraintTolerance并且计算的步长太小。在这种情况下,coneprog报告称,搜索方向太小,无法取得进一步进展(退出标志7).

参考文献

[1]安德森,E. D.鲁斯,T.特拉基。关于二次型优化的原对偶内点方法的实现。数学。程序。,爵士。B95, pp. 249-277(2003)。https://doi.org/10.1007/s10107-002-0349-3

[2]安徒生k.d.线性规划内点方法中处理密集列的一种改进schur-补法。计算机科学进展,2006,22(3):348-356。

[3] Ben-Tal, Aharon和Arkadi Nemirovski。工程中的凸优化:建模,分析,算法。(1998)。

[4]戈德法布D. K.谢恩伯格。线性规划内点方法中处理密集列的积型cholesky分解方法。系统工程理论与实践,2004,(1):1 - 34。

[5]戈德法布D. K.谢恩伯格。二阶锥规划内点方法中的积型cholesky分解。系统工程理论与实践,2005,29(1):1 - 5。

[6]罗志全,Jos F. Sturm,张树忠。圆锥凸规划的对偶性和自对偶性。(1996)。

[7] Mehrotra, Sanjay。关于原对偶内点方法的实现SIAM优化期刊,没有。4(1992年11月):575-601。https://doi.org/10.1137/0802028

[8] Nesterov, Yu。E.和M. J.托德。凸规划的自尺度障碍和内点方法运筹学数学22,没有。1(1997年2月):1 - 42。https://doi.org/10.1287/moor.22.1.1

另请参阅

|

相关的话题