Conceptual idea of ABM approach

Agents

  • Agent: Consists of state + behaviors
  • Collection
  • Type: A collection of agents with identical behaviors
  • Network: A collection of agents typically sharing some state or behavior
  • Action
  • Behavior: an operation that affects the state of an agent or the environment

Environment

  • Pixel: a set of values for environment layer l at location r,c representing its state
  • Collection
  • Tile: a collection of Pixels at location r,c with size h,w for environment layer l
  • Cell: all Pixels at location r,c
  • Block: a collection of Cells at location r,c with size h,w
  • Subcell: a collection of Pixels at location r,c, containing a collection of environment layers
  • Subblock: a collection of Subcells at location r,c with size h,w
  • Action
  • Change: an operation that affects the state of the environment or an agent

Time

  • Iteration: smallest time step in simulation
  • Collection
  • Interval: a series of time steps from t1-t2
  • Period: recurring at equal intervals of time
  • Action
  • Next: moves the time step forward 1 iteration

Procedures (Still in progress)

  • Agent procedure - execute an ordered collection of behaviors on a collection of agents in order of an index
  • Environment procedure - execute an ordered collection of changes on a collection of pixels in order of an index
  • Simulation procedure - execute an ordered collection of simulation functions on a collection of pixels or agents in order of an index

Triggers (Still in progress)

  • Timed Trigger - execute a procedure at a defined period
  • Behavior Trigger - execute a procedure when a defined agent behavior executes
  • Environment Trigger - execute a procedure when a defined environment change executes
  • Simulation Trigger - execute a procedure when a defined simulation function executes

Indexes (Still in progress)

  • Agent index - define an order to a collection of agents based on a set of states (1 or more) - serialization
  • Environment index - define an order to a collection of pixels based on a set of states (1 or more) - serialization

Specifics

Agents

Agents have generic behaviors (move, update, init, del) and specific behaviors (consumeresource,talktoagent,hibernate,etc) Behaviors are not sufficient in describing an agent - you must add state with behaviors to create an agent

Environment

This organization of environment enables the slicing or subslicing of environment layers in all combinations.

Time

Time period and interval gives us flexibility in both statistics gathering and agent/environment behaviors (e.g. agents hibernate for x time steps).

Procedures

Procedures provide the simulation an external control beyond agent behavior and environment change. This control is necessary for parallel and non-parallel abm's. Examples include agent replacement (e.g. whenever an agent dies it is automatically replaced) and agent migration (e.g. an agent moves to another processor).

Triggers

Triggers execute an operator based on some stimulus.

Indexes

Indexes define an order for procedures. This guarantees that given that same input (e.g. agent/env, index, and procedure) you get the same output. Note: the index can be random, but requires a seed, so the guarantee holds true)

Thoughts

I have considered adding collection behaviors such as 'networkbehavior' for agents and 'tilechange' for environment, but I'm not sure if that should be included in the original definition. Perhaps I should add a “Simulation” type where you can create collections of behaviors/changes/periods for general use.

return to index