用于优化线性或二阶锥的自对偶齐次嵌入内点方法。 不支持 SDP 锥体!

[x,y,info,s,z] = ecos(c,G,h,dims,A,b)
求解一对原始和双锥程序
最小化 c'x
服从 G
x + s = h
A*x = b
s >= 0

 最大化 -h'*z - b'*y
 服从 G'*z + A'*y + c = 0
             z >= 0。

不等式是关于定义为笛卡尔坐标的圆锥 C
N + 1 个锥的乘积:
C = C_0 x C_1 x .... x C_N x C_{N+1}。

第一个圆锥 C_0 是维度 ml 的非负正数。
接下来的 N 个圆锥是维度为 mq[0], ..., 的二阶圆锥
MQ[N-1]。维数为 m 的二阶圆锥定义为

{ (u0, u1) 在 R x R^{m-1} | u0 >= ||u1||_2 }。

输入参数:
c 是大小为 (n,1) 的密集矩阵。

dims 是具有 C 组件维度的结构。
它有两个字段。
- dims.l = ml,非负正弦 C_0 的维度。
  (毫升 >= 0。)
- dims.q = mq = [ mq[1], mq[2], ..., mq[N] ],N 的行向量
  具有二阶锥 C_1、...、
  C_N。 (N >= 0 和 mq[k] >= 1。)
dims 的默认值为 dims.l = size(G,2) 和 dims.q = []。

G 是大小为 (K,n) 的稠密或稀疏矩阵,其中

    K = ml + mq[1] + ... + mq[N]。

G 的每一列描述一个向量

    v = ( v_0, v_1, ..., v_N+1 )

在 V = R^ml x R^mq[1] x ... x R^mq[N]
存储为列向量

    [ v_0; v_1; ...; v_N+1]。

h 是一个大小为 (K,1) 的密集矩阵,表示 V 中的一个向量,
与 G 的列格式相同。

A 是大小为 (p,n) 的密集或稀疏矩阵。默认值
是 []。

b 是大小为 (p,1) 的密集矩阵。默认值为 []。

假设 rank(A) = p 和 rank([A; G]) = n。

注意:求解器和上面的文本很大程度上基于文档
[1] L. Vandenberghe:“CVXOPT 线性和二次圆锥程序
解算器”,2010 年 3 月 20 日。
[在线]:http://abel.ee.ucla.edu/cvxopt/documentation/coneprog.pdf

(c) Alexander Domahidi,IfA,苏黎世联邦理工学院,2012 年。

由 Peter H. Li 修改,如果不是 ecos mex,则提供错误编译。

posted on 2022-07-11 20:32  brasn  阅读(68)  评论(0编辑  收藏  举报