The aim of this project is to explore the self-organized language and behavior that can develop between and among simple robots in a simulated environment. The project will utilize two general tools from machine learning: the genetic algorithm, and the artificial neural network. You will be provided with the infrastructure for evolving your own robot behaviors. You will then design your own neural network and design a simulated world for which your agents will evolve. Finally, you will analyze the language which results.

The goal of this project is to explore self-organization and evolutionary systems on autonomous robotic agents.
The learning objectives are:
  • Learning the basics of the genetic algorithm
  • Learning the basics of the artificial neural network
  • Explore the factors in evolving neural networks on mobile robots
  • Gain experience in analyzing self-organized systems

The students should have a basic knowledge of programming, data structures, and statistics. This project will be implemented in Python, but they do not need previous Python experience. Before beginning the project, students may wish to read the recommended readings.

This project will use Pyro, the Python Robotics environment available at http://PyroRobotics.org/ for Linux, Macintosh, and Windows. A "Live CD" can be found at the website for running experiments without installing any software.

The project is largely based on the paper:

Marocco, D., Nolfi, S. (2006), Self-Organization of Communication in Evolving Robots, In Rocha L. M. et al. (eds), Proceeding of the Tenth International Conference on Artificial Life, ALifeX. Boomington: MIT Press, pp. 199-205. Preprint retrieved on December 17, 2006 at http://laral.istc.cnr.it/marocco/Marocco_alife.pdf

This paper describes four robots that are able to evolve signals to help them solve a particular task. Although the robots evolve with simulated audio signals, these signals can be turned into real audio signals and listened to while observing their behavior. In addition, students can produce simulated audio signals, and observe the robots casual reactions.

To have a proper knowledge in the genetic algorithm and neural networks, students may wish to read some background material. For example, chapters from:

Stuart Russelland Peter Norvig. Artificial Intelligence: A Modern Approach, 2nd edition. Prentice Hall, Upper Saddle River, NJ, USA, 2003.

In addition, students may wish to become familiar with the Python Robotics system. There are on-line materials at:


Students may wish to read the materials on:

  1. Introduction to Pyro
  2. Introduction to Python
  3. Neural Networks
  4. Evolutionary Algorithms
The detailed project description is available in the PDF file Evolution of Language and Intelligence.pdf. You will need the free Adobe Acrobat Reader to view this file.

Sample syllabi available at:

Additional readings are included in the Background section above.

500 Generation Weights: Media:Weights500.pop