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
