es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cambiar opciones de IPOPT con pyomo no funciona.

Estoy utilizando el solucionador IPOPT para resolver las condiciones KKT (un montón de restricciones de igualdad y condiciones de complementariedad). Para asignar el solucionador para el problema de complementariedad, utilizo la siguiente línea de comando:

solver = po.SolverFactory('mpec_nlp')

Y luego, según la documentación de IPOPT, estoy cambiando el número máximo de iteraciones:

solver.options['max_iter']=1000

Pero el solucionador no me hace caso y todavía se detiene en su máximo predeterminado de 3000 iteraciones.

¿Tiene alguna sugerencia sobre cómo hacer que funcione?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Es posible que el problema no esté en la línea de comando que estás usando. Podría ser que haya un parámetro diferente que limite el número máximo de iteraciones. Una forma de comprobar esto es imprimir todas las opciones que usa el solucionador y ver qué valores tienen. Para hacer esto, añade la siguiente línea de código después de la línea “solver.options[‘max_iter’]=1000”:

    print(solver.options)

    Esto imprimirá un diccionario con todas las opciones y sus valores. Comprueba si hay alguna otra opción que limite el número de iteraciones. Si encuentras alguna, cambia su valor en consecuencia.

    Si esto no funciona, intenta usar un solucionador diferente o actualizar IPOPT a la última versión.

Comments are closed.