2013-03-20 12 views
0

просто интересно, если кто может помочь мне решить проблему, которая идет как это: (с MATLAB и CVX)программирование невыпуклой оптимизации (квадратичная максимизация) полуопределенное программирование

cvx_begin sdp 

variables x0 x1 x2 x3 y1 y2 y3 y4 y5 

x0==1/sqrt(3) 

1/3+x1^2+x2^2+x3^2+y1^2+y2^2+y3^2+y4^2+y5^2<=1 

x1==-x3 
y1==y5 
y2==-y4 

x0*X0+x1*X1+x2*X2+x3*X3+y1*Y1+y2*Y2+y3*Y3+y4*Y4+y5*Y5>=0 

maximize(x1^2+x2^2+x3^2) 

cvx_end 

X0, X1, .... .X3, Y1, .... Y5, Z1 ....... Z7 (прописными буквами) являются матрицами (сферическими тензорами). Одно ограничение состоит в том, что произведение с переменными в нижнем регистре должно быть положительным полуопределенным, также оно имеет выполнить также все остальные равенства/неравенства после выражения переменной.

хорошо, эта программа не работает, как квадратичная максимизация не является выпуклым, как того требует CVX, кто-то знает, каким образом эта оптимизация может быть риформинг или решаемой с другим ресурсом

хорошо, любой входной является подтверждением,

ответ

2

Похоже, вы пытаетесь максимизировать квадратичность на шаре, пересекаемом с аффинным пространством и уродливым полупространством.

Максимальное квадратичное значение на шаре известно как подзадача области доверия. Удивительно, но он допускает эффективное решение. Я никогда не использовал его, но LSTRS от Marielba Rojas и др. очевидно, реализует решение TRS.

Однако вам придется иметь дело с ограничением неравенства. Я бы предложил найти самый маленький возможный множитель Лагранжа, который приведет к оптимальному решению вашей TRS, фактически лежащей в желаемой полуплоскости. Бинарный поиск - довольно низкотехнологичный способ сделать это.

Смежные вопросы