Использовать Mosek для CVXR

Я уже 3 раза Мосек устанавливал. Он работает на python, но функция installed_solvers () CVXR (r package) не может найти MOSEK. введите описание изображения здесь

Я работаю над MACos Mojave. Я установил Mosek через conda comand, получил академическую лицензию, создал в домашнем каталоге папку с именем 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/ на самом деле не говорит, как решить проблему. Кто-нибудь нашел решение? Спасибо


person Alejandro Andrade    schedule 04.02.2019    source источник


Ответы (1)


Я смог воспроизвести, и ошибки, к сожалению, очень тихие. Но на основе исходного кода 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")

чтобы обнаружить, что мне действительно не хватало scipy в моей среде Python. После установки все заработало, как указано в документации.

Если это вам не помогает, попробуйте вручную импортировать решатель:

msk = MOSEK()
import_solver(msk)

и посмотрите, к чему это приведет.

person Henrik Alsing Friberg    schedule 05.02.2019
comment
Спасибо за вашу помощь с вашими командами. Я обнаружил, что reticulate не находит mosek, и я только что обновил свой R, и он работает. - person Alejandro Andrade; 05.02.2019