107

Understanding Evolutionary Potential in Virtual CPU Instruction Set Architectures

PLoS ONE (PLoS ONE), 2013
Abstract

We investigate fundamental decisions in the design of instruction set architectures for linear genetic programs that are used as both model systems in evolutionary biology and underlying solution representations in evolutionary computation. Using the Avida digital evolution research platform, we subjected populations of organisms implemented with each test architecture to seven different computational environments designed to present a range of evolutionary challenges. We evaluated six different types of architectural features for the virtual CPUs: (1) genetic flexibility: we enhanced the ability of digital organisms to specify how a genetic instruction should function using modifier instructions, (2) memory: we provided an increased number of registers in the virtual CPUs, (3) decoupled sensors and actuators: separated input and output operations that enable greater flexibility in the control of data flow. We also tested a variety of methods to regulate expression: (4) explicit genome labels that allow programs to dynamically refer to specific positions in the genome, (5) position relative search instructions, and (6) multiple new flow control instructions, including conditionals and jump instructions. Each of these features also adds additional complication to the instruction set and runs the risk of slowing down evolution due to epistatic interactions. Indeed not all modifications turned out to be beneficial. However, we found that two features (multiple argument specification and separated I/O) demonstrated substantial improvements in the majority of test environments, along with versions of each of the remaining architecture modifications that show significant improvements in multiple environments. Combined, these enhancements enable more rapid evolution of complex solutions to a broad range of environmental challenges.

View on arXiv
Comments on this paper