我使用 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/