Table of Contents
Fetching ...

OpenSQP: A Reconfigurable Open-Source SQP Algorithm in Python for Nonlinear Optimization

Anugrah Jo Joshy, John T. Hwang

TL;DR

The paper addresses the need for transparent, modular SQP solvers for nonlinear optimization and introduces OpenSQP, a Python-based, reconfigurable SQP implementation with swappable components (merit functions, line search, Hessian, QP solver). It demonstrates that OpenSQP achieves robust performance comparable to leading solvers (SNOPT, IPOPT) on the CUTEst benchmark, while offering openness and ease of customization through the modOpt framework. The study highlights advantages in transparency and adaptability for researchers and practitioners, and provides extensive benchmarking and implementation details. Overall, OpenSQP presents a practical, open-source platform for developing, testing, and deploying modular SQP optimizers.

Abstract

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.

OpenSQP: A Reconfigurable Open-Source SQP Algorithm in Python for Nonlinear Optimization

TL;DR

The paper addresses the need for transparent, modular SQP solvers for nonlinear optimization and introduces OpenSQP, a Python-based, reconfigurable SQP implementation with swappable components (merit functions, line search, Hessian, QP solver). It demonstrates that OpenSQP achieves robust performance comparable to leading solvers (SNOPT, IPOPT) on the CUTEst benchmark, while offering openness and ease of customization through the modOpt framework. The study highlights advantages in transparency and adaptability for researchers and practitioners, and provides extensive benchmarking and implementation details. Overall, OpenSQP presents a practical, open-source platform for developing, testing, and deploying modular SQP optimizers.

Abstract

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.

Paper Structure

This paper contains 23 sections, 1 theorem, 20 equations, 1 figure, 2 tables.

Key Result

theorem 1

A point $x^*$ is an isolated local solution of (eq:np) if

Figures (1)

  • Figure 1: Performance and data profiles of IPOPT, PySLSQP, OpenSQP, SNOPT, and trust-constr on 575 problems from the CUTEst collection.

Theorems & Definitions (1)

  • theorem 1