Multi-objective optimization solver

ALGLIB, a free and commercial open source numerical library, includes a large-scale multi-objective optimization solver. The solver is highly optimized, efficient, robust, and has been extensively tested on many real-life optimization problems. It comes with support for numerical differentiation and all kinds of constraints (box, linear, and nonlinear).

The library is available in multiple programming languages, including C++, C#, Java, and Python. It is self-contained and portable to various CPU architectures and operating systems.

Being a dual-licensed library, ALGLIB includes a free and a commercial edition. A fully functional free edition is ideal for academic research or small non-commercial projects. The commercial edition is intended for those seeking high performance, priority support, or the ability to use the library in commercial applications.

Contents

    1 Multi-objective optimization solver overview
           Solver description
           Programming languages supported
           Documentation and examples
    2 Mathematical background
    3 Downloads section

Multi-objective optimization solver overview

Solver description

ALGLIB includes a fast, feature-rich, and highly optimized multi-objective solver (minmo subpackage of the Optimization package). Its key features are:

Our multi-objective solver is an implementation of the Normal Boundary Intersection (NBI) algorithm, which generates nearly uniform sampling of a Pareto front. Internally, NBI uses the SQP solver to solve nonlinearly constrained subproblems. In our opinion, NBI provides the best balance between algorithm robustness and quality of results.

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.

Documentation and examples

An ALGLIB Reference Manual includes a section for the minmo subpackage which provides complete API description and several examples.

Mathematical background

Multi-objective optimization (also known as multicriteria optimization, Pareto optimization, multi-objective programming, or vector optimization) is a mathematical optimization problem involving more than one target function being minimized simultaneously. Unless you are solving a trivial problem, different targets usually conflict with each other. Thus, no single solution can minimize them all simultaneously.

However, there exist solutions that have the following property: No objective can be improved without degrading at least one other objective. Such solutions are called Pareto-optimal. A set of all Pareto-optimal solutions is a Pareto front for a multi-objective optimization problem. Multi-objective solvers approximate a Pareto front by returning a finite sample of its points.

Different problems have different accuracy requirements. Some of them have to be solved with high accuracy (3-6 digits). For other problems (usually ones obtained from approximate simulations), a solution with error as small as several percent is good enough.

ALGLIB's implementation of NBI uses the SQP-based solver, which returns solutions accurate up to 6 significant digits. Other algorithms not implemented in ALGLIB include:

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