Inhaltsverzeichnis

Distributed Evolution of Swarms

This page is a short summary of my diploma thesis (equivalent to master's thesis). Unfortunately, there is only a german version available.

The diploma thesis downloadable on this page is not exactly the one submitted during the examination (for example, I left away personal acknowledgements and statement of authorship, and tweaked the typography).

What's all about?

Put in a short way: I not only wanted to simulate swarm behavior – I wanted to write a large evolution so that enables swarmbehavior to emerge automatically. One can consider it as a nice, colorful, scientifically affected tech demo.

So, throughout the thesis, a generic software infrastructure was developed for performing experiments in swarm evolution. It enables to not just evolve swarm behavior, but also to distribute the effort among computer clusters for large evolution experiments. Because I bullheadedly wanted to do everything myself, I implemented my own small network protocoll to accomplish this.

Different to related work, in my experimental setup, the evolution of behaviors was much less narrowed down by common constraints. For instance, parameters of sensors and acting elements were evolved, extensive simulations were performed following realistig physical laws, the swarmer controllers were growing, recurrent, evolvable neural nets, and much more.

The software written for the diploma thesis roughly includes three parts (all of which I wrote in JAVA), which I introduce in a short way.

  1. A generalized evolution software including efficient distribution of calculating efforts on lots of computers,
  2. a swarm simulation engine that builts upon a physics framework, and
  3. a topology evolvable neural network.

Evolution Framework

The evolution framework was written in a completely generalized way – one could use it for evolving solutions with respect to any evolvable problem. Evolving whole bio inspired swarms is just one possible usage scenario.

Cluster Evolution

For larger scale evolutions like the ones in this thesis I wrote a distribution protocol based on TCP with separate GUI (see figure on the right). There was one evolution server, and many clients.

This way of distribution was not so bad: 85%-90% of the given calculation time was used, even under bad circumstances: The evolution server only had a standard cable internet connection (still I had to choose it as a server because I could guarantee its reliability).

Swarm Simulator

Like the evolution framework, the swarm simulator was implemented in an abstract way, so in general, lots of experiments could be built on top of it.

Topology Evolvable Neural Net

What remains, is the topology evolvable neural network, the brain of the swarmers. This is the main part of the parameters adjusted by evolution. Net input are all swarmer sensorics, outputs went to the actuators (movement, communication, and so on). Everything in between was evolved.

However, with respect to this, see also the section „lessons learned“ below. ;-)

Experiments

After the implementation period, a family of nature-inspired evolution experiments with different environments and swarmers was performed (10 experiments with 10 evolutions each). Evolved swarms were first tested by an automated testsuite to decide whether detailed analysis and visual observation is applicable. How behavior is elicited using evolutions, is shown in the following Youtube-Video.

Throughout the original work, 10 experiments including 100 evolutions have been performed, and a vast variety of behaviours was elicited. Thus, it is presented, how volatile behavior patterns can be, that result from less constrained evolutions. Elicited patterns were discussed and extensively and presented in text, image and video material.

Given the presented artificial ecology and free evolutions, it seemed remarkably easy to evolve mechanisms that can be seen as cooperation among the swarm. Capabilities were measured to be of significant importances, that make no sense in individual behaviour (such as several communicational capabilities or social interaction forces).

The variety of evolved behaviours includes several behavioural patterns observed in nature, such as

Behaviours were evolved which can be observed everywhere in nature – however, in a synthetical and, therefore, completely transparent analyzable way. Even though the experimental swarms were assembled using fictional individuals, the results exhibit the vast, inspiring potential of such free experiments in the field of synthetical biology. This potential is also shown throughout the following talk trailer on YouTube.

Some Figures

The evaluations were distributed via TCP/IP and therefore carried out on a variable number of heterogeneous multi-CPU-computers in parallel. During peak periods, about 100 CPUs were used in parallel. We performed 10^{10} simulation steps per experiment (remember: one experiment contained 10 evolution runs), continuously simulating approx. 10 to 50 swarmers and possibly thousands of objects, within 0.5 to 4 days. This represents an effective simulation speed of 50000 to 400000 simulation steps a second with realistic 2d rigid body physics taken into account.

Nearly 30.000 lines of code - Lessons learned