MOSEK решатель на cvxpy: TypeError

1

Я пытаюсь использовать решатель MOSEK с cvxpy, но я получаю:

TypeError: аргументы ключевого слова должны быть строками

Я собрал минимальный пример, где ошибка все еще происходит. Вот пример:

import cvxpy as cvx

x = cvx.Variable()
y = cvx.Variable()
constraints = [x + y <= 3]
prob2 = cvx.Problem(cvx.Maximize(x + y), constraints = constraints)
sol = prob2.solve(solver=cvx.MOSEK)
print("optimal value", sol)

Это происходит даже с этой очень простой проблемой.

Теги:
optimization
cvxpy
mosek

2 ответа

0

Это похоже на ошибку. Было бы неплохо сообщить о проблеме на github.

Пока, если ваша проблема QP, она должна работать с OSQP:

sol = prob2.solve(solver=cvx.OSQP)

0

Я не знаю cvxpy, но у вас есть в аргументе ключевого слова code snippet 2:

  • [x + y <= 3] который НЕ является строкой
  • cvx.MOSEK для меня неизвестный тип

Таким образом, по вашему сообщению об ошибке, по крайней мере один из них должен быть строкой. Попробуйте использовать

constraints = "x + y <= 3"

вместо

constraints = [x + y <= 3]
  • 0
    Спасибо за ответ, это синтаксис для определения ограничений в cvxpy. Если я изменяю его на строку, я получаю AttributeError: 'str' object has no attribute 'variables'
  • 0
    Так что проблема с cvx.Mosek . Попробуйте print(type(cvx.Mosek)) чтобы убедиться, что его тип str .
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню