Python Constrained Optimization Methods