This project has been developped over six months during my Erasmus+ exchange year at Imperial College London. The prompt was Computational evolution and the interpretetion was left to the students. This repository contains two branches:
- old: The state this project was in when finished in 2018.
- main: The rewriting of this project done with my python skills in 2022. At the moment this is a work in progress.
Emergence is a very interesting concept that broadly describes how complexity can come out from simplicity. It is sometimes summarised by the maxim "more is different" by Philip Anderson. One of the most notable example of emergence in science is credited to Darwin’s theory of evolution. His theory manages to explain the large majority of the biodiversity we observe with just a handful of simple rules and even though some refinements have been added, the conceptual backbone of his theory based on the emergence of species through selection remained. Today using computing power it is much easier to study emergence than it was in the past hence the nature of this project: studying an artificial system in order to find emergent properties that have not been coded originally. The approach taken is very much inspired by Darwin’s principles.
The general aim of this project is to find emergent behaviour in a system composed of an environment and of creatures living in it. The first objective is to create a virtual environment in which there would be implemented so-called agents: virtual entities that will be able to interact with the environment via a set of rules. Those agents will be the focus of the study and the evolving entity of the project. Therefore, they should be given the possibility to evolve some internal variables that we will commonly call "genes". Similarly to how species are naturally selected through successive generations, we expect the agents to adapt to the environment and therefore improve their “fitness”. Fitness is a vague concept describing the ability of an agent to utilise its environment and maximise survivability. It will, therefore, be necessary to find a non-ambiguous quantitative definition of fitness to extract clear evidence that evolution goes “in the good direction”. Finally, we are interested to see if we can observe an emergent behaviour among the agents. In particular, one of the aims of this project is to define the concept of species in our system and see if we can observe their emergence.
The goals can be summarised as follow:
- Create a stable system with simple rules that can be studied using computational simulations.
- Define "fitness" in our framework that agents should maximise.
- Define the concept of species and try to show its emergence in our system.