Derivative-free optimization

The ALGLIB numerical library offers a powerful suite of derivative-free solvers, capable of efficiently handling unconstrained and constrained problems with box, linear and nonlinear constraints. The suite includes nonlinear programming solvers, nonlinear least squares solvers and global optimization solvers.

ALGLIB is available in C++, C#, Java and other languages under free and commercial licenses.

Contents

    1 Derivative-free optimization overview
           Algorithms and problem types
           Programming languages supported
    2 Benchmarks
           Metaheuristics
    3 Downloads section

Derivative-free optimization overview

Algorithms and problem types

The term 'derivative-free optimization' is usually applied to two distinct kinds of optimization problems: those where continuous derivatives are unavailable due to non-existence, or those where continuous derivatives are unavailable but do exist. Depending on the situation, the following methods can be used:

Most of the solvers above support box, linear and nonlinear constraints. They also support parallelism, although to different extents.

For example, differential evolution and numerical differentiation are inherently parallelizable, whilst model-based solvers tend to show more limited parallelism potential. On the other hand, model-based algorithms usually require fewer target function evaluations than those based on numerical differentiation, as they more efficiently reuse available information.

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.

Benchmarks

Metaheuristics

In order to evaluate performance and robustness of our differential evolution solver we compared it with several metaheuristic solvers from other well-known open source software packages. We used a small-dimensional subset of the CUTEst set of test problems. See the benchmark page for more information about the benchmark setup.

The chart above clearly shows that ALGLIB is the fastest solver amongst ones compared.

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