2012-06-07 10 views
8

estoy usando el solucionador MOSEK opcional con CVXOPT programación cuadrática, es decir,CVXOPT con MOSEK

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

Ahora sin utilizar el solucionador MOSEK, es decir

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

salida Terminal generada por CVXOPT puede ser suprimido con el comando

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

Sin embargo, esto no funciona cuando se usa el solucionador MOSEK opción. El solucionador MOSEK, que tengo dentro de un par de bucles, produce una gran cantidad de salida que no me interesa, lo que significa que no puedo ver la salida que me interesa (es decir, lo que elijo imprimir usando 'imprimir').

¿Alguien sabe si es posible suprimir la salida MOSEK? O si no, un posible trabajo alternativo (canalizar la salida a un archivo o algo así)?

¡Muchas gracias!

Dan

p.s Siento no haber podido incluir etiquetas más específicas (no se me permite crear nuevas etiquetas).

Respuesta

0

Esta pregunta debe hacerse en el google-grupo CVXOPT (enlazado desde la página principal CVXOPT):

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

De todos modos, a partir de los doc-cuerdas:

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

Gracias. Todavía tengo problemas (soy muy nuevo en el uso de CVXOPT y MOSEK). Volveré a publicar mi pregunta en el grupo de google. – Dan

+1

Stackoverflow es un sitio de preguntas y respuestas, y esta es una pregunta perfecta. Además, esto realmente no responde a la pregunta, a diferencia de la respuesta de @ petter-nilsson – Zero

3

No podía Tomo una idea de cómo pasar estas opciones a través de CVXOPT, pero después de una selección de la fuente de CVXOPT, se me ocurrió esta solución:

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

Funciona con mosek 6.

+0

Esto realmente funciona para mí; solo en lugar de {mosek.iparam.log: 0} utilicé {iparam.log: 0}. ¡Gracias! – Arash