2012-06-07 6 views
8

sto usando il risolutore MOSEK opzionale CVXOPT programmazione quadratica, cioèCVXOPT con MOSEK

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

Ora senza utilizzare il risolutore MOSEK, cioè

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

uscita Terminal generato da CVXOPT può essere soppresso con il comando

cvxopt.solvers.options['show_progress'] = False 

Tuttavia, questo non funziona quando si utilizza il solutore MOSEK opzione. Il solutore MOSEK, che ho in un paio di loop, produce un sacco di output a cui non sono interessato, nel senso che non riesco a vedere l'output che mi interessa (cioè, quello che scelgo di produrre usando 'print').

Qualcuno sa se è possibile sopprimere l'uscita MOSEK? O se no, un potenziale lavoro in giro (pipe l'output in un file o qualcosa del genere)?

Grazie mille!

Dan

P.S Spiacente non ho potuto includere tag più specifici (io non sono autorizzato a creare nuovi tag).

risposta

0

Questa domanda dovrebbe essere chiesto al CVXOPT google-gruppo (legato dalla homepage CVXOPT):

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

In ogni caso, dalle doc-stringhe:

>>> 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

Grazie. Ho ancora problemi (sono molto nuovo nell'usare sia CVXOPT che MOSEK). Riprenderò la mia domanda nel gruppo di google. – Dan

+1

Stackoverflow è un sito di domande e risposte - e questa è una domanda perfetta. Inoltre, questo in realtà non risponde alla domanda, a differenza della risposta di @ petter-nilsson – Zero

3

non potevo' t capire come passare queste opzioni attraverso CVXOPT, ma dopo aver esaminato la fonte CVXOPT ho trovato questa soluzione:

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

Funziona con mosek 6.

+0

Questo in realtà funziona per me; solo invece di {mosek.iparam.log: 0} ho usato {iparam.log: 0}. Grazie! – Arash