cvxpy上的MOSEK求解器:TypeError

时间:2018-08-28 11:22:12

标签: python optimization cvxpy mosek

我正在尝试将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)

即使有这个非常简单的问题,它也在发生。

2 个答案:

答案 0 :(得分:0)

我不知道cvxpy,但是您在代码段2中包含关键字参数:

  • [x + y <= 3]不是字符串
  • cvx.MOSEK对我来说是未知类型

因此,根据您的错误报告,其中至少有一个必须是字符串。尝试使用

constraints = "x + y <= 3"

代替

constraints = [x + y <= 3]

答案 1 :(得分:0)

它看起来像个错误。最好在github上报告一个问题。

现在,如果您的问题是QP,则应与OSQP一起使用:

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