Evolutionary Programming

Peter Schmitz

project report

My project is motivated by similarities between biology, social sciences and computer science, which made me ask the following questions: Are there analogies between evolution and other examples of self-organization? Can living digital organisms exist? How optimized are life forms? Are there technological applications of evolution?

Initially, I was planning to simulate living digital organisms evolving without prescribed selection rules. However, after exploring this topic for some time, I had to conclude that the simulation of natural life is too challenging.

I studied genetic algorithms for directed evolution with prescribed selection rules. These are useful for optimization in many applications, e.g. route planning, generating formulas and optimizing surfaces.

My preliminary goal was an evolutionary algorithm that generates programs satisfying a prescribed condition. I used the agent-based programming language "Netlogo". My first experiments were simple tests of the components of my algorithm. Next, I created a system that guarantees that all mutations follow the syntax of the programming language, so that code evolution became possible.

By conducting and analysing various experiments, I learned about the structure of evolutionary algorithms. This allowed me to create an adaptive optimization algorithm for "Netlogo"-simulations. Instead of testing all possible combinations of parameters, it uses evolutionary methods to find the optimal configuration quickly even amongst billions of possibilities.

Miniforschung - St. Michael-Gymnasium Bad Münstereifel - Disclaimer, privacy policy, imprint