Introduction
SwarmOps is a source-code library for doing numerical optimization
in the C programming language. SwarmOps is especially suited for
finding the behavioural parameters of an optimization method that
makes it perform its best, by employing another overlaid optimization
method. This is known here as Meta-Optimization (or Meta-Optimisation)
but is also known in the literature as Meta-Evolution,
Super-Optimization, Parameter Calibration, Parameter Tuning, etc.
The success of SwarmOps in doing meta-optimization is mainly due to
three things:
-
SwarmOps uses the same function-interface for an optimization problem
and an optimization method, meaning that an optimization method is
also considered an optimization problem. This modular approach allows
for meta-optimization, meta-meta-optimization, and so on.
-
SwarmOps employs a simple time-saving technique called Pre-Emptive
Fitness Evaluation which makes meta-optimization more tractable to execute.
-
SwarmOps features a simple optimization method that works well as the
overlaid meta-optimizer, because it is usually able to find the best
behavioural parameters for an optimization method using only a fairly
small number of iterations.
By default SwarmOps implements popular and commonly known
optimization methods, including: Differential
Evolution, Particle Swarm Optimization, Random and Local
Optimization (including Pattern Search, Hill-Climbing,
Simulated Annealing, etc.), and Gradient Descent. A number
of common benchmark problems are also provided, including:
Sphere, Griewank, Ackley, Rosenbrock, and so on.
SwarmOps supports the use of custom optimization
problems and methods implemented in both the C and C++ programming
languages.
License
The SwarmOps source-code is published under the
GNU Lesser General Public License,
which essentially means that you may distribute commercial programs
that link with the SwarmOps library, as well as make alterations
to the SwarmOps library itself. There are certain terms to be met
though, please see the
license
for details.
Contact
E-Mail
Feel free to let us know if SwarmOps has been helpful to
you in any way, or if you have any bug-fixes. But technical
questions will likely not be answered
due to lack of time
developing other projects.
swarmops (at) hvass-labs.org
(C) Copyright 2006-2008 Hvass Labs. All rights reserved.
All trademarks are properties of their respective owners.