1

我使用带有 python 绑定的 NLopt 库。

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 无效参数

有谁知道这是为什么?我错过了一些论点吗?

4

1 回答 1

2

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

于 2016-04-01T15:32:35.527 回答