Swarming

Using object oriented programming techniques, multiple copies of software agents can be created. These agents - with independent means of communication, recognition and processing abilities - can be programmed to work as a group to collectively perform a complex task. This activity often resembles the swarming activities of insect colonies and can be used in association with stigmergic systems.

Swarming is very similar to stigmergy because like stigmergy it is an emergent reaction to an environment. The difference is that with swarming the environment is the swarm itself, whereas with stigmergy the environment is external and separate. This difference is very important so they should not be confused.

Swarming is a much easier concept to deal with than stigmergy, because swarms can be created as closed systems within a computer environment. This makes swarming techniques ideal for computer applications, where agents can take the form of algorithms. And, when used with neural nets or genetic algorithms, the applications can be arranged to predict, make inferences and draw conclusions.

A typical use of swarming agents is:Swarming agents for pattern recognition - a proposed application for the surveillance of real time data to detect possible terrorist activity.

The limitations of swarming is the same as that for any closed system driven by algorithms: it cannot deal viably with situations where there are unknowns, unpredictable events or subjective information. To try to deal with these, the system has to sacrifice its simplicity and efficiency as it tries to cater for all possibilities and exceptions (artificial intelligence systems failed to live up to expectations because of this problem).

Stigmergic systems, on the other hand, cannot rely upon pre-designed, built in algorithms. They are open systems that interact with unpredictable external environments where algorithms may not function as planned. Instead, they rely upon a positive feedback effect - between the system and its environment - which drives the system to generate its own form, structure and behavior. This allows stigmergic systems to tackle information management problems that are beyond the scope of swarms or computer applications that depend upon predesigned algorithms.

As you will appreciate, designing swarming systems and designing stigmergic systems require totally different minds sets. A swarming system is like a computer application, where the complexity has to be designed in from the start. Stigmergic systems on the other hand have to be 'grown', where the complexity and organization is added gradually.

To get the best of both worlds, swarming and stigmergy can be combined. This can be done if it is arranged for a swarm to change an external environment, which in turn changes the behavior of the swarm, which then induces the swarm to make further changes to the external environment...etc...etc... to produce a continuous, iterative sequence of changes and reactions.

This is the way swarming is used in biological systems. If you'd like to know how nature uses swarming agents with stigmergy, you might care to read: Food and Hypersensitivity by S.J. Gislason MD

With stigmergic systems, the characteristic positive feedback effect can always be detected by the fluctuations in its appearance. In the above example, Gislason describes this as follows:

"Just as in bee colonies, the overall activity of the hive or colony decides how the society or network looks and acts. The changeable patterns of immune activity are also weather-like. Patients report episodic and sometimes turbulent or chaotic changes in their symptom patterns over time. As Alan Perelson, an immune system theorist, suggested: 'The system never settles down to a steady-state, but rather, constantly changes with local flare ups and storms, and with periods of relative quiescence.'"