Methods for solving constrained optimization problems