我'COBYLA'
在 scipy 的optimize.minimize
函数中使用该算法(为 cygwin 构建的 v.0.11)。我观察到bounds
在这种情况下似乎没有使用该参数。例如,简单的例子:
from scipy.optimize import minimize
def f(x):
return -sum(x)
minimize(f, x0=1, method='COBYLA', bounds=(-2,2))
返回:
status: 2.0
nfev: 1000
maxcv: 0.0
success: False
fun: -1000.0
x: array(1000.0)
message: 'Maximum number of function evaluations has been exceeded.'
而不是预期2
的x
.
有没有人意识到同样的问题?是否存在已知的错误或文档错误?在 scipy 0.11 文档中, COBYLA算法不排除此选项。实际上该函数fmin_cobyla
没有bounds
参数。感谢您的任何提示。