Introduction

This manual is intended to be an operating guide and an investigative aide to the avida system. It is structured so that new readers need only concentrate on the introduction and the beginner's guide in order to gain a working knowledge of avida. This introduction contains a quick overview of the system, and the following section contains a fuller description of both the theoretical design and this particular implementation. The next group of sections explore some of the design decisions made (which emphasize those we consider non-intuitive), and explain the specifics on configuring runs. Finally, the user's interactions with avida (installation, configuration, run-time use, and output files) are detailed with sample applications for research.

What Is Avida?

The computer program avida is an auto-adaptive genetic system designed primarily for use as a platform in Artificial Life research. The avida system is based on concepts similar to those employed by the tierra program, that is to say it is a population of self-reproducing strings with a Turing-complete genetic basis subjected to Poisson-random mutations. The population adapts to the combination of an intrinsic fitness landscape (self-reproduction) and an externally imposed (extrinsic) fitness function provided by the researcher. By studying this system, one can examine evolutionary adaptation, general traits of living systems (such as self-organization), and other issues pertaining to theoretical or evolutionary biology and dynamic systems.

Since the predominant auto-adaptive system available is Ray's tierra, and avida is based on similar concepts, we present a short list of differences between avida and tierra. In avida we provide:

  • A two-dimensional environment with local interactions only (as opposed to the global interactions in tierra.) This prevents information from propagating at an exponential rate and allows us to study localized phenomena. The slower information propagation causes the population to maintain a state outside of equilibrium (where learning is optimal) for a much longer period of time. Additionally (in future versions of avida) local interactions will permit nearly linear increases in execution efficiency on parallel computers.
  • A detailed flexibility in configuring runs. avida allows the user to select from a variety of time-slicing methods (which allow for synchronous or asynchronous execution of creatures), mutation schemes, methods for placement of newborn creatures, and even the flexibility to model other auto-adaptive Artificial Life systems such as tierra (to establish baselines for comparisons.) In future versions, we plan to expand this emulation to standard adaptive systems such as genetic algorithms, and allow for other CPU structures.
  • The ability to specify fitness landscapes for goals beyond the optimization of gestation time, along with the theoretical possibility for open-ended evolution (given a sufficiently complex fitness landscape.)
  • Allowing precise measurements and the collection of statistical information (as is required for a scientific research platform.) avida allows the user to configure a wide range of output files, and observe almost any aspect of the soup.
  • Brief Overview

    The avida system creates an artificial (virtual) environment inside of a computer. The system implements a 2D grid of virtual processors which execute a limited assembly language; programs are stored as sequential strings of instructions in the system memory. Every program (typically termed cell, organism, string or creature) is associated with a processor, or grid point. Therefore, the maximum population of organisms is given by the dimensions of the grid, N× M, and not by the size of the total genome space of the population, as in tierra. For purposes of Artificial Life research, the assembly language used must support self-reproduction; the assembly language instructions available are described in the Virtual CPU section.

    The virtual environment is initially seeded with a human-designed program that self-replicates. This program and its descendents are then subjected to random mutations of various possible types which change instructions within their memory; resulting in unfavorable, neutral, and favorable program mutations. Mutations are qualified in a strictly Darwinian sense; any mutation which results in an increased ability to reproduce in the given environment is considered favorable. While it is clear that the vast majority of mutations will be unfavorable---typically causing the creature to fail to reproduce entirely---or else neutral, those few that are favorable will cause organisms to reproduce more effectively and thus thrive in the environment.

    Over time, organisms which are better suited to the environment are generated that are derived from the initial (ancestor) creature. All that remains is the specification of an environment such that tasks not otherwise intrinsically useful to self-reproduction are assimilated. A method of altering the time slice, or amount of time apportioned to each processor, is described in the Time Slicing section.

    While avida is clearly a genetic algorithm (GA) variation (to which nearly all evolutionary systems with a genetic coding can be reduced), the presence of a computationally (Turing) complete genetic basis differentiates it from traditional genetic algorithms. In addition, selection in avida more closely resembles natural selection than most GA mechanisms; this is a result of the implicit (and dynamic) co-evolutionary fitness landscape automatically created by the reproductive requirement. This co-evolutionary pressure classifies avida as an auto-adaptive system, as opposed to standard genetic algorithms (or adaptive) systems, in which the creatures have no interaction with each other. Finally, avida is an evolutionary system that is easy to study quantitatively yet maintains the hallmark complexity of living systems.

    Contacting the Avida Group

    The members of the avida group can be reached by email at avida@krl.caltech.edu. Consult the group's Web page for changes and notices at http://www.krl.caltech.edu/avida/. Research articles by members of the avida group are available via anonymous FTP at ftp://ftp.krl.caltech.edu/pub/avida/. Please feel free to contact us with any questions, comments, or ideas you may have about avida. For technical questions, contact avida-help@krl.caltech.edu. (Technical Support is not guaranteed with avida, but we will typically try to help with any problem you may have.)


    NEXT: An Overview of Avida
    PREV: The Index

    INDEX


    Page maintained by Charles Ofria
    Send all comments to charles@krl.caltech.edu