Main Content

本页采用了机器翻译。点击此处可查看英文原文。

二阶锥规划算法

二阶锥规划的定义

二阶锥规划问题的形式为

minxfTx

需满足以下约束

Asc(i)xbsc(i)dscT(i)xγ(i)AxbAeqx=beqlbxub.

f、x、b、beq、lb 和 ub 是向量,A 和 Aeq 是矩阵。对于每个 i,矩阵 Asc(i)、向量 bsc(i) 和 dsc(i) 以及标量 γ(i) 都处于使用 secondordercone 创建的二阶锥约束中。

换句话说,该问题具有线性目标函数和线性约束,以及一组形式为 Asc(i)xbsc(i)dscT(i)xγ(i) 的二阶锥约束。

coneprog 算法

coneprog 求解器使用 Andersen、Roos 和 Terlaky [1] 中描述的算法。该方法是一种类似于 内点 linprog 算法 的内点算法。

标准格式

该算法首先将问题置于标准形式中。该算法添加了非负松弛变量,因此问题具有以下形式

minxfTx

需满足以下约束

Ax=bxK.

求解器扩大线性系数向量 f 和线性约束矩阵 A 的大小,以考虑松弛变量。

区域 K 是洛伦兹锥 公式 1 与非负正交的叉积。转换每个凸锥

Asc(i)xbsc(i)dscT(i)xγ(i)

到洛伦兹锥 公式 1,创建变量向量 t1, t2, …, tn+1

t1=dTxγt2:(n+1)=Ascxbsc.

这里,每个锥 i 的变量数量 n 是 Asc(i) 中的行数。根据其定义,变量向量 t 满足不等式

t2:(n+1)t1.(1)

公式 1 是 (n+1) 个变量中的洛伦兹锥的定义。变量 t 出现在问题中,代替了凸区域 K 中的变量 x。

在内部,该算法还在锥约束的重构中使用了旋转的洛伦兹锥,但本主题不讨论这种情况。有关详细信息,请参阅 Andersen、Roos 和 Terlaky [1]

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

  • 只有一个边界的变量的下界为零。

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

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

对偶问题

对偶锥是

K*={s:sTx0xK}.

其对偶问题是

maxybTy

使得

ATy+s=f

其中

sK*.

对偶最优解是满足对偶约束并最大化对偶目标的点 (y,s)。

齐次自对偶表示

为了处理可能不可行或无界的问题,该算法添加了两个变量 τ 和 κ,并将问题构造为同质(等于零)和自对偶。

Axbτ=0ATy+sfτ=0fTx+bTyκ=0(2)

以及约束

(x;τ)K¯,(s;κ)K¯*.(3)

这里,K¯ 是与非负实线相连的锥 K,它是 (x;τ) 的空间。类似地,K¯* 是与非负实线相连的锥 K*,它是 (s;κ) 的空间。在这个表示中,以下引理表明 τ 是可行解的缩放,而 κ 是不可行问题的指标。

引理[1] 引理 2.1)

让 (x, τ, y, s, κ) 成为 公式 2 的可行解,同时满足 公式 3 中的约束。

  • xTs + τκ = 0.

  • 如果 τ > 0,则 (x, y, s)/τ 是标准形式二阶锥问题的原始对偶最优解。

  • 如果 κ > 0,则以下严格不等式中至少有一个成立:

    bTy > 0

    fTx < 0.

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

总之,对于可行问题,变量 τ 会缩放原始标准形式问题和齐次自对偶问题之间的解。对于不可行的问题,最后的迭代(x、y、s、τ、κ)为原始标准形式问题提供了不可行性的证明。

起点

迭代的起点是可行点:

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

  • y = 0。

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

  • τ = 1。

  • κ = 1。

中心路径

该算法试图遵循中心路径,即以下方程中 γ 的参数解,从 1 减小至 0。

Axbτ=γ(Ax0bτ0)ATy+scτ=γ(ATy0+s0fτ0)fTx+bTyκ=γ(fTx0+bTy0κ0)XSe=γμ0eτκ=γμ0.(4)
  • 每个变量带有 0 下标,表示该变量的起点。

  • 变量 X 和 S 分别是由 x 和 s 向量形成的箭头矩阵。对于向量 x = [x1,x2,…,xn],箭头矩阵 X 具有定义

    X=mat(x)=[x1x2:nTx2:nx1I].

    根据其定义,X 是对称的。

  • 变量 e 是每个锥坐标中为 1 的向量,对应于 x1 洛伦兹锥坐标。

  • 变量 μ0 的定义

    μ0=x0Ts0+τ0κ0k+1,

    其中 k 是 x0 中非零元素的数量。

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

Andersen、Roos 和 Terlaky [1] 在引理 3.1 中表明,互补条件 xTs = 0(其中 x 和 s 位于 Lorentz 锥的乘积 L 中)等价于条件

XiSiei=SiXiei=0

对于每个锥 i。这里 Xi = mat(xi),xi 是与洛伦兹锥 i 相关的变量,Si = mat(si),ei 是适当维度的单位向量[1,0,0,…,0]。该讨论表明,中心路径在其终点处满足互补条件。

