Differential evolution solver

Differential Evolution (DE) is a powerful method of derivative-free global optimization. The ALGLIB numerical library includes GDEMO - one of the best open source implementations of differential evolution (see the benchmark) available in C++, C#, Java and other languages under both free and commercial licenses. The solver is robust, parallelized and capable of efficiently handling unconstrained and constrained problems with box, linear and nonlinear constraints.

This article discusses the specifics of the DE solver. A high-level overview of other derivative-free optimization functionality is provided on another page.

Contents

    1 Differential evolution solver
           Features
           Programming languages supported
    2 Benchmark
    3 Downloads section

Differential evolution solver

Features

Differential evolution is provided by the mindf subpackage, which includes algorithms for derivative-free and global optimization problems. The DE solver can be activated by calling mindfsetalgogdemo (for an adaptive DE) or mindfsetalgogdemofixed (for a DE with fixed evolution parameters).

All DE implementations share the same properties: an ability to solve 'incorrectly stated' problems (nonsmooth, noisy, discontinuous) and global optimization capabilities. In addition to that, ALGLIB implementation of the differential evolution method has the following attractive features:

Differential evolution successfully competes with other global methods like genetic algorithms (GA) and particle swarm optimization (PSO), producing comparable or better results with no need for tuning and no need to develop a chromosome representation of your optimization problem.

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.

Benchmark

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.

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.03.0 for C++

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

ALGLIB 4.03.0 for C#

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

ALGLIB 4.03.0 for Java

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

ALGLIB 4.03.0 for Delphi

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

ALGLIB 4.03.0 for CPython

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