AgentWorld


AgentWorld is a series of inter-related simulation programs designed to help us investigate the phase space of possible animat artificial life-forms.

AgentWorld provides a simulation framework for agents to interact with each other and with their environment in three primary ways.

Firstly a soup of agents has no spatial extent at all and is just an agent hosting framework that gives each agent a fair share of processing cycles and allows agents to form dynamic relationships with one another. Agents can encounter one another in the "soup" stochastically and can maintain nay number of links as dictated by their local state information and program.

A mesh or lattice of agents provides the most conventional arrangement for a simulation. In this model a lattice is established in an desired dimension and with any desired topology such as a square (2d) or hyper-cubic geometry( 3,4,...d) or a triangular or hexagonal in 2d or face centred or body centred or hexagonal close packed lattice in 3d. Each agent is physically locate d at a node on the lattice and therefore has a definite spatial position as well as a well known set of possible neighbours. Agents can either be static models that live at the node or dynamic agents that traverse the links interconnecting nodes.

Finally the most general AgentWorld framework is that of a generalised graph with arbitrary numbers of nodes and directional arcs connecting them. Agent can be static at the nodes or can be dynamically traversing the arc links. Each directed arc is provided with a FIFO queue that can hold travelling agents. We can either allow unbounded queues or can enforce constraints on the queue sizes to model different sorts of synchronisation. We use a notion invented for the DISCWorld metacomputing grid model in that mobile agents are encapsulated in "Thaums" (the unit of magic) so as to avoid the type problem of having different and unknown types (or colours) of agent traverse the link queues.

In all the above we use a synchronisation apparatus of our own design rather than be limited by the number of threads or other system limits imposed by a particular concurrency mechanism. Agents must conform to a particular object signature and their firing methods are given a randomized firing order but a fair (on average) share of processing cycles.

AgentWorld is primarily designed for experiments with spatial configuration and for designing new agents or agent interactions. In general it is most efficient to use a hand-coded agent implementation based on the AgentWorld toolkit to run a large scale agent simulation on a particular configurational geometry.

AgentWorld has proved most useful for experiments in unconventional geometries or those graph-based "small-world" perturbations to meshes which would be tedious and error-prone to code from scratch.

AgentWorld programs are typically run in batch mode and produce output in the form of line graphs of measured properties rather than as colourful snapshots of configurations. The programs therefore do not lend themselves very well to exposition on Web pages yet.

The configuration snapshots shown below are from a predator-prey model system. A rectilinear block of prey ("rabbits" in blue) and predators ("foxes" in red) has evolved into this quite startlingly complex set of patterns. The green dots indicate corpses and shows where animals died - it also provides a frame of reference of sorts for the evolving world. Notice the battlefronts between rabbits and foxes. these sometimes become spirals as the rabbits flank the foxes in their bid to escape. This emergent behaviour arises from the model under surprisingly stable sections of parameter space.


photo photo photo
photo
See the technical notes describing this work:
[ Our Artificial Life Group Homepage | Massey University | IIMS | Links ]