Esta es una pregunta corta, pero Google siempre me señala la documentación donde no puedo encontrar la respuesta.

Estoy usando scipy.optimize.minimize. Funciona bastante bien, todo está bien. Puedo definir un método para usar, pero funciona incluso si no especifico el método.

¿Hay alguna forma de obtener una salida, qué método se utilizó? Sé la clase de resultado, pero el método no se menciona allí.

Este es un ejemplo:

solution = opt.minimize(functitionTOminimize,initialGuess, \
                      constraints=cons,options={'disp':True,'verbose':2})
print(solution)

Podría establecer el método del valor en algo como slsqp o cobyla, pero quiero ver qué elige el programa. ¿Cómo puedo obtener esta información?

1
theother 29 jun. 2019 a las 03:27

1 respuesta

La mejor respuesta

Según la Scipy-optimize -Minimize-Docs: Si no se especifica ningún método, la opción predeterminada será una de BFGS, L-BFGS-B, SLSQP, dependiendo de si el problema tiene restricciones o límites. Para obtener más detalles sobre el pedido de los métodos del despliegue, debe echar un vistazo al Scipy-Optimize-Minimize-Source-Code-Line-480. Desde el código fuente, el pedido es el siguiente:

if method is None:
    # Select automatically
    if constraints:
        method = 'SLSQP'
    elif bounds is not None:
        method = 'L-BFGS-B'
    else:
        method = 'BFGS'
1
SuperKogito 1 jul. 2019 a las 01:12