Swarm intelligence is an exciting new research field still in its infancy compared to other paradigms in artificial intelligence. With many successful applications in a wide variety of complex problems, swarm-based algorithms have shown to have much promise, being efficient and robust, yet very simple to implement. A number of computational swarm-based systems have been developed in the past decade, where the approach is to model the very simple local interactions among individuals, from which complex problem-solving behaviours emerge. One of the research areas within computational swarm intelligence is particle swarm optimization (PSO), which has its origins in bird flocking models. Each individual, referred to as a particle, follow two very simple behaviours, i.e., to follow the best performing individual, and to move towards the best conditions found by the individual itself. In terms of optimization, each particle moves towards two attractors, with the result that all particles converge on one solution.

Bee22 is open source Particle Swarm Optimization (PSO) framework. It is Delphi based and provides architecture specially designed for PSO, to be flexible and easily extendable, and to provide transparent control and monitoring of PSO algorithm.

Bee22 is distributed in two versions - user version and developer version. User version is compiled developer version and it can be run in three different configurations, using three different working directories each with different configuration file (Blocks.ini in Config subdir). If you lack Delphi coding skills or you don't have Delphi, but you would like to familiarize yourself with PSO algorithm and to try things, go for user version. The things you can try are mostly manually changing parameters and scanning parameters and registering PSO algorithm behaviour/results in reports.

The full potential of Bee22 framework is obviously to be revealed in developer version, where you (the developer) has a skeleton (and some mussels) for user-friendly PSO development. The user-friendliness includes very nice way to structure the PSO algorithm and expose some parts (potentially any part) of it to the user and/or to Python script manipulation. The portals of access to this exposition are called blocks (or blocks of properties), where View-Model-Controller design pattern gives convenient way to provide user access to PSO algorithm parameterization.

One advantage of Bee22 is that you can use it remotely as out-of-process COM server. The COM interface is really simple and it profits from the fact that all essential functionality is callable internally from Python script. So what COM interface does is to open the script access to external client. One way to use the remote access is: first - optimize PSO algorithm for this particular optimization problem, then use the Bee22 as optimization engine to whatever needs to be optimized. The program language or environment of your choosing could be anything supporting COM connection (all contemporary languages will do).

COM interface offer three commands:

An example client projects (Delphi and Python) are included.