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)

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

4

2 回答 2

0

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

目前,如果您的问题是 QP,它应该适用于 OSQP:

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

于 2018-08-28T21:59:37.183 回答
-1

我不知道 cvxpy 但您的代码片段中有 2 个关键字参数:

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

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

constraints = "x + y <= 3"

代替

constraints = [x + y <= 3]
于 2018-08-28T11:34:33.727 回答