Direct methods, such as the branch-and-bound method, can rigorously solve a global optimization problem but unfortunately they are prohibitive for real-life applications of high dimensionality and complexity. Therefore, alongside various types of evolutionary algorithms, particularly the particle swarm optimization (PSO) has been established during the last two decades for an approximate but rather efficient global optimization. While the standard PSO does not guarantee finding the global minimum of the objective function, it scales much more favorably with the number of search dimensions.
ArFlock is a C++ program library with extensive use of the Standard Template Library (STL), as well as the Boost library collection. The latter is used particularly for random numbers (Boost.Random), serialization (Boost.Serialization) and the Message Passing Interface (Boost.MPI). Currently ArFlock provides different types of PSO algorithms (attractive and repulsive PSO), different update rules, different models for the inertial weights, neighborhoods, and various velocity and search space constraints, such as periodic boundary conditions. Also both synchronous and asynchronous parallel PSO implementations are available and optimized for use on massively parallel machines. ArFlock has been developed by Ivan Kondov at the Steinbuch Centre for Computing (SCC) at the Karlsruhe Institute of Technology.
Most important features of ArFlock in overview:
- C++ library employing the Boost library for MPI, Random and Serialization
- Asynchronous parallel PSO for efficient massively parallel processing (MPP)
- Provides variety of PSO algorithms and heuristics
- Provides performance diagnostics
- Application areas: protein structure prediction, structure optimization of large molecules and clusters
If you like to use ArFlock in your research please contact Ivan Kondov to request a copy of the software as source code under a free academic license.