搜索方向

为了当参数 γ 从 1 减小到 0 时获得靠近中心路径的点,该算法使用牛顿法。要查找的变量已标记为 (x、τ、y、s、κ)。让 dx 表示 x 变量的搜索方向,依此类推。然后,牛顿步骤求解由 公式 4 得出的以下线性系统。

Adxbdτ=(γ1)(Ax0bτ0)ATdy+dsfdτ=(γ1)(ATy0+s0fτ0)fTdx+bTdydκ=(γ1)(fTx0+bTy0κ)X0ds+S0dx=X0S0e+γμ0eτ0dκ+κ0dtau=τ0κ0+γμ0.

该算法通过朝 d 方向迈出一步来获得下一个点。

[x1τ1y1s1κ1]=[x0τ0y0s0κ0]+α[dxdτdydsdκ]

对于某个步骤 α[0,1]

为了实现数值稳定性和加速收敛,该算法根据 Nesterov 和 Todd [8] 中的建议来缩放步骤。此外,该算法根据 Mehrotra 的预测校正器 [7] 的变体来校正步骤。(有关更多详细信息,请参阅 Andersen、Roos 和 Terlaky 的 [1]。)

步骤求解器变体

前面的讨论涉及指定了值 'augmented'LinearSolver 选项。求解器具有其他值,可以改变步骤计算以适应不同类型的问题。

  • 'auto' (默认) - coneprog 选择步骤求解器:

    • 如果问题是稀疏的,步长求解器为 'prodchol'

    • 否则,步长求解器为 'augmented'

  • 'normal' - 求解器使用 'augmented' 步骤的变体,适用于问题稀疏的情况。请参阅 Andersen、Roos 和 Terlaky [1]

  • 'schur' - 求解器使用改进的 Schur 补方法来处理具有少量密集列的稀疏问题。此方法也适用于大型锥。请参阅 Andersen [2]

  • 'prodchol' - 求解器使用 Goldfarb 和 Scheinberg ([4][5]) 中描述的方法处理具有少量密集列的稀疏问题。此方法也适用于大型锥。

迭代显示和停止条件

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

  • 原始不可行性

    InfeasPrimalk=Axkbτkmax(1,Ax0bτ0).

  • 对偶不可行性

    InfeasDualk=ATyk+skfτkmax(1,ATy0+s0fτ0).

  • 间隙不可行性

    InfeasGapk=|fTxk+bTykκk|max(1,|fTx0+bTy0κ0|).

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

options = optimoptions('coneprog','Display','iter');

当问题可行且求解器收敛时,所有三个都应该趋近于零。对于可行问题,变量 κk 趋近于零,变量 τk 趋近于正常数。

一个停止条件与间隙不可行性有一定关系。停止条件是当以下最优性测度降低到最优容差差以下时。

Optimalityk=|fTxkbTyk|τk+|bTyk|=|fTxk/τkbTyk/τk|1+|bTyk/τk|.

该统计数据衡量了客观值的精确度。

在下列条件下,求解器也会停止并声明问题不可行。三个相对不可行性测度小于 c = ConstraintTolerance,并且

τkcmax(1,κk).

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

μkcμ0

τkcmax(1,κk).

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

当至少一个不可行性测度大于 ConstraintTolerance 并且计算的步长太小时,就会出现剩余的停止条件。在这种情况下,coneprog 报告搜索方向太小,无法取得进一步进展(退出标志 -7)。

参考

[1] Andersen, E. D., C. Roos, and T. Terlaky. On implementing a primal-dual interior-point method for conic quadratic optimization. Math. Program., Ser. B 95, pp. 249–277 (2003). https://doi.org/10.1007/s10107-002-0349-3

[2] Andersen, K. D. A modified schur-complement method for handling dense columns in interior-point methods for linear programming. ACM Transactions on Mathematical Software (TOMS), 22(3):348–356, 1996.

[3] Ben-Tal, Aharon, and Arkadi Nemirovski. Convex Optimization in Engineering: Modeling, Analysis, Algorithms. (1998).

[4] Goldfarb, D. and K. Scheinberg. A product-form cholesky factorization method for handling dense columns in interior point methods for linear programming. Mathematical Programming, 99(1):1–34, 2004.

[5] Goldfarb, D. and K. Scheinberg. Product-form cholesky factorization in interior point methods for second-order cone programming. Mathematical Programming, 103(1):153–179, 2005.

[6] Luo, Zhi-Quan, Jos F. Sturm, and Shuzhong Zhang. Duality and Self-Duality for Conic Convex Programming. (1996).

[7] Mehrotra, Sanjay. “On the Implementation of a Primal-Dual Interior Point Method.” SIAM Journal on Optimization 2, no. 4 (November 1992): 575–601. https://doi.org/10.1137/0802028.

[8] Nesterov, Yu. E., and M. J. Todd. “Self-Scaled Barriers and Interior-Point Methods for Convex Programming.” Mathematics of Operations Research 22, no. 1 (February 1997): 1–42. https://doi.org/10.1287/moor.22.1.1.

另请参阅

|

相关主题