主要内容

二阶锥规划算法

二阶锥规划的定义

二阶锥规划问题有这样的形式

最小值 x f T x

受约束

A sc ( ) x b sc ( ) d sc T ( ) x γ ( ) A x b Aeq x = 贝基 x 乌兰巴托

f,x,b,贝基,,及乌兰巴托向量,AAeq矩阵。为每一个,矩阵Asc(),向量bsc(),dsc()和标量γ()是在一个二阶锥约束中创建的二阶锥

换言之,该问题具有线性目标函数和线性约束,以及一组二阶锥约束的形式 A sc ( ) x b sc ( ) d sc T ( ) x γ ( )

coneprog算法

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

标准格式

该算法首先将问题放入标准形式.该算法添加非负松弛变量,使问题具有以下形式

最小值 x f T x

受约束

A x = b x K

求解器扩展了线性系数向量的大小f线性约束矩阵A来解释松弛变量。

地区K叉乘是洛伦兹锥方程1和非负正交。转换每个凸锥

A sc ( ) x b sc ( ) d sc T ( ) x γ ( )

到洛伦兹锥方程1,创建变量的列向量t1,t2, …,tn+1:

t 1 = d T x γ t 2 : ( n + 1 ) = A sc x b sc

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

t 2 : ( n + 1 ) t 1 (1)

方程1的洛伦兹锥的定义n+ 1)变量。的变量t出现在问题中的变量x在凸区域K

在内部,该算法还使用洛伦兹旋转锥在圆锥约束的重新表述中,但本主题不涉及这种情况。详情请参见Andersen、Roos和Terlaky[1]

当添加松弛变量时,算法会根据需要对变量求反,并添加适当的常量,这样:

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

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

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

对偶问题

对偶锥是

K * = { : T x 0 x K }

对偶问题是

最大值 y b T y

这样

A T y + = f

对于一些

K *

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

齐次自对偶公式

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

A x b τ = 0 A 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,那么(x,y,)/τ是标准形式二阶锥问题的原对偶最优解。

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

    bTy> 0

    fTx< 0.

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

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

起点

迭代的起点是可行点:

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

  • y= 0.

  • =(1,0,…,0)对于每个圆锥体,1对于每个非负变量。

  • τ= 1.

  • κ= 1.

中央小路

算法试图遵循中央路径,这是以下方程式的参数化解决方案:γ从1到0递减。

A x b τ = γ ( A x 0 b τ 0 ) A T y + c τ = γ ( A 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= [x1,x2、……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

A d x b d τ = ( γ 1 ) ( A x 0 b τ 0 ) A T d y + d f d τ = ( γ 1 ) ( A 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](有关更多详细信息,请参见安徒生、罗斯和特莱基。)[1].)

阶跃解算器变化

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

  • “自动”(默认)coneprog选择步骤解算器:

    • 如果问题是稀疏的,则步骤解算器为“普罗乔尔”

    • 否则,步骤解算器将被禁用“增强”

  • “正常”-求解器使用的是“增强”当问题稀疏时,这是合适的步骤。看看安徒生、鲁斯和特拉基[1]

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

  • “普罗乔尔”-求解器使用Goldfarb和Scheinberg描述的方法([4][5])用于处理具有几个密集列的稀疏问题。该方法也适用于大型锥体。

迭代显示和停止条件

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

  • 原始不可行性

    感染 原始的 k = A x k b τ k 最大值 ( 1 , A x 0 b τ 0 )

  • 对偶不可行

    感染 二重的 k = A T y k + k f τ k 最大值 ( 1 , A T y 0 + 0 f τ 0 )

  • 差距不可能实行

    感染 差距 k = | f T x k + b T y k κ k | 最大值 ( 1 , | f T x 0 + b T y 0 κ 0 | )

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

选择= optimoptions (“coneprog”,“显示”,“国际热核实验堆”);

当问题可行且求解器收敛时,这三个点都应该趋近于零。对于可行问题,变量κ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=ConstraintTolerance,及

τ k c 最大值 ( 1 , κ k )

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

算法也会在

μ k c μ 0

τ k c 最大值 ( 1 , κ k )

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

剩余的停止条件发生在至少一个不可行措施大于ConstraintTolerance计算的步长太小。在这种情况下,coneprog有报道称,搜索方向变得太小,无法取得进一步进展-7)。

参考文献

[1] Andersen, E. D., C. Roos,和T. Terlaky。关于二次曲线优化的原-对偶内点法的实现。数学程序,Ser.B95,第249-277页(2003)。https://doi.org/10.1007/s10107-002-0349-3

安徒生,k.d。线性规划内点法中处理密集柱的改进schur-补法。ACM数学软件交易(TOMS),22(3):348–3561996。

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

[4] Goldfarb,D.和K.Scheinberg。线性规划内点法中处理密柱的乘积形式cholesky分解法。数学学报,32(1):1 - 10,2004。

Goldfarb, D.和K. Scheinberg。二阶锥规划内点法中的乘积形式cholesky分解。数学学报,31(1):1 - 7,2005。

[6] 罗智权、何塞·斯图姆和张树忠。圆锥凸规划的对偶性和自对偶性。(1996). 可在https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.48.6432

[7] Mehrotra,桑杰。《关于原-对偶内点法的实现》。暹罗优化杂志2,第4号(1992年11月):575-601。https://doi.org/10.1137/0802028

[8] 内斯特罗夫,余。E.和M.J.托德。“凸规划的自缩放障碍和内点方法。”运筹学数学,第1号(1997年2月):第1-42页。https://doi.org/10.1287/moor.22.1.1

另见

|

相关的话题