The emergence of complex dynamical behaviors from simple local interaction rules
between pairs of agents in a group is a widespread phenomenon over a range of
application domains, and results in coherent behavior called a swarm. Many
striking examples can be found in biological
systems, from the microscopic (ex., aggregates of bacterial cells or the
collective motion of skin cells in wound healing)
[1]}, [2]}, [3]} to large-scale aggregates of fish,
birds, and even humans [4]}, [5]}, [6]}. These systems
are particularly interesting to the robotics community because they allow
simple individual agents to achieve complex tasks in ways that are scalable,
extensible, and robust to failures of individual agents. In addition, these
aggregate behaviors are able to form and persist in spite of complicating
factors such as communication delay and restrictions on the number of
neighbors each agent is able to interact with, heterogeneity in agent
dynamics, and environmental noise. These factors define how swarm
behaviors are effected by changes due to internal and external actors, allow
the swarm to change its patterns and
function [7]}, [8]}, [9]}, [10]},
as well as break apart and reform
 [11]}.
