function | ECOS
用于优化线性或二阶锥的自对偶齐次嵌入内点方法。 不支持 SDP 锥体!
[x,y,info,s,z] = ecos(c,G,h,dims,A,b)
求解一对原始和双锥程序
最小化 c'x
服从 Gx + 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,则提供错误编译。