ORBIT - optimizing expensive objective functions

Surrogate model optimization, also known as model-based derivative-free optimization, is a popular method for solving smooth nonlinear programming problems with expensive objectives that lack analytic derivatives.

The ALGLIB nonlinear programming suite includes the linearly and nonlinearly constrained ORBIT solver - one of the fastest and the most efficient surrogate optimization algorithms - alongside other nonlinear programming solvers. These are available in C++, C#, Java and several other programming languages under a dual free/commercial licensing model.

This article focuses on the specifics of the ORBIT solver. A high-level overview of the ALGLIB nonlinear programming suite (including the SQP solver, nonsmooth solver and metaheuristic solver) is available on another page. If you arrived at this page while looking for an RBF interpolation, ALGLIB also offers one.

Contents

    1 ORBIT solver overview
           Description
           Programming languages supported
           Documentation and examples
    2 Downloads section

ORBIT solver overview

Description

The ORBIT algorithm was originally proposed by Stefan M. Wild et al. for unconstrained surrogate optimization. It was independently implemented by the ALGLIB Project and extended to support linear and nonlinear constraints.

Similarly to the SQP method, the ORBIT solver builds and iteratively refines a surrogate RBF model. When solving a nonlinearly constrained problem, the solver also builds RBF models for the constraints. The minimum of the model over a trust region is a direction for the next step.

The difference between two methods is that SQP needs derivative information to update its quadratic model in a quasi-Newton fashion. In contrast, the ORBIT solver uses RBF models that do not need derivatives for their construction. Another difference is that minimizing an RBF model over trust region is generally more expensive than solving a QP subproblem. Thus, the solver is intended for problems with the following properties:

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

The ORBIT algorithm is included into the minnlc subpackage of the Optimization package. It can be used interchangeably with other algorithms from the subpackage. The ALGLIB Reference Manual includes several examples on how to configure the MINNLC solver suite, as well as an example on the ORBIT specifically: minnlc_modelbased.

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

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

ALGLIB 4.04.0 for C#

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

ALGLIB 4.04.0 for Java

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

ALGLIB 4.04.0 for Delphi

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

ALGLIB 4.04.0 for CPython

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