In my previous post, I started trying to model evolution, but I was stymied by “cancer”, in which the child cells took all of their rightful genetic material and also stole the parent’s. Repeat this a few times, and you have exponential growth, and the simulation grinds to a halt.
I analyzed the mutations that caused this cancer. (It may be useful to refer to my previous post.) This original sequence:
mutated into this:
which let all hell break loose.
The result is that the next
H_COPY command chopped off the tail which marked where the copy was to
end. Therefore, the child’s
IF_LABEL would never terminate the copy loop. The
H_COPY might run
forever, or another mutation could cause it to terminate. But due to other details (you can walk
through and figure it out, but with the missing tail,
H_SEARCH would fail, and therefore
RH = WH
= 0) the
H_DIVIDE command would give the entire 2x larger genome to the child.
How did I fix this?
With these changes, you have this:
The green is available energy (aka plant life). Evolved organisms first ran right because they are, by default, “oriented” that direction. With further evolution they can learn how to turn (note the colored “bubbles”). It is not yet clear that they are figuring out to move towards the food. Perhaps in the next update.