Behavioral diversity is known to benefit problem solving
in biological social systems such as insect colonies and human
societies, as well as in artificial distributed systems including
large-scale software and swarm-robotics systems. We investigate
methods of evolving robot swarms in which individuals have
heterogeneous behaviours. Two approaches are investigated to
create swarm of size n. The first encodes a repertoire of n
behaviours on a single individual, and hence evolves the swarm
directly. The second approach uses two phases. First, a large
repertoire of diverse behaviours is evolved and then another
evolutionary algorithm is used to search for an optimal allocation
of behaviours to the swarm. Results indicate that the two phase
approach of generate then allocate produces significantly more
effective collective behaviors (in terms of task accomplishment)
than the direct evolution of behaviorally heterogeneous swarms