0

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

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

s_0 => 0

s_k0 => || s_k1 || 对于 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 || 对于 k = 0,...,M

4

1 回答 1

1

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

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

锥编程的文档中

参数GqM密集或稀疏矩阵G_1, ..., G_M的列表。参数hqM个密集单列矩阵h_1, ..., h_M的列表。Gq和的元素hq必须至少有一行。Gq和的默认值hq是空列表。

因此,由 表示的分量不等式s_0只是被省略了。

于 2015-06-05T17:42:11.230 回答