问题标签 [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.

0 投票
0 回答
280 浏览

optimization - 如何在 CVXOPT 中运行 MOSEK 求解器

我写了一个小代码来使用 CVXOPT 做一个简单的最小方差优化,你可以在下面看到整个代码

通过在 CVXOPT 中使用solvers.qp(P, q, G, h, A, b),代码运行良好并且找到了解决方案

我也想尝试不同的求解器,因此我使用 MOSEK 通过以下参数解决相同的问题

使用solver='mosek'时,代码无法运行,它给了我以下错误

MOSEK 错误 1295:目标中的二次系数矩阵不是正半定的,正如最小化问题所期望的那样

谁能解释我为什么会出现这个错误(我是否以错误的方式编码?)以及是否有解决方法来解决我在 MOSEK 中面临的问题

0 投票
0 回答
94 浏览

matlab - Mosek 中的二次和线性约束(来自 Matlab)

我有一个关于如何在 Mosek(来自 Matlab)中运行二次约束最小化问题的问题。这是我的问题

在此处输入图像描述

假设不存在线性等式和不等式约束。Mosek 文档(此处)很好地解释了如何实现优化问题。首先,我们应该将问题改写为

在此处输入图像描述

二、我们应该设置

问题:如何在上面的代码中引入我的示例中的两个线性等式和不等式约束?

我试图查看有关线性编程的示例,但它们似乎并不容易与我上面的代码混合。

0 投票
2 回答
60 浏览

matlab - Mosek:禁止打印“MOSEK Version 9.2.3 ...”

我在 Matlab 中使用 Mosek,我想在运行优化问题后抑制任何打印。

我已经设置了param.MSK_IPAR_LOG = 0;。但是,我仍然收到以下消息。

我怎样才能删除它?

0 投票
0 回答
43 浏览

python - MOSEK:如何向 Task() 添加约束

我是 Mosek 优化的新手,我正在尝试实施投资组合优化,但我没有使用 Fusion。
我正在使用基本的 MOSEK API。

该问题非常接近此处描述的基本投资组合优化:https ://docs.mosek.com/9.1/pythonfusion/case-studies-portfolio.html#

我已经制定了大部分变量和约束,但我面临以下问题:如何引入与此类似的约束:
M.constraint('budget', Expr.sum(x), Domain.lessThan(D))
即交易总和小于预定义的阈值。
在 fusion API 中这很容易,但是基本的 API 呢?(使用 mosek.Env().Task())

任何提示将不胜感激!

0 投票
0 回答
183 浏览

python - 减少 CVXPY 的约束最小化

我正在处理一个数学优化问题,更详细地说,它是一个半定程序(参见下面的代码片段),用于迭代地解决另一个问题。

要求等式约束满足 ~10^(-10) 或更好。即使我从满足高达 10^(-12) 或更好的约束的矩阵 M 开始优化,优化结果 X 也不能非常接近地满足 X+M 的要求(至少其中两个或三个是只遇到了 10**(-7))。有没有办法提高 cvx (mosek) 满足约束的精度?

旁注:我将优化的初始值作为完全相同问题的解决方案,因此似乎可以产生更高的准确性,但我想这只是幸运。不幸的是,这个矩阵并不接近最小值,所以我需要再做一次迭代。

这里 M 和 C 是已知矩阵, A 和 b 分别是矩阵和标量的列表。

我已经尝试在文档和互联网上找到答案,但我找不到解决方案。因此,我将不胜感激任何帮助!

提前致谢!

0 投票
0 回答
210 浏览

pyomo - 用 pyomo 和 Mosek 解决 SDP 问题

我的求解器的输出给出了以下错误>>

错误:rescode.err_qcon_upper_triangle(1417):只应指定二次项下三角形中的元素。元素 q[1,12] 在指定的第 0 个约束的上三角形中。

关于如何解决此问题的任何想法?

0 投票
0 回答
479 浏览

matlab - Matlab警告:名称不存在或不是目录

我正在400我大学的 HPC 中运行阵列作业(Matlab R2018b 任务)。拥有 之后qsub400由它们开始的任务立即被杀死。

在每个任务的 .o 文件中没有报告错误,但只有以下警告

如果它可能有用:我在我的 Matlab .m 文件中调用 MOSEK 求解器。特别是,在我的 Matlab .m 文件的开头,我有

如果我已联系管理员询问此问题(尚未回复),我可以立即做些什么来修复它并运行我的代码?

0 投票
4 回答
1498 浏览

python - 多面体/点集内切椭球的最大体积

稍后编辑:我在这里上传了我的原始数据样本。它实际上是 DICOM 格式的分割图像。该结构的体积约为 16 mL,因此我假设内部椭球体体积应小于该体积。为了从 DICOM 图像中提取点,我使用了以下代码:

我在 3D 空间中有一组点(n > 1000),它们描述了一个空心的卵形形状。我想要的是适合所有点内的椭圆体(3D)。 我正在寻找点内拟合的最大体积椭球。

我试图 通过修改阈值来调整来自最小封闭椭圆体(又名外边界椭圆体)的代码,我的逻辑开始是所有点都应该小于 < 1 给定椭圆体方程。但没有成功。
err > tol

我还尝试了对mosek的 Loewner-John 改编,但我不知道如何描述超平面与 3D 多面体(Ax <= b 表示)的交集,因此我可以将其用于 3D 案例。所以再没有成功。

内接椭球

外椭球的代码:

这为我的样本点上的外椭球提供了这个结果: 在此处输入图像描述

主要问题:如何使用 Python 在 3D 点云中拟合椭圆体(3D)?

是否可以修改外部椭球的算法以获得最大内接(内部)椭球?

我正在寻找Python理想的代码。

0 投票
1 回答
60 浏览

matlab - MOSEK:prob.a 未指定

我想使用 Mosek 解决以下 LP(从 Matlab 调用)

max wrto b A'b where -1<=b<=1

A,b 的长度为 L。

这就是我实现它的方式。

我收到此错误:Error(1200): prob.a not specified

我该如何解决?

0 投票
1 回答
423 浏览

matlab - 大型线性规划的 Mosek 内存问题

我使用 MOSEK 在 Matlab 中运行一个非常大的线性规划问题(32768 个未知数和 691621 个约束)。代码在基于 Linux 的集群中提交。在 bash 文件中,我请求以下内存量:

但得到Mosek error: MSK_RES_ERR_SPACE (Out of space.)

我可以请求更多内存(但是,还不清楚还有多少?),但这意味着在集群中排队很长时间。

因此,我想知道是否可以尝试以其他方式改善这个问题。

1)引用一些 MOSEK 常见问题解答:

