OpenSQP: A Reconfigurable Open-Source SQP Algorithm in Python for Nonlinear Optimization
By: Anugrah Jo Joshy, John T. Hwang
Sequential quadratic programming (SQP) methods have been remarkably successful in solving a broad range of nonlinear optimization problems. These methods iteratively construct and solve quadratic programming (QP) subproblems to compute directions that converge to a local minimum. While numerous open-source and commercial SQP algorithms are available, their implementations lack the transparency and modularity necessary to adapt and fine-tune them for specific applications or to swap out different modules to create a new optimizer. To address this gap, we present OpenSQP, a modular and reconfigurable SQP algorithm implemented in Python that achieves robust performance comparable to leading algorithms. We implement OpenSQP in a manner that allows users to easily modify or replace components such as merit functions, line search procedures, Hessian approximations, and QP solvers. This flexibility enables the creation of tailored variants of the algorithm for specific needs. To demonstrate reliability, we present numerical results using the standard configuration of OpenSQP that employs a smooth augmented Lagrangian merit function for the line search and a quasi-Newton BFGS method for approximating the Hessians. We benchmark this configuration on a comprehensive set of problems from the CUTEst test suite. The results demonstrate performance that is competitive with proven nonlinear optimization algorithms such as SLSQP, SNOPT, and IPOPT.
Similar Papers
Anytime-Feasible First-Order Optimization via Safe Sequential QCQP
Optimization and Control
Makes computers solve hard problems safely, step-by-step.
A Sequential Quadratic Programming Perspective on Optimal Control
Optimization and Control
Finds best robot moves, always improving.
Deep FlexQP: Accelerated Nonlinear Programming via Deep Unfolding
Optimization and Control
Solves hard math problems faster, even if they seem impossible.