In 1985 Dr Michael Palmiter, a high school teacher, first built a very innovative agent-based model called “Simulated Evolution” which he used for teaching the dynamics of evolution. In his model, students can see the visual effects of evolution as it proceeds right in front of their eyes. Using his schema, small linear changes in the agent’s genotype have an exponential effect on the agent’s phenotype. Natural selection happens quickly and effectively. I have used his approach to managing the evolution of competing agents in a variety of models used to study the fundamental dynamics of sustainable economic systems. In this presentation, I briefly review my history with Dr Palmiter’s model, I examine the mathematics behind his innovative genetic code, I examine the link from genotype to phenotype for genes that encode movement and metabolism, and I discuss the range of circumstances in which this coding technique has been applied.
Thanks Garvin, I was not familiar with the Palmiter genes approach. Why is it important for evolution to go rapidly? How does this relate to observed evolutionary processes? I poke Joffa @jma who works on models of innovation and may also be interested in this topic.
You ask “Why is it important for evolution to go rapidly?” I think there are two reasons.
The first reason is pedagogical. When you are trying to explain how evolution words to students, it is very useful to have visual evidence of evolution that happens on a computer screen in 3-5 minutes. It is useful to be able to show that small changes in the operational characteristics of the environment (like wrapped edges) alter the ultimate dominant phenotype. The genes that control the search heuristics of Palmiter’s agents are perfect for this.
The second reason is for my personal research activities. Genes having this two-part design are exquisitely sensitive. A small linear change in either the base or the exponent leads to a large change in the phenotypic effects. If you have a model in which there are a large number of genes with a low mutation rate, the minute positive or negative advantage of a mutation can be lost in the noise of background random variations. This technique makes the system more sensitive to changes in genes that may have delayed or secondary influence on survivability. For example, if I implement Palmiter’s metabolic parameters (which were implicit system parameters in his program) as genes encoded within in each agent, the “maximum energy per agent” (EPA) gene has two kinds of response: If implemented as a single number, with a linear phenotypic response to mutation, it seems to evolve along a Gaussian random walk, like Brownian motion. But, if implemented as a two-part exponential Palmiter-style gene, then it has a clearly biased trend to get ever-so-slowly larger.
You also ask “How does this relate to observed evolutionary processes?” I cannot speak to that authoritatively from the perspective of biological evolutionary science. But, as a former high-school science teacher, I can say that I can use it to demonstrate things like evolutionary convergence, divergence, and radiation. I can demonstrate evolution in a population with many varied alleles and no mutation, in which minor variations have enhanced effect. I can demonstrate parasitism, predation and speciation. But, my real interest, since my retirement in 2008, has been to understand better how economies work. Following the lead of Ecological Economics, an economy is a complex adaptive system wholly contained within another complex adaptive system (society, or the anthroposphere), wholly contained within another complex adaptive system – the biosphere. Those stochastic processes that drive the emergence of complexity in the large system (processes like entropy production and natural selection) must, logically, also be among those processes that drive the emergence of complexity in the wholly contained systems. So, I study evolution and entropy production to learn why our modern economies are not sustainable, and, hopefully, to get some ideas about how to fix that.