SQP method for NLP

Sequential quadratic programming (SQP) is a popular method for solving nonlinear programming problems. The ALGLIB nonlinear programming suite includes one of the fastest open-source SQP implementations (see the benchmark) as well as other nonlinear programming algorithms. These are available in C++, C#, Java and several other programming languages under a dual free/commercial licensing model.

This article discusses the specifics of the SQP solver. A high-level overview of the ALGLIB nonlinear programming suite is provided on another page. If you found this page while looking for a quadratic programming solver, ALGLIB also offers one.

Contents

    1 ALGLIB SQP solver overview
           Features
           Programming languages supported
    2 Comparison with other open-source solvers
    3 Downloads section

ALGLIB SQP solver overview

Features

The smooth nonlinear programming functionality in ALGLIB is provided by the minnlc subpackage of the Optimization package. The ALGLIB implementation of the Sequential Quadratic Programming algorithm includes many performance and stability improvements:

The solver has nice convergence requirements (C1 continuity of the target/constraints, no convexity requirements) and can handle infeasible initial points. It is one of the fastest open-source optimizers available!

Programming languages supported

ALGLIB supports many programming languages, including C++, C#, Java, Python, and others:

A distinctive feature of ALGLIB is that it provides exactly the same API in all programming languages. This is achieved with our exclusive technology of automatic code translation and wrapper generation.

Comparison with other open-source solvers

In order to evaluate the performance and robustness of our NLP solvers we compared our SQP implementation with several open-source nonlinear programming solvers using a subset of the CUTEst test problem set (see the smooth NLP benchmark page for a more detailed discussion).

The result is that ALGLIB is consistently faster and more robust that other open-source solvers.

This article is licensed for personal use only.

Download ALGLIB for C++ / C# / Java / Python / ...

ALGLIB Project offers you two editions of ALGLIB:

ALGLIB Free Edition:
+delivered for free
+offers full set of numerical functionality
+extensive algorithmic optimizations
-no multithreading
-non-commercial license

ALGLIB Commercial Edition:
+flexible pricing
+offers full set of numerical functionality
+extensive algorithmic optimizations
+high performance (SMP, SIMD)
+commercial license with support plan

Links to download sections for Free and Commercial editions can be found below:

ALGLIB 4.01.0 for C++

C++ library.
Delivered with sources.
Monolithic design.
Extreme portability.
Editions:   FREE   COMMERCIAL

ALGLIB 4.01.0 for C#

C# library with native kernels.
Delivered with sources.
VB.NET and IronPython wrappers.
Extreme portability.
Editions:   FREE   COMMERCIAL

ALGLIB 4.01.0 for Java

Java wrapper around HPC core.
Delivered with sources.
Seamless integration with Java.
Editions:   FREE   COMMERCIAL

ALGLIB 4.01.0 for Delphi

Delphi wrapper around C core.
Delivered as precompiled binary.
Compatible with FreePascal.
Editions:   FREE   COMMERCIAL

ALGLIB 4.01.0 for CPython

CPython wrapper around C core.
Delivered as precompiled binary.
Editions:   FREE   COMMERCIAL