What is Codesoup?
In slashdot terms this is codesoup (phase one):
1) Craft a self-replicating program that looks at its offsprings code and tweaks it a bit.
2) Bung this into a virtual machine.
3) leave for a while.
3) Give energy to those that do well at a task. So that they can smite other less worthy code and take its place
The serious description
The codesoup project is a project inspired by artficial life systems such as Tierra.
Its main difference Tierra and similar systems is that the project is trying to discover
how evolution may proceed by using internal variational operators and how that sort of system might be used
in producing useful computer systems
So rather than having a external mutation rate as there is in Tierra each program as well as copying itself also alters its childs genetic material. This allows the methods of variation to change or stop over time, depending upon an external fitness function.
The final system
One of the goals of project is to create an IDE for the codesoup and
programs to analyse the replicating soup. The GUI for the IDE should
be able to display a graphical representation of the programs in the
soup. Also there is a need to make easy ways for the
codesoup to link with other bits of code to access other data or
interact with the user.
The replicating programs
This is what I think the system will be capable of with enough resources
and the correct starting programs.
For those of you familiar with Tierra I shall give a brief comparison of
the virtual machines.
1) The ability to learn how to solve arbitrary problems that it doesn't
have definition for and cannot expect them to be of a certain class of
2) The system should also be fairly fault tolerant as if one
program has an error or fails to solve the problem then other similar
competing problems should be there to pick up the current task.
3)The system should be modular in that different programs should
cooperate on solving problems. This would allow specialised programs to
occur an allow search there section of program space more efficiently
By default no external mutation
No reaper that kills other viable programs, programs can kill other
programs if they have more energy than the other
A decentralised approach to defining what a program is, all meta
information needed to run the system is stored in the system itself,
this is to allow the program to hopefully easily be translated into
hardware at some point
Wed Jul 2 16:57:24 BST 2003