SNOPT: An SQP Algorithm for Large-Scale Constrained Optimization.: An SQP Algorithm for Large-Scale Constrained Optimization.