AI: Conway Creatures!

Recently I’ve been reading up on Cellular Evolutionary Algorithms and on the use of Genetic Algorithms (GAs) to evolve Cellular Automata (CA). I want to try out all sorts of different things so I will be doing a series of posts where I explore different interpretations of a concept – Conway Creatures.

Get Involved!
I have a few programmers, logicians and AI enthusiasts that follow my blog so I wanted to see if I could make something of the concept. I’d like to see all your interpretations of what a Conway creature is. Given a rough description, which is essentially: creatures (2D,3D, etc) of which the properties are evolved in some way using a mix of CA and GAs. If I get any i’ll do posts dedicated to the entries. I would also like to see varied definitions of the concept such as the use of other works by John Conway (e.g., the growth rate of the Look and Say sequence – Conway’s Constant, the Surreal Numbers, Conway notation for polyhedra, etc), other CA rules and other Evolutionary methods.

The First Detour – Longevity in Game of Life:
I began to write the program and found myself wondering “What are the characteristics of longevity in CAs?” and I’m still not sure. I’ve been trying different takes on mutation and crossover where I take chunks of the board and flip them or turn them all on/off. It doesn’t seem to make much difference, I was hoping it would conserve locality. I also tried out Boltzmann selection (Simulated Annealing) but tournament selection (dueling) worked much better. Any ideas?

This is my program so far, I am taking a little detour to look into longevity, but in Issue 1 there will be a creature where the 3D terrain is. Probably not very complicated, I was thinking of making the creature some sort of shape, like an octahedron.

Numeral System Automata

Cellular Automata
Cellular automata Is made up of a grid of cells which sit in a finite number of states (such as on/off or blue/green/red). Cellular automaton (singular) adhear to the rules of the system and evolve over periodic time intervals. One successful application of CA is Conway’s Game of Life, the universe is an infinite 2D grid and the rules are as follows:

A single Gosper's Glider Gun creating "gliders"

  1. Any live cell with fewer than two live neighbours dies, as if by needs caused by underpopulation.
  2. Any live cell with more than three live neighbours dies, as if by overcrowding.
  3. Any live cell with two or three live neighbours lives, unchanged, to the next generation.
  4. Any dead cell with exactly three live neighbours cells will come to life.

Positional Number Systems
We use these all the time, notably the decimal system in which when a symbol exceeds 9 it “carries” one to the left and negates ten. 9+1=A, then A goes to 10.

a_n \dots a_2a_1a_0 = (a_n {\times} b^n) + \dots + (a_2 {\times} b^2) + (a_1 {\times} b^1) + (a_0 {\times} b^0)
Example: 1250 = (1 \times 10^3) + (2 \times 10^2) + (5 \times 10^1) + (0 \times 10^0)

The Idea
To take the properties of a number system and create rules to govern individual cells. For our numeral universe we are going to need something different to what Conway used, ours is going to have an intrinsic property, gravity – and thus a floor to gravitate to. The center of our universe will be the radix point (decimal point), you could say the numeral universe is radixocentric. The real-life universe is made up of multiple dimensions, the numeral one is made up of infinite column dimensions.

Although initially I will only being dealing with addition and thus carry, I have put on paper negation in phinary which was quite fun. I talk about the arithmetic of phinary in my research (section 4). The Numeral Universe rules and an example are below:

  1. Positional System – Each dimensional element (cell) is the value of the previous dimension’s capacity.
  2. Gravity – Any cell above an empty cell moves to it.
  3. Carry – When a dimension is full, it moves to the next higher one.

Example in base 3 (ternary). The green and red blocks are the two numbers being added to the universe, the grey block is the carry.

But what does this all mean?
Well, I’m not really sure – it’s nice to show number systems in a different way, it could be useful for teaching. But as for me, I’m using the rules to govern an alternative tetris game, I’ll upload it when I’m finnished.

Also if anyone is wondering how I made those fractal looking blocks, I spammed the hell out of the filters on Pixlr the free online image editor.

Programming Idea

I seem to get a lot of traffic via this post, mainly people looking for the stuff I talk about which I don’t have (sorry), i’ve taken all tags off to not be a red herring.

Just quickly posting an idea I had..

I’d quite like to write a library specifically designed for making what i’ll call ‘pseudo-systems’. Like in The Matrix, Minority Report, Star Trek, etc where they don’t use bogstandard windows! Or in games that revolve around technology..

It would range from making a simple screen to spam-hack for films/shows like Numbers or CSI, to constructing really complex virtual systems that aren’t binary based or really visual ones. This might need a pen-to-paper session.. a lot of ideas floating around upstairs!