将 Mosek 用于 CVXR

Usign Mosek for CVXR

我已经安装了3次Mosek。它在 python 中工作,但 CVXR(r 包)函数 installed_solvers() 无法找到 MOSEK。

我正在研究 MACos Mojave。我通过 conda 命令安装了 Mosek,获得了学术许可证,在主目录中创建了一个名为 mosek 的文件夹,并将许可证文件放入其中。然后我在 jupyter 实验室测试了以下脚本 https://docs.mosek.com/8.1/pythonapi/design.html#hello-world-in-mosek 并得到了结果 解决方案 x = 2.0 ,所以 Mosek 正在工作。 然后我安装了 reticulate,使用默认目录,将其替换为 use_python("/Users/apple/anaconda3") 和 use_python("/Users/apple/anaconda3/lib/python3.6") 在其中任何一个中,函数 installed_solvers() 都找到了 mosek。我的会话信息如下

https://cvxr.rbind.io/cvxr_examples/cvxr_using-other-solvers/ 中的文档并没有真正说明如何解决问题。有人找到解决方案了吗?谢谢

我能够复制,不幸的是错误非常少。但是根据源代码,https://rdrr.io/cran/CVXR/src/R/mosek-solver.R,我尝试了所有要求

reticulate::py_module_available(module = "numpy")
reticulate::py_module_available(module = "scipy.sparse")
reticulate::py_module_available(module = "mosek")

发现我的 Python 环境中实际上缺少 scipy。安装后,它按照记录工作..

如果这对您没有帮助,请尝试手动导入求解器:

msk = MOSEK()
import_solver(msk)

看看它通向哪里。