【问题标题】:CVXPY and MOSEK: Type object 'solsta' has no attribute 'near_optimal'CVXPY 和 MOSEK:类型对象“solsta”没有属性“near_optimal”
【发布时间】:2019-05-28 15:31:00
【问题描述】:

我正在尝试使用 cvxpyMOSEK 解决优化问题。尽管这两个软件包似乎独立工作,但我无法让它们一起运行。每当我要求 cvxpy 解决 MOSEK 的任何问题时,我总是得到错误:

AttributeError: type object 'solsta' has no attribute 'near_optimal'

我做错了什么?

考虑以下(最小)代码:

import cvxpy as cp

x = cp.Variable(2)
obj = cp.Minimize(x[0] + x[1])
constraints = [x >= 2]+[x<=5]
prob = cp.Problem(obj, constraints)

# Solve with MOSEK.
prob.solve(solver=cp.MOSEK,verbose=True)
print("optimal value with MOSEK:", prob.value)

与我尝试使用 MOSEK 和 cvxpy 进行的任何其他优化一样,编译器在此行崩溃:

prob.solve(solver=cp.MOSEK,verbose=True)

MOSEK 正确地解决了问题,但在将解决方案传达给 cvxpy 时似乎存在问题。

【问题讨论】:

    标签: cvxpy mosek


    【解决方案1】:

    看起来您安装了最新的 Mosek 版本 9,但您有一个相当旧的 cvxpy,它不支持它。升级cvxpy,最新版本支持Mosek 9。

    【讨论】:

    • 我刚刚使用命令“conda install -c cvxgrp cvxpy”安装了 cvxpy,我仍然得到同样的错误。使用安装命令“conda install -c cvxgrp cvxpy=1.0.23”会导致错误消息“PackagesNotFoundError: The following packages are not available from current channels: - cvxpy=1.0.23”。
    • @Miguel 那么您目前拥有哪个版本的 cvxpy,以及您拥有哪个版本的 Mosek?
    • 我的 Mosek 版本是 9。我的 cvxpy 版本是 0.4.10(在我输入“conda cvxpy upgrade”之后!)。如何更新我的 cvxpy?我正在使用 anaconda 和 win-64。
    • 是的,所以你需要 cvxpy 1.0。见github.com/cvxgrp/cvxpy/issues/701
    • 它对我不起作用,尽管我升级到 cvxpy 1.0.31 仍然报同样的错误
    猜你喜欢
    • 1970-01-01
    • 2016-06-03
    • 1970-01-01
    • 1970-01-01
    • 2021-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多