2012-06-07 223 views
8

我使用的是CVXOPT二次规划可选MOSEK求解,即CVXOPT抑制输出与MOSEK

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抱歉,我不能有更具体的标签(我不能创建新的代码)。

回答

0

这个问题应该在CVXOPT谷歌组(从 CVXOPT主页链接)问:

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

无论如何,从DOC-字符串:

>>> 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. 
+0

谢谢。我仍然遇到麻烦(我对使用CVXOPT和MOSEK都很陌生)。我会在Google群组中重新发布我的问题。 – Dan

+1

Stackoverflow是一个问答网站 - 这是一个完美的问题。此外,这并不真正回答这个问题,不像@ petter-nilsson的回答 – Zero

3

我不能”不知道如何通过CVXOPT传递这些选项,但经过一些CVXOPT源代码的筛选后,我想出了这个解决方案:

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

它适用于mosek 6.

+0

这实际上适用于我;而不是{mosek.iparam.log:0}我用{iparam.log:0}。谢谢! – Arash