Just to clarify .. the reason I found the article compelling is due to my tendency towards mathematical formalism.

As an example, we spent quite a while looking at formalizing ABM and Steve's wonderful "Complexity Babble". We took two different paths in our wandering. One was to try to nail down good definitions for the various terms in english sentences. The other was a set-theoretic definition, reminiscent of Machine & Grammars in computer science. I append some notes, not sure if they're the latest.

We seemed to be getting a bit more traction with the latter, at least in my opinion. For example, both initial conditions, constraints, and boundary conditions were more easily defined set-theoretically than in words. This could easily be a bias amongst the participants.

    -- Owen

A Agent Based Model (ABM) is a four-tuple (A,e,s0,S)
- A: set of "agent", which in turn consists of
  - AV: a finite set of variables, which in turn have a bounded
    range of values they can take on.
  - AS: the Step Function for this agent
- E: an enumeration function which can visit, and optionally modify, each agent.
- s0: the initial state of all agent variables
- S: the Step Function which uses E to call each Agent's AS step function.

Notes on the above:
0 - We agreed to discontinue, for the present, use of concept names that are easily confused with the same name in other sciences/ domains. If the name is compelling enough, preceding it with the work Agent or Model would be OK. Ex: Agent or Model space to describe the allowed values of the set of variables within an entity.

1 - We agreed on a simple definition of the modeling environment, even removing the notion of patches I proposed earlier. An agent (or entity) simply contains a set of variables, each of which has a set of possible values. And there is a list which lets an enumeration of the agents. Thus we've reduced the scope to: - An agent has a set of variables, and each variable has a set of allowed values.
  - A way to enumerate the agents is provided.  A list is fine.
  - A procedure runs across the agents periodically.
  - There apparently is no need for patches yet.
  - Ditto for global variables
This minimalist definition will be extended only when it is necessary to do so. (Thus we could have a model hierarchy similar to computing: Finite State Automata, Push Down Automata, and Turing Machines, with the parallel languages they recognize: Regular Expressions, Context Free Languages, and Lambda Calculus.)

2 - The cartesian product of the set of agent variables forms the Agent Space (or any other name we'd like). We may need to distinguish between the full cartesian product, and a reduction of that set due to the model's rules. This brought up the discussion of two reductions: - Reductions brought about by the initial conditions of the model (i.e. all agents at 0,0 or spread out with a uniform random distribution over the range of x,y values.) These may create a set of values within the full cartesian product that can not occur. - Reductions brought about by boundary conditions. These may not be an issue, they can simply be a reduction of the scope of one or more variables, but this needs to be decided upon.

This gives us a reasonable set theoretic starting point: a set of agents with a set of variables with a restricted set of allowed values, along with a procedure that can enumerate over the agents to step the agents forward in time.


============================================================
FRIAM Applied Complexity Group listserv
Meets Fridays 9a-11:30 at cafe at St. John's College
lectures, archives, unsubscribe, maps at http://www.friam.org

Reply via email to