Vienna II

From Carls wiki

Jump to: navigation, search

Limitations of the first attempt

Lack of introspection
Things are happening in the program that look awesomely cool, but there is no real way to retrieve the code snippets of the evolved individuals at a certain point in time. There is no way to know which individuals are related, or when lineages are born, compete, and eventually die out. Specifically, there is no way to know if evolution really is taking place, or if what happens on the screen merely is the signs of a clever adaptation to surroundings.
Unseparated concerns
The program will not run properly without outputting things to the screen. Refactoring the code to separate data model from screen output seems either difficult or impossible.
Small, crowded habitat
64kB is not that much for 30-something-byte individuals.
Arbritary restrictions
The maximum number of sparks is 2000. This had to be added in order to prevent excessive multisparking, a "problem" which perhaps could have been solved in a less restrictive way.
No disctinction between genotype and phenotype
Real evolution has arranged for things to be coded, i.e. a thing represents another thing. (For example, the base adenine represents one of four possible states, A, at a given position in DNA.) There is a real jump in "realisation" from DNA to protein: one molecule codes for information, the other is constructed by decoding the first as instructions, and building stepwise from these instructions. In Vienna, the genotypes are phenotypes... the only truly phenotypic property of an individual is its length. Conversely, every part of an individual is a potential instruction.
Virtual machine unsuited for survival machines
What a living organism needs most is not the ability to add or multiply all sorts of values. What it needs is to collect data and make decisions from these. The virtual machine in Vienna is heavily biased towards arithmetical operations, and includes a few if instructions almost as an afterthought. While important, arithmetics can surely be "emulated" by the lineage of a set of individuals that really must add — emulating sound decision-making, however, such as multilevel interrupts or decent exception-handling, might prove near impossible and could well be the main obstacle in the way of behavior, a nice thing to have if you're alive. Put differently, organisms inside a computer are not necessarily algorithms, and spend most of their time surviving; they do not need a lot of support for counting beads.
Spooky action at a distance
In Vienna, individuals can write to any address in the arena without incurring extra cost or prohibitions for distances far away from their starting instruction. There is thus no incentive to act locally, and the result cannot look anything like our universe.

Proposed design of Vienna II


I've just made a ton of negative assertions about [old ideas]. Now I'd like you to perform a cool mental trick and turn all those negatives assertions into positive assertions about what I'm going to say, because I'm not intending to give the rationale again, but just present the design as it stands.
— Larry Wall, Apocalypse 5