Я использую библиотеку NLopt с привязками 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 invalid argument
Кто-нибудь знает, почему это так? У меня отсутствуют некоторые аргументы?
Пробовал ли вы любой другой глобальный алгоритм оптимизации? GN_DIRECT_L отлично работает для меня на C, тем не менее, если я правильно помню, у меня была аналогичная ошибка при выборе его немасштабированного варианта. – Tony
Простая глобальная оптимизация. Позвольте мне проверить, может быть, проблема с установкой связанных ограничений. – DevShark
Спасибо @Tony. Это связано с тем, что мои ограничения не были определены для всех параметров. – DevShark