Thomas Ray's Tierra is a computer program which simulates life.

In the linked paper, he argues how this simulation may have real-world applications, showing how his digital organisms (computer programs) evolve in an interesting way: they develop novel ways of replicating themselves and become faster at it (he argues that the evolved organisms employ an algorithm which is 5 times faster than the original one he wrote).

Tierra's approach is different from standard GAs:

  • While in GAs usually there is a set of genomes manipulated, copied and mutated by the program, in Tierra everything is done by the programs themselves: they self-replicate.
  • There is no explicit fitness function: instead, digital organisms compete for energy resources (CPU time) and space resources (memory).
  • Organisms which take a long time to replicate reproduce less frequently, and organisms who create many errors are penalized (they die out faster).
  • Tierran machine language is extremely small: operands included, it only has 32 instructions. Oftentimes, so called RISC instruction sets have a limited set of opcodes, but if you consider the operands, you get billions of possible instructions.
  • Consequentially, Tierran code is less brittle, and you can mutate it without breaking the code. In contrast, usually, if you mutate randomly some machine code, you get a broken program.

I was wondering if we could use this approach to optimize machine code. For instance, let's assume we have some assembly-like program which computes a certain function $f$. We could link reproduction time with efficiently computing $f$, and life-span with correctly computing it. This could motivate programs to find novel and faster ways to compute $f$.

Has anything similar ever been tried? Could it work? Where should I look into?

  • 2
    $\begingroup$ "There is no explicit fitness function: instead, digital organisms compete for energy resources (CPU time) and space resources (memory).", the competition for resources is the fitness function here, so, from your description, this looks like a genetic algorithm, even though, you say, the author does not want to admit it or wants to make it seem as he created something novel. $\endgroup$ – nbro Jun 27 at 11:48
  • $\begingroup$ @nbro I believe Tierran is the official name of the machine language used. Wouldn't it be clearer? $\endgroup$ – olinarr Jun 27 at 11:49
  • 1
    $\begingroup$ I am sorry. I only very quickly looked at the paper and I searched for "Tierra" and the expression "Tierra Simulator" came out. I rolled back my edit. $\endgroup$ – nbro Jun 27 at 11:50
  • 1
    $\begingroup$ @nbro no worries. In regards to what you said, technically yes, there is a fitness function. This is just a variation on the "standard" GA approach I think. Still I think this paper brings some interesting ideas to the table (like the extremely small Instruction Set and all the life-death cycle thing). Too bad I can't find anything online about this $\endgroup$ – olinarr Jun 27 at 11:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.