Symbibots

Symbibots Screenshot

↑ Symbibots game screen, click to enlarge.

"Is a Genetic Algorithm appropriate for use in making adaptive and quality real-time-game playing opponents, within a human time frame of play?"

The following dissertation outlines one possible answer to this question, including an example game-like problem and a Genetic Algorithm (GA) inspired solution.

The Genetic Algorithm described acts upon a population of game playing computer agents. Each agent contains a set of expressible instructions, composed of simple axiomatic behaviours representative of the games world model. The instruction lists are evolved through an iterative process of game playing in opposition to a human. The game played is called Symbibots, a simple two-dimensional shooting game. The human player uses the same genetic mechanism as the GA to co-evolve their own game-playing agent. Both the computer and the player are required to try to shoot each other with missiles, collect energy to stay active, and outlive one another to the next game round. Any "intelligent" and adaptive behaviour seen in the computer agent population is a result of evolution and the emergent complexity of their instruction set.

Symbiosis Graph

↑ Graph showing how symbiogenesis rate alters fitness as epochs progress, click to enlarge.

The idea for this dissertation came from background reading over the period of my degree and work placement (2003-2006) in topics including Retroviruses, Endosymbiotic Theory, Symbiogenesis, Genetics, Quorum Sensing, Artificial Life, Genetic Algorithms and Cellular Automata. Originally, I had the ambitious idea of bringing all of these concepts together: modelling cell interaction including models of molecules crossing virtual membranes, leading to higher-level effects like quorum sensing. Obviously, this early idea was way out of the scope of my knowledge and ability; let alone what I could accomplish in one year for a Bachelors degree. However, I still wanted to do a project that incorporated all of the biology, artificial life and artificial intelligence topics I was passionate about. I thought carefully on how I could relate these ideas to a Computer Science and Artificial Intelligence specific project. The concepts I found of interest in biology were all genetic and evolutionary operations. It seemed appropriate to try to wed these concepts from Biology with a Genetic Algorithm of some kind, since this is the analogous paradigm within the field of Artificial Intelligence.

GA Package UML Design

↑ UML design for the Symbibots GA package, click to enlarge.

The result of this idea was Symbibots, a single player two-dimensional shooting game with the look and feel of a dirty puddle of Zooplankton. Symbibots attempts to be an expandable, general platform for investigating the use of Genetic Algorithms with agent based computer simulations. Currently Symbibots has not quite achieved this, but the program design and user interface allows for future development towards this goal.

Original Disease Model Idea (Discarded)

To create an artificial life simulation to investigate the propagation of retro-viral genomes within a population, and conditions required for the rise of sex based reproduction apposed to vegetative or a-sexual reproduction. Taking ideas from genetic algorithms, cellular automata and machine learning; I hope to have a world populated by various life-like agents that simulate the reproduction of life on Earth, along with the idea of retro viral disease (such as HIV). To accomplish this I plan to create a virtual machine capable of 'executing' or 'expressing' the genome of each agent. With a 'header' used to represent overall agent functionality similar to the differentiation between sets of chromosomes and the actual genes in real organisms on Earth. This is to reduce the complexity of the model so that an agent can be said to be male/female or a child of a previous ancestor etc. Then the actual genetic string is used to express behaviour at any given event or tick of the simulation. So movement, reproduction, feeding etc. will all be governed by functions acting on the inherited genetic like strings. I will also have the concept of a world environment that the agents are in which will change through a set simulation governed by starting parameters similar to the rules used when creating models using cellular automata. This will hopefully add another dimension to my investigation allowing controlled stresses to be placed on the population to investigate the parameters for the rise of sex. Another thing I would like to see is the possibility of stable 'retro-viral' genomes being expressed by a family of agents, this virus might add functionality facilitating reproduction or other beneficial symbiotic input. A notable portion of the human genome is made up of defunct retro viral genes, it is not clear as to the relationship life has on Earth with these simple organisms and whether there has ever been any beneficial relationships in the past. HIV is an obvious example of retroviruses effecting human life, however it is not always the case that retroviruses are pathogenic although none have been found in humans to date, this might only be because they are not of any noticeable importance. It might also be possible for dormant retroviruses which are currently part of our stable genome to become activated later as the result of a mutation, causing the rise of an ancient virus. Although none of this can be investigated in real life, a computer simulation provides the time scale required. My simulation will be biased towards the specifics of propagation of retroviruses; I hope none the less that it will be an interesting look at the possible complexities of this biological relationship.


The information provided on this and other pages by me, Matt Oates (mattoates@gmail.com), is under my own personal responsibility and not that of Aberystwyth University or the University of Bristol. Similarly, any opinions expressed are my own and are in no way to be taken as those of either institute.