документация за програмиране на cvxopt cone

Опитвам се да реша проблем с квадратична оптимизация, използвайки библиотеката на 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


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