问题标签 [mosek]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 用于 CVXR 的 Usign Mosek
我已经安装了 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并得到结果 Solution 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/中的文档并没有真正说明如何解决问题。有人找到解决方案了吗?谢谢
r - CVXR 使用 Mosek 解决二次最小化问题
我正在尝试使用 R 包 CVXR 解决具有线性约束的二次优化问题。尽管默认求解器能够解决优化问题,但 Mosek 求解器却不能。我希望使用 Mosek 的原因是因为我需要解决超过 250 个约束的更大问题,而默认求解器给出的解决方案不准确,所以我希望使用 Mosek 解决更大的问题。这是 Mosek 不工作的一个简单示例:
问题数据
表格问题
风险规避参数
它给出了以下错误。
有人知道如何解决它,可能是重新表达问题?
我的会话信息如下:
谢谢
cvxpy - CVXPY 和 MOSEK:类型对象“solsta”没有属性“near_optimal”
我正在尝试使用cvxpy和MOSEK解决优化问题。尽管这两个软件包似乎独立工作,但我无法让它们一起运行。每当我要求 cvxpy 解决 MOSEK 的任何问题时,我总是会收到错误消息:
AttributeError:类型对象“solsta”没有属性“near_optimal”
我究竟做错了什么?
考虑以下(最小)代码:
与我尝试使用 MOSEK 和 cvxpy 进行的任何其他优化一样,编译器在此行崩溃:
MOSEK 正确地解决了这个问题,但是在将解决方案传达给 cvxpy 时似乎存在问题。
r - KWDual MKS_RES_TERM_STALL 中的 REBayes 错误
我正在尝试在下面运行以下模拟。请注意,这确实需要安装 Mosek 和 RMosek!
我不断收到错误
KWDual(A, d, w, ...) 中的错误:Mosek 错误:MSK_RES_TRM_STALL:优化器因进度缓慢而终止。
如何解决MSK_RES_TRM_STALL
错误?
进一步的研究
在查找此文档时,我发现了这一点:
优化器因进度缓慢而终止。停滞意味着数值问题会阻止优化器取得合理的进展,并且继续下去是没有意义的。在许多情况下,如果问题规模严重不足或条件不佳,就会发生这种情况。无法保证解决方案是可行的或最优的。然而,停顿经常发生在最佳值附近,并且返回的解决方案可能质量很好。因此,建议检查解决方案的状态。如果解决方案状态是最佳的,则解决方案很可能对于大多数实际目的来说已经足够好了。请注意,如果使用打开基础识别的内点优化器解决线性优化问题,即使优化器停止,返回的基本解决方案也可能具有较高的准确性。
所以我检查了最终值A
,但里面什么都没有。我发现如果我将模拟从 1000 更改为 30,我确实会得到值 ( A <- sim1(30, 30, setting = 1)
),但这是次优的。
可重现的脚本
r - 使用 CVXR 创建 MOSEK 可行性报告的参数
我正在使用 CVXR 使用 MOSEK 求解器解决 R 中的优化问题。CVXR 通过 ANACONDA 找到了 MOSEK SOLVER 并且工作正常。但是,当模型不可行时,我无法生成 MOSEK 可行性报告。这通常通过 MSK_IPAR_INFEAS_REPORT_AUTO = "ON" 开启(至少在 GAMS 中,我之前使用过 MOSEK)并且对于识别模型设计、数据等方面的问题非常有用。标准命令给了我一个错误。然后我尝试了 Python 接口,它告诉我使用:task.putintparam(iparam.infeas_report_auto, onoffkey.on)。这似乎被我的解决命令接受但仍然没有吐出可行性报告。下面是一个可重现的例子。我究竟做错了什么?
仅给出标准输出:
问题名称:
客观意义:min
类型:LO(线性优化问题) 约束:2 个
锥体:0
标量变量:1
矩阵变量:0
整数变量:0
优化器启动。预求解开始。消除器启动。消除器中释放的约束:0 消除器终止。消除器启动。消除器中释放的约束:0 消除器终止。消除器 - 尝试:2 次:0.00
林。部 - 尝试:0 次:0.00
林。部 - number : 0
Presolve 终止。时间:0.00
优化器终止。时间:0.01
内点解决方案摘要 问题状态:DUAL_INFEASIBLE 解决方案状态:DUAL_INFEASIBLE_CER 原始。obj:-1.0000000000e+00 nrm:1e+00 Viol。缺点:0e+00 变量:0e+00
基本解决方案摘要 问题状态:DUAL_INFEASIBLE 解决方案状态:DUAL_INFEASIBLE_CER 原始。obj:-1.0000000000e+00 nrm:1e+00 Viol。缺点:0e+00 变量:0e+00
optimization - CPLEX 和 MOSEK 与 YALMIP 给出不同的结果
我正在使用带有 YALMIP 的 MATLAB 解决优化问题,这类似于单元承诺问题。
这是一个混合整数线性规划问题。
我正在考虑两个决策变量-> P 和 T_room
我用 YALMIP 在 MATLAB 中制定了这个问题,
当我使用 CPLEX 和 MOSEK 求解器时,我得到了不同的结果。
谁能向我解释为什么会这样?
exponent - 使用 Mosek 的 CVXPY 指数原子
下面是我程序中的一段代码。
我的问题是 Mosek 说我的模型中指数锥的数量是 40 而不是 1。为什么会这样?
python - 带索引的变量和带索引的总和在 mosek
我必须找到整数规划问题的解决方案:
我正在使用 Mosek 的 Fusion API (Python)。现在约束很容易放入,我更担心实际目标。我的问题是:我如何告诉 mosek 我想对所有i
s、j
s 或k
s 求和并定义它们是什么,它们的边界是什么等?
这是服务器上下文中自缓存问题的简化版本。所以i
这里指的是服务器,j
指的是要缓存的对象,但在这个版本中只有一个对象,所以我想这并不重要。k
也表示 server ,所以 eg表示从 server到 serverd(ik)
的距离。i
k
但是无论我想实现什么,我都不知道如何写这个目标。现在我有这样的事情:
现在当然demand_times_dist_times_y
是错误的,因为我想得到矩阵i
的距离。以上很好,因为 xs 是: k
,但 ys 必须是,所以我想我把它们定义错了。x
{x0, x1, x2, x3, x4, x5, x6}
{y11, y12, y13, y14, y15, y16, y21, y22, ..., y66}
那么,例如,我如何定义 i,k 在其中并通过例如 k{1,2,3,4,5,6}
创建一个?Expr.sum
我将如何在目标开始时定义这两个总和?
cvxpy - 凸模型中的约束数
为什么使用 cvxpy 编写并使用 Mosek 求解的凸 QCQP 模型显示的约束比模型中定义的约束更多(正如 Mosek 所报告的)?
即使对于像 square(x) 这样的 cvxpy atom,我也注意到了同样的情况,如果 x 是单个变量和约束:
表明模型有 4 个约束而不是只有一个?
谢谢
optimization - 带有 MOSEK 求解器的 CVXPY:如何找到与 Mosek“索引”对应的约束?
我正在使用 MOSEK 作为求解器在 cvxpy 中求解 SDP。我的问题是不可行的,MOSEK 有一个很好的功能,它提供了一个“不可行报告”。就我而言,报告如下所示:
我想知道这份报告指的是哪些约束。我在 cvxpy 中的约束列表仅包含 105 个约束,但其中许多是矩阵或向量约束。这就解释了为什么 MOSEK 报告的指数高达 3052。但是,很难找出报告中列出了我的哪些约束。
有没有办法找出 MOSEK 报告了我的哪些 cvxpy 约束?