使用MOSEK进行CVXOPT输出抑制

时间:2012-06-07 01:31:21

标签: python mathematical-optimization mosek

我正在使用可选的MOSEK求解器和CVXOPT二次规划,即

sol = cvxopt.solvers.qp(-Q,-p,G,h,A,b,solver='mosek')

现在没有使用MOSEK求解器,即

sol = cvxopt.solvers.qp(-Q,-p,G,h,A,b)

可以使用命令

抑制CVXOPT生成的终端输出
cvxopt.solvers.options['show_progress'] = False

但是,使用MOSEK求解器选项时,这不起作用。我在几个循环中的MOSEK求解器产生了很多我不感兴趣的输出,这意味着我看不到我感兴趣的输出(即我选择使用'print'输出的内容)。

有谁知道是否可以抑制MOSEK输出?或者如果没有,潜在的解决方法(将输出传输到文件或其他东西)?

非常感谢!

p.s抱歉,我无法包含更多特定标签(我不允许创建新标签)。

2 个答案:

答案 0 :(得分:3)

我无法弄清楚如何通过CVXOPT传递这些选项,但在对CVXOPT的源进行一些筛选之后,我想出了这个解决方案:

from cvxopt import matrix, solvers
from mosek import iparam
solvers.options['MOSEK'] = {iparam.log: 0}

适用于mosek 6。

答案 1 :(得分:0)

这个问题应该在CVXOPT google-group(链接来自 CVXOPT主页):

http://groups.google.com/forum/?fromgroups#!forum/cvxopt

无论如何,来自doc-strings:

>>> help(cvxopt.msk.qp)
.
.
   Options are passed to MOSEK solvers via the msk.options dictionary, 
    e.g., the following turns off output from the MOSEK solvers

        >>> msk.options = {mosek.iparam.log: 0} 

    see chapter 15 of the MOSEK Python API manual.