Flocking (behavior)
From Wikipedia, the free encyclopedia
Flocking - the collective motion of a large number of self-propolled entities - is a behaviour exhibited by many living beings such as birds, fish, bacteria, and insects[1]. As a common demonstration of emergence and emergent behavior, it was first simulated on a computer in 1986 by Craig Reynolds with his simulation program, Boids. This program simulates simple agents that are allowed to move according to a set of basic rules. The result is akin to a flock of birds, a school of fish, or a swarm of .
Basic flocking is controlled by three simple rules:
- Separation - avoid crowding neighbours (short range repulsion)
- Alignment - steer towards average heading of neighbours
- Cohesion - steer towards average position of neighbours (long range attraction)
With these three simple rules, the flock moves in an extremely realistic way, creating complex motion and interaction that would be extremely hard to create otherwise.
Flocking is a common technology in screensavers, and has found its use in animation. Flocking has been used in many films (Gabbai 2005) to generate crowds which move more realistically. Tim Burton's Batman Returns (1992) featured flocking penguins, and Disney's The Lion King (1994) included a wildebeest stampede.
From a practical perspective, flocking has been considered as a means to control the behavior of Unmanned Air Vehicles (UAVs) (Gabbai 2005).
Contents |
[edit] Measurement
Measurements of bird flocking have been made (Feder 2007) using high-speed cameras, and a computer analysis has been made to test the simple rules of flocking mentioned above. It is found that they generally hold true in the case of bird flocking, but the long range attraction rule (cohesion) applies to the nearest 5-10 neighbors of the flocking bird and is independent of the distance of these neighbors from the bird. In addition, there is an anisotropy with regard to this cohesive tendency, with more cohesion being exhibited towards neighbors to the sides of the bird, rather than in front or behind. This is no doubt due to the field of vision of the flying bird being directed to the sides rather than directly forward or backward.
[edit] Algorithmic complexity
In flocking simulations, there is no central control; each bird behaves autonomously. In other words, each bird has to decide for itself which flocks to consider as its environment. Usually environment is defined as a circle (2D) or orb (3D) with a certain radius (representing reach).
A basic implementation of a flocking algorithm has complexity O(n2) - each bird searches through all other birds to find those who falls into his environment.
Possible improvements:
- bin-lattice spatial subdivision. Entire area the flock can move in is divided into a large number of bins. Each bin stores which birds it contains. Each time a bird moves from one bin to another, lattice has to be updated.
- Example: 2D(3D) grid in a 2D(3D) flocking simulation.
- Complexity: O(nk) , k is number of surrounding bins to consider; just when bird's bin is found in O(1)
Lee Spector, Jon Klein, Chris Perry and Mark Feinstein studied the emergence of collective behavior in evolutionary computation systems.[2]
[edit] References
- ^ Alternating steady state in one-dimensional flocking. Journal of Physics A: Mathematical and General. Retrieved on June 13, 2008.
- ^ Spector, L.; Klein, J.; Perry, C.; and Feinstein, M. (2003). Emergence of Collective Behavior in Evolving Populations of Flying Agents. Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2003). Springer-Verlag. Retrieved on 2007-05-01.
- Gabbai, J. M. E. (2005), written at Manchester, Complexity and the Aerospace Industry: Understanding Emergence by Relating Structure to Performance using Multi-Agent Systems, University of Manchester Doctoral Thesis link
- Cucker, Felipe; Steve Smale (2007). "The Mathematics of Emergence". The Japanese Journal of Mathematics.
- Shen, Jackie (Jianhong) (2008). "Cucker–Smale Flocking under Hierarchical Leadership". SIAM J. Applied Math. 68 (3).
- Feder, Toni (October 2007). "Statistical physics is for the birds". Physics today 60 (10): 28-30.
[edit] External links
- Craig Reynolds' Boids page
- Iztok Lebar Bajec's fuzzy logic based flocking publications
- Flocking Simulator - A flocking behavior simulator in Java. Run online or free download. Includes multiple flocks, predators, obstacles and food.
- NetLogo, a free software for multi-agent modeling, simulation, and the like, including a flocking simulation.
- VisualBots - Freeware multi-agent simulator in Microsoft Excel - Visual Basic syntax
- 3D Java Boids demonstrating bird flocking (Paul Richmond)