问题标签 [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.
c++ - Mosek 和 Code::Blocks,第一步 - 编译问题
我在 Code::Blocks 中编译 Cpp 代码时遇到问题,使用 windows(如果相关,则为 idk)和 Mosek 库。
我做的第一步是通过项目->构建选项...->搜索目录->编译器添加库的路径:策略“将目标选项附加到项目选项”,添加以下路径:“.... ....\Program Files\Mosek\7\tools\platform\win64x86\h" (仅供参考,起初我使用“/”而不是“\”,但后来在某个地方我读到在 Windows 中我应该换一种方式周围,所以我做了改变。不管怎样,问题仍然存在。)
但是它不会识别来自 Mosek 库的任何命令 - 错误将是“未定义的引用”。
然后我尝试通过将 mosek.h 文件所在的文件夹添加到 Code::Blocks 来解决此问题,通过 Project->Build options...->Linker settings: Policy "append target options to project options",链接 mosek.h
但现在程序通知我以下错误:文件 ld.exe,消息“找不到 -lmosek.h”。
我对所有这些都很陌生,并试图解决那些用谷歌搜索的问题,但我不知道还能做什么。有人可以帮帮我吗?
python - 使用 CVXOPT 进行 Python 二次规划
我正在寻找关于制定具有二次约束的 CVXOPT 二次规划问题的权威指南。这里提供了很好的文件:
我正在处理的问题陈述与这里的问题相同:
矩阵G应该是什么样的?我已经制定了一个线性方程组,但是看看例子这似乎不正确?
我找到的最好的资源是https://courses.csail.mit.edu/6.867/wiki/images/a/a7/Qp-cvxopt.pdf,但最后的链接已经死了,无法阅读。
我有一个 ipython 笔记本试图使用这种编程方法,但它不断失败:https ://gist.github.com/jaredvacanti/62010beda0ccfc20d2eac3c900858e50
编辑:我已经编辑了笔记本中的数据源文件,以提供对该优化问题中使用的真实数据的访问。
c++ - 特征稀疏矩阵行向量断言失败
下面是我的代码,矩阵是一个填充的2 x 2
稀疏矩阵:
但是当我调用 mosek 函数将线性项放入优化器时,我得到了断言错误
错误信息:
Eigen::DenseCoeffsBase::Scalar& Eigen::DenseCoeffsBase::operator()(Eigen::Index) [with Derived = Eigen::Matrix; Eigen::DenseCoeffsBase::Scalar = double; Eigen::Index = long int]:断言 `index >= 0 && index < size()' 失败。
当我像这样运行代码时不会出错,但我不知道为什么。
我的矩阵是由下面的代码构造的,它是一个逆矩阵
求解器;
求解器.计算(垫);
matlab - 如何通过 mosek 热启动解决圆锥优化
我有一系列圆锥规划问题要解决。解决第一个问题后,我得到一个正确的结果。但是,由于第二个优化问题与前一个非常相似,我想利用第一个解决方案来加速这个过程。看了Matlab上mosek的文档,好像mosek中的二次曲线优化问题很难用热启动?我想知道是否有一些方法可以处理这个问题,因为每次从头开始解决一系列圆锥优化问题真的很令人失望。先感谢您!
macos - 如何在 Mac 上运行 install.py 以在 MATLAB 中安装 MOSEK?
我正在尝试在我的 Mac 上安装 MOSEK 以在 MATLAB 中使用,但我无法了解如何运行以下步骤:
运行命令:
<MSKHOME>
安装 MOSEK 的目录在哪里。这将设置使用 MOSEK 时所需的适当共享对象。
我应该在 MATLAB 或终端或其他什么地方运行这个命令?另一个问题究竟<MSKHOME>
应该是什么?
python - cvxpy 上的 MOSEK 求解器:TypeError
我正在尝试将 MOSEK 求解器与 cvxpy 一起使用,但我得到:
TypeError:关键字参数必须是字符串
我已经组装了一个错误仍然发生的最小示例。这是示例:
即使有这个非常简单的问题,它也会发生。
r - Rmosek中的svm负(正)半定矩阵
我尝试使用 Rmosek 包设置 svm,但遇到了一个问题
使用 Rmosek。
在这个阶段,我已经检查了 Q 是负数
半定矩阵。
但是,“有时”我仍然得到错误:**“二次系数矩阵
在目标中不是负半定的"**
我不知道我错过了哪一部分或做错了。(我已经检查了很多次了,我仍然不知道。)
python - 将约束添加到优化问题时 Mosek 求解器失败(10000 个变量,使用 Python/cvxpy)
简而言之
下面的优化问题在使用 Mosek 运行时被声明为不可行,但可以使用开源求解器 ECOS 求解(轻松且准确)。
我想知道:为什么像 Mosek 这样先进的商业求解器无法解决这个问题?
_
更多细节
我正在测试一些优化器,并且一直在研究 Mosek。我已经下载了试用许可证,并且正在使用 Mosek v8.1 和 cvxpy 0.4.10。
我发现 Mosek 似乎并没有非常准确地坚持约束,或者在有很多约束的情况下失败。这就是我想要帮助的 -为什么 Mosek 对这些限制不精确,为什么它会因为明显可解决的问题而失败?
在下面的脚本中,我只用两个约束(所有变量为正,总和为 1)解决了一个简单的问题,然后用几个添加的约束重新解决它,我称之为“sumproduct”约束。
对于某些常数 b_i,这些添加的约束都是“某些变量子集的权重必须总和小于 b_i”的形式。我将这些约束打包成一个矩阵方程A @ weights <= b
。
当我使用内置求解器 ECOS 运行这篇文章底部的脚本时,它很容易解决了基本问题,给出了 2.63 的最佳值...:
你可以看到我也在计算我所说的每个约束的差异。这是优化器“越过”返回权重中的约束的量。所以这里的 ECOS 稍微“打破了规则”,由约束定义,但不是很多。
然后我要求 ECOS 解决一个更受约束的问题,增加了 100 个“sumproduct”约束。这些 sumproduct 约束的形式为A @ weights <= b
,并且A
有 486 个 1,其余为 0。
然后我重新解决了这个问题,并看到了一组修改后的最佳权重。最优值比以前少了一点(因为添加了约束),并且 ECOS 仍然在非常好的精度内“遵守”所有约束:
如果我用 Mosek 运行相同的脚本,我发现在基本问题上,Mosek 解决了它,但在其中一个约束上已经很遥远了:
这意味着我们有几个小于零的权重总和为 -7e-6,这对我来说不够准确。
然后,当谈到解决更受限制的问题时,Mosek 完全失败并宣布它PRIMAL_INFEASIBLE
。
任何人都可以提供任何关于为什么 Mosek 会失败的想法吗?我也看到它在其他情况下的约束也非常不准确。我尝试使用参数来提高精度intpnt_co_tol_pfeas
,但是每当我这样做时,求解器就会经常失败。
提前感谢您对此的任何帮助。这是我的示例代码。运行solver='ECOS'
正常,运行solver='MOSEK'
失败。
error-code - 从 cvxpy 中的求解器中检索 mosek 错误代码
在 cvxpy 中使用 mosek,我得到解算器失败的错误。有没有办法从 Mosek 恢复错误代码?Cvxpy 似乎没有提供它。
python - 如何在 mosek.fusion.Model 中提取表达式?
我想解决最大化目标的优化,该目标是矩阵的绝对值之和。但是,我找不到准确的方法来获得它:
例如:
不工作
我怎样才能得到 的绝对值x
?