This is an early draft of a paper I’m working on. It’s late, unfortunately, but I want to post what I’ve got so far for my classmates to check out before our final presentations, so I’m posting it here.
The goal of this project is to design an ALife system that has a good chance of supporting open-ended evolution and to do so as simply as possible. This will hopefully lead to better understanding of what open-ended evolution is and how it happens. This paper presents a detailed specification of a system which was designed in order to support tighly coupled multi-scale evolutionary activity and encourage its emergence.
Background
Previous work, presented in my seminar paper Increasing Complexity in Artificial Life Systems, explored several definitions of complexity and ALife research that made some claims about complexity. It also made four guesses about ways to create ALife systems that would increase in complexity over time:
- Use intrinsic fitness and replication functions
- Create an artificial physics with forces of different strengths
- Choose the scale of the world in the replication carefully. Replication should happen on a super-atomic scale (>= 1 order of magnitude larger than atoms) and the world should be at least 3 (?) orders of magnitude larger than the scale of replication.
- Creatures should be built of component systems
The current work, then, tries to put some of these into practice. As it turns out, it’s very difficult to define complexity and to work with it experimentally, so I’m focusing on a less abstract goal: an create an ALife system that supports tightly coupled evolutionary activity at multiple scales, where large scale structures are built out of the smaller scale structures. An example of this in biology is cells and organisms. Cells are evolving within organisms, and organisms are evolving their composition of cells. The holy grail of this project would be to see larger scale activity emerge from small: organisms evolving out of a population of cells.
The method being employed is to specify a candidate model in pictures and words, and then engage in thought experiments about how it would play out, how much computational power would be required, and its potential for meeting the goal of multi-scale evolution. This has led to a design specification for an ALife system which can now be built and experimented with.
Choice points in the design process
Just as important as the specification itself are the motivations behind its properties. Almost all properties of the model present a tradeoffs between richness and simplicity. I constantly fought a desire to make the model more and more like the physical substrate of the biological world: molecules with complex interactions emerging from their structure. But the goal is not to replicate the natural world, but to replicate its properties of complexity and evolutionary activity across scales, and so made great effort to get the model down to the bear bones that would meet my goal.
One of the first major concessions I made a was
Focus on Information
When it became clear that effective use of information was going to be a major incentive for the emergence of scale, I looked at classifier systems and their capabilities. Classifier systems are collections of input-output rules. They are presented encoded information from an external source, and the information is matched against the entire body of rules. If the information matches any rule’s input pattern, that rule either activates some kind of actuator, or puts out another message for the other classifiers to consume. The classifiers that get the most work are selected for by an external fitness function and are allowed to remain in the system, and are also used to create mutated copies.
Through this mechanism large-scale chains of classifiers can emerge, and high level classifiers can “evolve” alongside the low level ones. This is multi-scale evolution in an important sense, but it falls short of my goal for one important reason:
The Model
This model is named “Turducken”, after the kitchy practice of stuffing a turkey with a chicken and then jamming the entire thing into a duck and roasting it. It is hoped that the model outlined here will yield a similarly satisfying nesting of organisms, albeit a nesting of a very different kind.
Continue reading ‘Turducken’