Проблема не соответствует правилам DCP в CVXPY - PullRequest
0 голосов
/ 03 июня 2019

«Задача не соответствует правилам DCP» встречается в целевой функции, но математически это выпукло (я доказал), и когда я применил ту же проблему к CVXOPT, это сработало.

Я не знаю, чтоЯ должен изменить.

x = cp.Variable(data_length)
obj = cp.Minimize((-mu_hat @ x)**2*cp.quad_form(x, covar))

constraints = [sum(x) == 1,  x <= [bounds[i][1] for i in range(len(bounds))], x >= [bounds[i][0] for i in range(len(bounds))]]

prob = cp.Problem(obj, constraints)

prob.solve()

cvxpy.error.DCPError: Проблема не соответствует правилам DCP.

1 Ответ

1 голос
/ 03 июня 2019

Дисциплинированное выпуклое программирование не позволяет умножать два выпуклых выражения.У вас есть

(-mu_hat @ x)**2

и

cp.quad_form(x, covar)

, которые оба выпуклые.Может быть, вы хотели добавить их?Как вы сформулировали проблему для cvxopt?

...