документация по программированию конуса cvxopt

Я пытаюсь решить проблему квадратичной оптимизации, используя библиотеку Python cvxopt. У меня есть квадратичные ограничения, которые я конвертирую в ограничения конуса.

Мой вопрос касается документации 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 || для к = 0,...,М


person Community    schedule 05.06.2015    source источник


Ответы (1)


Вы пропустили важную часть примера:

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

Из документации по программированию конусов:

Аргумент Gq представляет собой список M плотных или разреженных матриц G_1, ..., G_M. Аргумент hq представляет собой список M плотных одностолбцовых матриц h_1, ..., h_M. Элементы Gq и hq должны иметь хотя бы одну строку. Значения по умолчанию Gq и hq — это пустые списки.

Таким образом, покомпонентные неравенства, представленные s_0, просто опущены.

person tynn    schedule 05.06.2015