python - NLopt 无效参数

标签 python python-2.7 mathematical-optimization nlopt

我使用 NLopt 库和 python 绑定(bind)。

opt = nlopt.opt(nlopt_algorithm, N)
opt.set_max_objective(func_to_maximize)
opt.set_lower_bounds(lower_bounds)
opt.set_upper_bounds(upper_bounds)
opt.set_maxeval(100)
xopt = opt.optimize(x0)

当我使用nlopt_algorithm = nlopt.LN_SBPLX时,效果很好。但是,如果我使用nlopt_algorithm = nlopt.GN_DIRECT_L,它会失败并出现错误:

ValueError: nlopt invalid argument

有人知道这是为什么吗?我是否遗漏了一些论点?

最佳答案

问题来自于这样一个事实:并非所有变量都定义了绑定(bind)约束。对于全局优化,NLopt 要求所有参数都有上限和下限。

关于python - NLopt 无效参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36358878/

相关文章:

python - 是否有使用 Python 2/3 兼容源作为移植策略的大型项目?

Python netcdf - 每日数据所有时间段的月中位数

python - 是什么让 Python 不是函数式编程语言?

python - 在 python 2.7 中使用长调用链模拟静态函数调用

python - 无法弄清楚为什么代码在 Python 3 中工作,而不是 2.7

python - 在不显式定义梯度的情况下优化 scipy 中的函数

python - `scipy.optimize.root` 更快的根查找

python - 如何在 Plotly 中为折线图添加 95% 置信区间?

没有提供参数时python argparse设置行为

algorithm - 找到与一组 N 条线的距离最小的点