Ich benutze die Bibliothek NLopt, mit Python-Bindungen.NLopt ungültiges Argument
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)
Wenn ich nlopt_algorithm = nlopt.LN_SBPLX
verwende, funktioniert es gut. Allerdings, wenn ich nlopt_algorithm = nlopt.GN_DIRECT_L
verwenden, schlägt es mit dem Fehler:
ValueError: nlopt invalid argument
Weiß jemand, warum das so ist? Fehle ich einige Argumente?
Haben Sie einen anderen globalen Optimierungsalgorithmus ausprobiert? GN_DIRECT_L funktioniert gut für mich in C, aber wenn ich mich richtig erinnere, hatte ich einen ähnlichen Fehler bei der Auswahl seiner unskalierten Variante. – Tony
Andere globale Optimierung fehlgeschlagen. Lassen Sie mich überprüfen, es könnte ein Problem mit der Festlegung der gebundenen Einschränkungen sein. – DevShark
Danke @Tony. Das liegt daran, dass meine Einschränkungen nicht für alle Parameter definiert wurden. – DevShark