5 ms·
Taking the redpill: Artificial Evolution in native x86 systems
- Rhapso 16y agoThis is a great example of why having earth in the Goldilocks zone is great. Mutation Rate approximates solar radiation. It is all about having the right amount of radiation. Have too much and everybody gets cancer and dies, have too little and the first plague to come along kills everybody because they were all alike. Just right and you have the ideal mix, enough diversity to survive challenges, but most people do not die of cancer before breeding.
- mdda 16y agoActually, it's not surprising that the mutation rate is 'just right'. If mutations caused by (say) solar activity were much higher, then DNA itself would incorporate more redundancy to protect itself (it looks like there's around a 3-to-1 mapping of letters to proteins already). Every part of the replication process is simultaneously optimizing... Genetic Programming (Koza, etc) is a lot more interesting (IMHO) than hand-coded Genetic Algorithm mappings for this reason.
- SeanLuke 16y ago> Genetic Programming (Koza, etc) is a lot more interesting (IMHO) than hand-coded Genetic Algorithm mappings for this reason. What reason?
- techbio 16y agoI interpret this as acting on and optimizing operations rather than simply data. Natural evolution acts not just on the fitness of exhibited proteins, but also on the fitness of the DNA which, among other things, encodes them.
- mdda 16y agoOne of the problems the original post was battling was the 'fact' that the x86 instruction set was too brittle to do actual mutations on, and so were searching for a way of coding programs with instructions that didn't self-destruct at the first sign of bit-twiddling. For straight-forward Genetic Algorithms, there's also an issue of how to code the problem space in a way that the evolution operations (mutation, and more importantly cross-over) have a chance of getting hold of the problem. But searching for a representation that is amenable to mutation is also a search that could be done 'genetically' - by evolving the representation language. For that reason, I'm no fan of 'straight coding' of the representation. Neither, it seems is evolution... DNA codes for proteins (etc) that builds structures, and frameworks, and other 'stuff' (eg: there are more neurons than DNA letters : there must be some meta-coding going on). Genetic Programming (Koza, etc) seems like a step in the right direction (since manipulating trees can lead to structures with as much complexity as 'desired' by the evolution bit). But it's still not quite right IMHO, since it's all operating at the 'language' level (mutation of symbols that themselves perform the computation). For an example from nature : Our brains don't work through the interaction of DNA, they work through the interaction of stuff whose precursor (during the person-building stage) was DNA. If standard GA manipulates the parameters of a problem, then GP is manipulating a tree that codes for the parameters of a problem. The next step up would be manipulating a language that builds the tree. How many meta steps should we make? Isn't that a search problem too?
- SeanLuke 16y agoPeople have these odd ideas about what a "GA" is. The Genetic Algorithm is an algorithm, not a particular representation of candidate solutions (vectors, lists, trees, whatever). Likewise Koza-style Genetic Programming isn't an algorithm at all: but largely a representation. That seems pedantic, since of course GAs have certain classic representations and GP has a certain traditional algorithm. But it's important in this case, because (1) non-tree representations can be used handily to evolve code: for example, see machine-code GP or Grammatical Evolution, both of which use GA-style lists. And (2) because to my knowledge there's little in GP which would support the claim that "every part of the replication process is simultaneously optimizing". Or maybe he meant that Koza-style tree GP was providing "redundancy" (in the form of introns), which is odd since this is hardly viewed as a positive: but at any rate, introns exist in all sorts of GA representations, such as machine-code GP lists. At any rate, there seems to be a lot of confusion there.