Stochastic Algorithms for Global Optimization C++ library  1.0
The Stochastic Algorithms for Global Optimization C++ library

The problem of the global optimization is hard and plenty of stochastic algorithms were proposed for its solution. The authors of many such stochastic algorithms claim the efficiency and the reliability of searching for the global minimum. The reliability means that the point with minimal function value found in the search process is sufficiently close to the global minimum point and the efficiency means that the algorithm finds a point sufficiently close to the global minimum point at reasonable time. However, when we use such algorithms, we face the problem of the setting their control parameters.

The efficiency and the reliability of many algorithms are strongly dependent on the values of control parameters. Recommendations given by authors are often vague or uncertain. A user is supposed to be able to change the parameter values according to the results of trial-and-error preliminary experiments with the search process. Such attempt is not acceptable in tasks, where the global optimization is one step on the way to the solution of the user's problem or when the user has no experience in fine art of control parameter tuning. Adaptive robust algorithms reliable enough at reasonable time-consumption without the necessity of fine tuning their input parameters have been studied in recent years.

The differential evolution (DE) has become one of the most popular algorithms for the continuous global optimization problems in last decade years. But it is known that the efficiency of the search for the global minimum is very sensitive to the setting of its control parameters. That is why the self-adaptive DE was proposed and included into this library.

This C++ library brings essential classes, data types and algorithms for usage of the proposed differential evolution algorithms. It is licensed as a GNU GPL 3 software library providing code for effective construction of user's own programs using DE optimization. The library is provided as a package of header and implementation files (*.h and *.cpp) together hyper textual documentation and demonstrational examples of usage (the user is encouraged to consult them first). The user's resulting project integrating our library and user's own code could be compiled by GNU GCC compiler (version 3.4.5).

Simple example of usage: