我的代码看起来像这样。
nlopt::opt opt(nlopt::LD_SLSQP, dimension);
opt.set_min_objective(objective, NULL);
opt.add_inequality_mconstraint(constraint1, NULL, tolerance1);
opt.add_equality_mconstraint(constraint2, NULL, tolerance2);
opt.add_equality_mconstraint(constraint3, NULL, tolerance3);
opt.set_xtol_rel(1e-6);
opt.set_ftol_rel(1e-6);
opt.set_lower_bounds(lb);
opt.set_upper_bounds(ub);
opt.set_maxeval(MAX_EVAL);
initial_guess(result_vector);
opt.optimize(result_vector, min_cost);
使用 1 个约束进行优化会返回良好的结果。
但是当我将它们一起使用时,优化器无法正常工作。(不满足每个约束)
知道为什么会这样吗???