这个建议有用吗?调用垃圾收集器是什么意思(即,我应该将哪一行添加到我的 Matlab 代码中?)。

2)https://docs.mosek.com/9.2/pythonapi/guidelines-optimizer.html(即使这是为Python),它建议设置

我可以在 Matlab 中做到这一点吗?如何?

3)来自http://ask.cvxr.com/t/how-to-deal-with-out-of-space-error-when-using-mosek-to-solve-a-conic-optimization-problem/7510:“如果您在 1 个线程上运行,它将在一定程度上减少内存消耗(在 cvx 求解器选项中将 MSK_IPAR_NUM_THREADS 设置为 1 或将 MSK_IPAR_INTPNT_MULTI_THREAD 设置为 0)”

这也可以在 Matlab 中完成吗?我努力了

但它似乎不起作用,因为输出文件仍然给出


与以下问题相关的评论:

  • 代码在我的 MacOS 64 位中运行,使用 16 个线程,仅需 180 秒。计算机内存为 32 GB 2667 MHz DDR4。它使用远少于20G(约9G)。

  • 在请求 20G 的 vmem 和 tmem 后,代码在我的 univ(基于 Linux)的集群上运行时失败。在集群中,MOSEK 执行预求解、基于 GP 的矩阵重新排序,然后失败。这是一个典型的日志文件

2020 年 9 月 9 日星期三 08:10:47 BST 任务 ID 为 6