In fact, I have more in mind than just the ability to change rules
dynamically. I have become convinced that what's missing from most
agent-based modeling frameworks (besides the ability to modify agent rules
dynamically) is a service-oriented perspective. I am interested in modeling
how economies work with respect to how different elements of the economy
provide services to each other.

A simple example is a supply chain. The upstream suppliers create objects
that are processed eventually into a final result.  As I said, that's a very
simple example. But start there and ask how that might be represented in an
agent-based modeling framework.

Then add something like capital equipment. There is a supply chain for
capital equipment. But the machinery produced by the capital equipment
manufacturer may be used by members of its own supply chain. So the supply
chain has loops in it. (Also it should be possible to model the difference
between (a) the components involved when an entity takes components and
produces a result and (b) the capital equipment used in such a production.
They are both in some sense input to the creation of the output. But the
equipment doesn't get "used up" in the process -- at least not as fast.

The picture this brings to mind is a network of consumers and producers.
where there may be arbitrary loops in the network. The network should be
able to represent operations that modify objects as well as nodes that
combine them into something new. For example a transportation agent can be
modeled by allowing objects to have a location attribute and then having the
transportation agent modify that attribute. (The consumer-producer network
is abstract and doesn't represent geographic space.)

The nodes on this network will be the agents. Their operations are the
services that they perform. Agents have prerequisite to being able to
perform their services -- their incoming edges. Their outgoing edges reflect
the result of their having performed whatever service they offer. So if you
take the consumer-producer graph suggested above and generalize it so that
it represents services performed at each node, that's the sort of thing I'm
after.

Of course there will be a need for money to move in the opposite direction
of the services. There will have to be the generation of raw materials and
energy and the eventual production and removal from the system of final
products (such as purchased food) or final services (such as entertainment).


It will have to be possible for the network to reconfigure itself so that an
agent is able to find better/cheaper suppliers than the ones it already has.
(That's one reason agents have to be able to rewrite their rules.)
Presumably there will also be mechanisms for offering and buying (i.e.,
trading) services/products.

Once such a model is built one can modify the source and sink nodes and see
how it reconfigures itself in response.

It is also likely that bubbles and busts will develop. So there will have to
be regulatory nodes. What kinds of regulatory nodes is to be determined. The
need for regulatory nodes (like the capital equipment nodes) require that
the services not be rigidly stratified, that everything (any service or
product) be available to anything else. So what I'm imagining is a network
of agents that continually reconfigures itself where each agent performs
some service (including the possibility of producing an object) that any
other agent may take advantage of..

The basic programming mechanism for such a network isn't hard. As I said,
it's just a network. What will be challenging will be the semantics of each
of the agent nodes. But then the world is complicated. That's to be
expected.

So to return to what I want as an ABM framework, it's one in which agents
can be understood in an abstract sense as producing results that flow to
other agents to enable them to produce their results. This is what I have in
mind as an agent-based service-oriented framework for building models. The
framework will be relatively simple. Just agents, the ability to connect and
reconnect them, and the ability to program them in a generic input -> output
rule language.

I don't want the rule language to be a general purpose programming language
-- although it should be possible to include calls to a general purpose
language within the rules when new primitive operations are needed.

This has been an on-the-fly description of what I'm looking for. I know it's
been somewhat choppy. I hope it conveys the main ideas.

-- Russ

On Tue, Aug 25, 2009 at 3:32 PM, Marcus G. Daniels <[email protected]>wrote:

> Carl Tollander wrote:
>
>> Rather, we are looking to world states as other regulatory systems or
>> n-categories (topoi?), themselves operating "on-the-fly".   I'm not at all
>> sure that simple rules and rule-rewrites are a viable path for describing
>> such states.
>>
> Hmm, rewrites could draw from world objects involving many kinds of
> subcomponents to form an array of other abstracted patterns to constrain
> further polymorphic rewrites.    For example, first map various symptoms to
> suggest a disease process, and then do rewrites on the basis of the presence
> of that disease.   The approach of operating on multiple views of the world
> seems more natural that working on it directly -- most of which is
> irrelevant detail.
>
> Is this a more general topic than the current question?
>
>
> Marcus
>
> ============================================================
> 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
>
============================================================
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