![]() |
![]() |
|
Genesis
|
![]() |
Genesis
This page is the home of my most recent project - Genesis. You can read about it below... You can run the applet in two versions: 1. A stand alone version that creates a random set of life forms with random genomes and allows them to evolve. Run stand alone version 2. The full version which connects to a central server I have written for my computer which stores the results of previous runs of the applet (the genomes). Run full version Genesis@home? When you run the full version the applet makes a connection to my server and loads the most appropriate set of genomes. When you stop the applet it sends the results of the run you have carried out back to the server. Thus you contribute to the overall evolution process. This seeks to overcome the problem of evolution being very slow by allowing many people to contribute in a fashion similar to seti@home. Since several sets of genomes are stored on the server at the same time, this system also means that some degree of separation is maintained between sets of life forms that are evolving. This may result in the development of different species in the different sets. Separation is important for real life evolution. Random Quotes:John von Neumann, Theory of Self-Reproducing Automata.
Discover Magazine, June 1998, pp.73-79: about using evolving hardware to produce AI:
Then, says Thompson, there's "the problem of us dying during the experiment"." "I'm really exploring what evolution can do that human designers cannot." Jason Noble, while working on the by-laws of the International Society of Artificial Life:
Philip K. Dick, The Android and the Human:
Primo Levi, who refers to Origin of Species, 6th edition, OUP 1951, pp208-214:
Genesis is an JAVA applet designed to provide an environment for artificial life forms to exist and evolve. Each life form consists of a number of cells. These cells are much simpler than biological cells but form the basic units that carry all the processes required for the life form. These include eating, moving, handling replication, sensing the environment around them and transmitting data to their neighbors. The procedures for each of these processes (and more) is determined by a Turing Post program. For none technical people this is a program consisting of numbered steps, each of which can be one of seven commands. Turing showed that anything that any program can do, so can a Turing post program. The commands executed by each Turing post program are determined by a
sequence of numbers that forms a basic 'gene' in each life form (see FAQs).
Each cell of each life form uses a set of 18 such genes. Each life form
may consist of many such cells, some of which may share the same genes,
some of which may use different ones. When a life form eats a certain amount of food it multiplies and the offspring receives a copy of its genome with a small number of mutations. If a life form runs out of food in its internal store then it dies, along with its genome. Thus the most successful life forms are selected and the evolution continues. Hopefully this results in a very versatile artificial life program, not
tied down to any particular behavior or development algorithm: after all,
it is the algorithms that evolve, not just parameters determining
behavior. There are a number of flaws with using the Turing Post program in this way. For one it is very slow. More serious than this is the problem that changing the set of instructions used by the program, even slightly, can result in a completely different output. In genetics terms: a small change in genotype can lead to a much larger change in the phenotype. Since successful evolution relies on gradual change, this could be a problem. To solve this I plan to replace or at least partially replace it with a neural network. For more detail go to techie stuff and FAQs. Top
|