constrained optimization problem