3

这是一个简短的问题,但谷歌每次都指向我找不到答案的文档。

我正在使用 scipy.optimize.minimize。它工作得很好,一切都很好。我可以定义要使用的方法,但即使我没有指定方法,它也可以工作。

有什么方法可以得到输出,使用了哪种方法?我知道结果类,但那里没有提到该方法。

这是一个例子:

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

我可以将 value 方法设置为类似slsqpor cobyla,但我想看看程序选择了什么。我怎样才能得到这些信息?

4

1 回答 1

4

根据scipy-optimize-minimize-docs:如果未指定方法,则默认选择将是 BFGS、L-BFGS-B、SLSQP 之一,具体取决于问题是否有约束或界限。要获取有关方法部署顺序的更多详细信息,您应该查看scipy-optimize-minimize-source-code-line-480。从源代码来看,顺序如下:

if method is None:
    # Select automatically
    if constraints:
        method = 'SLSQP'
    elif bounds is not None:
        method = 'L-BFGS-B'
    else:
        method = 'BFGS'
于 2019-07-01T01:12:50.610 回答