3 ms·
You make an interesting case, which I think is backed up by two things, in the special case of the x86 instruction set: - Instruction opcodes and arguments don
by mfukar 16y ago
You make an interesting case, which I think is backed up by two things, in the special case of the x86 instruction set:
- Instruction opcodes and arguments don't occupy a fixed space or position. This leads to a significant increase in lethality of mutations. Some other factors that contribute to this is the large instruction set, and the fact that opcodes and arguments are directly connected (context-specific). Straight-up GA does provably not perform well, unless there's a meta-language involved, as the article shows. I'd dare say this is very close to Koza's approach, and it also seems to be close to Michael Korns' approach, which is more recent.
- "Instruction set" put aside, mutations in a x86 system (or in any other computing environment, for that matter) happens on a bit granularity. The sort of natural redundancy that would allow GA to operate on a sufficient population for robust mutations to appear is not there, without a metalanguage. (even ECC in memory tends to not be favoured, so resistance against bit flips, ie. point mutations)
Also, it seems to me that without a "natural" redundancy mechanism within an instruction set, it is impossible for other types of mutations, namely deletion/insertion/duplication, to produce survivable offspring. As a (probably not very good) metaphor one should consider what would happen to aminoacids if we were to consider codons as their building blocks (disregarding nucleotides).