AGES is a group of Agentsheets commands that allows end-users to easily program agents that reproduce and evolve over time. These agents are subject to evolution through a variation of a genetic algorithm introduced into AGES by the Crossover action command. Such end-user evolutionary programming functionality makes AGES an ideal tool for enabling end-users to study complex adaptive systems (cas) through programming. A brief introduction to genetic algorithms, including the crossover operator/command, and to complex adaptive systems in general is presented below.
| In order to run AGES you must first obtain a copy of Agentsheets. To run Agentsheets you need a Macintosh running MacOS ? or better. If you wish to obtain a copy of Agentsheets, email Jonathan Phillips, Andri Ioannidou, or Alex Repenning, and request a password. You must obtain a password due to licensing agreements concerning Macintosh Common Lisp (MCL). Once you have a password, you can get your free version of Agentsheets from the Agentsheets Website. |
Genetic Algorithms (GA's) were first introduced by John Holland in his book Adaptation in Natural and Artificial Systems . Since then, many variations of the GA have been implemented. GA's are often used to simulate biological evolution in computational systems. The most simple versions of the GA contain selection, crossover, and mutation operators. Melanie Mitchell describes these operators below in an excerpt from her book, (1996) An Introduction to Genetic Algorithms, MIT Press:
Standard GA's often use some form of Replacement as well. The replacement operator keeps the population size constant. In contrast, some GA's do not maintain a constant population size. The actual form and role of genomes in different implementations of the GA varies widely.
The notion of fitness is also integral to GA's. Fitness is a measure of "how well" and organism survives in a given environment. Some GA's make use of exogenous fitness functions. Exogenous fitness functions are are explicitly defined. An agent's fitness is calculated according to this function.
However, in modelling real-world systems it is often impossible to determine the form of an exogenous fitness function describing an agent's actions due to the everchanging environments within which these actions are carried out. In these situations fitness is said to be endogenous. Endogenous fitness is internal to a system and is defined only implicitly. Fitness arises through interactions between agents within the system. It is often difficult, if not impossible, to assign fitness values to an agent's actions in isolation. For instance, it is usually good for an agent to eat in order to obtain energy. If one is greedy, this might lead one to grow, kill, and eat as much as possible in order to gain as much energy as possible. However, such actions could lead to a situation where too many healthy individuals eat and reproduce so much that food cannot regenerate fast enough to feed the growing population. Such a scenario could lead to mass starvation and/or extinction of agents that merely try to eat as much as possible. In the short term "eating as much as possible" might seem like a good/"highly-fit" survival strategy even though it can lead to disastrous consequences over time in a changing environment.
If the notion of "fitness" is to have any meaning at all, it must take into account such changing environments. Holland characterizes systems with endogenous fitness in his paper, Holland, John H., (1994) Echoing Emergence: Objectives, Rough Definitions, and Speculations for ECHO-Class Models. in George A. Cowan, David Pines, David Meltzer (eds.) Complexity: Metaphors, Models, and Reality. Addison-Wesley, 309-333. There he writes:
AGES introduces a genetic algorithm to Agentsheets to allow users to program evolutionary systems. In these systems, agents reproduce and exchange attribute/gene values that affect their behavior. Over generations, attribute values and behaviors of surviving offspring can change according to environmental selective pressures. (e.g. In the sugarscape project, Chompers' mean metabolism decreases across generations while mean vision increases. The rules Chomper agents follow ,as well as those that Sugar_and_Spice agents follow, present Chompers with selective pressures that make it easier for them to survive when they have low metabolism and high/longer-range vision. ) By adapting to such selective pressures, agents that reproduce according to AGES' Crossover commands become examples of complex adaptive systems. In using the commands of AGES to create computational simulations, end-users can study complex adaptive systems subject to evolution.
AGES has been developed within Agentsheets to enable a wide audience of non-expert end-users to study complex adaptive systems (cas) through programming. In the following passage of his paper: (1994) Complex Adaptive Systems. in George Cowan, David Pines, David Meltzer (eds.) Complexity: Metaphors, Models, and Reality. Addison-Wesley, 17-28. Murray Gell-Mann hints at the wide range of phenomena that can be described in terms of cas:
With such a notion of cas in mind, it is not surprising that one would want to study them; cas are pervasive and even today are providing an overarching framework within which many seemingly separate domains can be studied together.
An important aspect of complex adaptive systems
revolves around the nonlinear relations that often hold between
their parts. Chris Langton speaks of non-linear systems as those
in which the behavior of the whole is more than the sum
of its parts. In contrast, the behavior of a linear system is often
best characterized as merely the sum of its parts. Langton expands on
these notions in his paper, Langton, Christopher G. (1996) "Artificial Life." in Margaret Boden (ed.) The Philosophy of Artificial
Life. Oxford University Press, 39-94. There he writes:
Langton emphasizes the need to analyze the behavior of parts of a system in situ. It is just this kind of situated learning that AGES brings to the study of complex adaptive systems. Users of AGES actually program/construct their own computational worlds where interesting global properties emerge from interactions between individual agents.
It seems quite clear that students'/children's creativity can be enhanced if they are given more freedom to play with ideas they encounter in classroom settings. Computer simulation tools like AGES can aid in creating such freedom without totally abandoning structure in the classroom. AGES provides users a way to "cut to the chase" so to speak. Even kids can quickly and easily use AGES to program agents without the need to learn the complicated syntax of a traditional "high-level" programming langauge like C/C++, Java, or LISP. Hopefully, through the use of tools like AGES and Agentsheets, kids will be motivated to construct personally meaningful worlds for themselves that allow them to actively engage with ideas that were previously explored only through uninteractive video presentations or through pencil and paper exercises. In AGES and Agentsheets your "paper" is alive and vibrant, full of agents that can swim, walk, run, fly, talk to you and amongst themselves, and even evolve! There's lots of fun to be had as you learn (perhaps in spite of yourself) about the systems you create.
It is interesting to note that a sophisticated reductionism, that explores both context-independent and context-dependent properties of systems to be explained, might not be in conflict with a sophisticated holism that insists on upholding the importance of context (i.e. context-dependence) in explaining those same systems.
In the next section I present the commands that embody AGES. AGES commands provide end-users the ability to easily program Agentsheets agents that reproduce and evolve over time to form complex adaptive systems in which interesting system-wide properties emerge. Crossover in AGES is geared toward operating in systems where fitness is endogenous. Such systems are more like many real-world cas whose shapes and forms are constantly changing.