Fundamental Genetic Algorithm

Date: Thu Sep 14 2006 - 14:39:47 MDT

I am trying to write a 'genetic' algorithm that approximates how life formed on earth. I put genetic in quotes because it is not like the genetic algorithms I have dealt with in the past. They all used an existing algorithm and random variation to improve on it. I want to start at a much lower level. If this type of project exists or has been discussed before please point me to it. I could not find anything searching because there was too much noise from other traditional genetic algorithms.

As I am sure you all know; the first 'life' was amino acids and proteins that were randomly created and had random properties. Over long periods time the system became more organized and eventually self organizing. I would like to start my system the same way.

Here is currently how I am thinking of implementing it:

Fill a buffer with random bytes. Set EIP (the instruction pointer) to the beginning of the buffer. Try to execute the first bytes as an instruction. If it is a valid instruction then increment EIP by one byte. If it causes an exception XOR that byte with a random value and then increment EIP by one. Continue until you reach the end of the buffer. If an instruction happens to change EIP then so be it just inc and continue like normal. If EIP is ever out of the range of the buffer just mod it by the buffer size to get it back in range. If possible get a 4GB buffer so it is not a problem, but that probably will not be possible for a few years (at least on my budget).

The biggest problem I see with it is forming an infinite loop. To solve this problem at random intervals XOR EIP with a random value.

I am trying to make this as simple as possible and not put any constraints on it because of my 'physical world' thinking. I have seen programs similar to this, but they all started out will a simple organism and had concepts of food and such. Those are silly constraints to put on a computer program. They are trying to introduce false scarcity as a selection method. Hopefully my approach avoids this pit fall. The scarcity will come from CPU cycles and address space; the real commodities in a computer.

It will probably run though the instruction buffer millions of times before any sort of order start appearing, but that is exactly what I want. I am sure billons of amino acids where formed before they made to first protein and trillions of proteins formed before they could self replicate.

There are plenty of technical details to be worked out, but I am not that far yet. Please let me know if I have missed a prior discussion of this. Also please critique my idea; I am sure it has lots of holes in it.

I think it could be a brute force way to AI. I have no illusions that AI will magically pop up over night or even in years.

This archive was generated by hypermail 2.1.5 : Wed Jul 17 2013 - 04:00:57 MDT