cvxopt cone 编程文档

cvxopt cone programming documentation

我正在尝试使用 cvxopt python 库解决二次优化问题。 我有二次约束,我正在将其转换为圆锥约束。

我的问题是关于 cvxopt documentation for cone programming。一般锥形程序用(除其他外)约束来描述:

s_0 => 0

s_k0 => || s_k1 || for k = 1,...,M

他们真的是这个意思吗?

他们在文档下给出了一个例子:

他们表示为:

G = [ matrix( [[12., 13., 12.], [6., -3., -12.], [-5., -5., 6.]] ) ]
G += [ matrix( [[3., 3., -1., 1.], [-6., -6., -9., 19.], [10., -2., -2., -3.]] ) ]
h = [ matrix( [-12., -3., -2.] ),  matrix( [27., 0., 3., -42.] ) ]

这似乎表明约束是:

s_k0 => || s_k1 || for k = 0,...,M

您错过了示例的重要部分:

sol = solvers.socp(c, Gq = G, hq = h)

来自documentation for cone programming

The argument Gq is a list of M dense or sparse matrices G_1, ..., G_M. The argument hq is a list of M dense single-column matrices h_1, ..., h_M. The elements of Gq and hq must have at least one row. The default values of Gq and hq are empty lists.

所以 s_0 表示的分量不等式被忽略了。