2014-12-13 3 views
0

У меня есть проблема, подобная следующей задача: enter image description hereпрограммирования второго порядка конуса в Romosek (MISOCP)

Это проблема MISOCP и мне нужно решить эту проблему с Rmosek.

Библиотека оптимизации mosek содержит 3 вида выпуклых конусов: R-конус, квадратичный конус и повернутый квадратичный конус (см http://r-forge.r-project.org/scm/viewvc.php/проверки /pkg/inst/doc/userguide.pdf?root=rmosek (pp 33-34))

Я не могу передать свою проблему ни одной из этих моделей! Я определил некоторые новые переменные $ u_1, u_2, w $ такие, что $ u_1 = 4x_1, u_2 = 5x_2, u_1 \ geq 0, u_2 \ geq 0 $ и $ w = \ sqrt {u_1^2 + u_2^2} $ , Но я не знаю, как переформулировать последнее ограничение, как один из указанных выше конусов ....

Я ценю это, если у вас есть какие-либо идеи

ответ

1

Ваше последнее ограничение определяет один лист гиперболы, определенный 4000x1 + 6400x2 - 384x1^2 - 1280x1x2 - 999x2^2 = 10000. Это не выпукло. Вы не можете прямо сформулировать его как выпуклое коническое ограничение.

+0

Спасибо за ваш ответ, Что делать, если у меня есть неравенство 416x1^2 + 1280x1x2 + 1049x2^2 <= 10000? Тогда как я могу перенести свою модель в формат, приемлемый в Rmosek? Поскольку я минимизирую целевую функцию, разве это не означает, что даже в случае неравенства ответ находится на поверхности гиперболы? – Shima

+0

@Shima: Извините, я взорвал его. См. Обновленное выражение. Вы можете сформулировать «(x1, x2) находится в выпуклой оболочке одного листа гиперболы, определяемой 4000x1 + 6400x1 - 384x1^2 - 1280x1x2 - 999x2^2 = 10000.» Одно решение будет выглядеть как {(t, z1, z2): t> = 0 и t^2> = z1^2 + z2^2} cap {(t, z1, z2): z1 = 1} вместе с изменением координат от z1 и z2 до x1 и x2. Может быть и более «приятное» решение. Обнаружение этой смены координат - это немного проблема с грязной алгеброй. – tmyklebu

+0

@Shima: И нет, это не обязательно то, что произойдет. Оптимальное решение могло бы иметь (x1, x2) как внутреннюю точку выпуклой оболочки одного листа вашей гиперболы. – tmyklebu