Emergent algorithm
An emergent algorithm is an algorithm that has the following characteristics:
- it achieves predictable global effects
- it does not require global visibility
- it does not assume any kind of centralized control
- it is self-stabilizing
Emergence is said to arise from the cooperation of many simple processes, ie high-level behaviour resulting from low-level interaction of simpler building blocks. One example of emergent behaviour that has been studied over recent years is that of 'flocking'. In a 'flock of birds', the flock is a dynamic entity consisting of hundreds (or thousands) of individuals. The flock constantly changes shape and direction but maintains overall cohesion. Using cellular automata and treating each bird in the flock as an autonomous agent, with simple local rules controlling agent behaviour relative to closest neighbouring birds, a system can be constructed where the overall behaviour of the collective agents reflects the behaviour of the real flock.[1]
Examples of emergent algorithms and models include cellular automata[2], artificial neural networks and swarm intelligence systems (ant colony optimization, bees algorithm, etc.).