I have been trying to figure out the Metamodel presented by Jim yesterday on this website. I have tried to work through a simple model of an interaction between a buyer and seller at a farmers' market; it is shown below in the attached document. I am certain that this is not precisely how the interaction would be represented in our ABM program; any thoughts on how it should be altered? I want to make sure I have a simple interaction down before I move on to modeling larger environments, such as the entire farmers' market.
Welcome to the Introduction to the first mini-book, Local Food Economy Game - Logical View, in the Local Food Economy Game Model Repository. This model will guide and constrain our design and implementation of the LFEGame.com agent-based simulation model.
This general class model is more accurately described as a metamodel. A metamodel is a model used to build other models. That is, it is a model that prescribes how to specify models that comply with its general architecture and constraints on the relationships between allowable model elements. "Allowable" in this sense means that the element is somehow derived from and related to an element in the metamodel.
A metamodel can be used two ways. It may be used ro guide development of new models built "from scratch" as solutions to a problem or design need. Or it can be used as a specification to guide the selection of technology candidates to be used in implementation of the proposed solution. We will, for example, take each of the agent-based simulation technology platforms that Jelal has identified through his web research and assess its features and capabilities in light of its ability to express models that satisfy our metamodel.
If we are lucky, we will find a free or affordable, easy-enough-to-use agent-based simulation platform that we can use to build our LFEGame model. In the best of all cases, the technology selected will have been developed by researchers who share a similar view of how agent-based simulation software should be designed and implemented. All we'd need to do in this case is use the supplied platform to build our LFEGame exploratory learning environment.
But this "best of all worlds" situation is not likely to happen. It is more likely that we will find some agent-based simulation framework that comes close to our requirements but is missing some vital pieces. In this case, we "stand on the sholders of giants" as the saying goes in research circles. We'll design and build extensions to the selected platform. In sucn a case, we reduce the time, energy and expense of our project by leveraging existing technologies.
Our worst case scenario is that we find nothing among the agent-based simulation technologies available that embodies models the same that we look at them as reflected in our metamodel. In this case, we'd be stuck with selecting a development platform and completely "rolling our own."
From what I have seen, however, we're not likely to need to resort to this low a level of development.
Our next steps will be along two fronts:
In addition to these general next steps, I am going to develop an HTML-based, non-PDF version of the LFEGame General Class Model so it can easily be viewed and commented upon on-line.
Located here is a directory of links to applications of agent-based modeling, arranged by subject area. Of greatest importance to us is the economics section, which includes such projects as "artificial life simulation of the textile/apparel market," and "agent based simulation of the hotelling game." The page is put together by Craig Reynolds.
For those who are unfamiliar with agent-based modeling (ABM), here is an easy-to-understand introduction to the subject. It is a list of answers to frequently asked questions about ABM, entitled "Agent-based modeling of complex, adaptive systems." It explains how agent-based modeling allows these systems to be modeled, and why modeling is a useful tool for understanding these systems.
Just to update on some of the work I've been doing, here and here are links to a couple articles I've read about agent-based simulation that I did not find worthy of individual write-ups as they are not particularly useful to our project. The first article, by Robert Axelrod, presents a walk-through for those who plan to begin an agent-based simulation project, but does not really advance any new ideas for us. The article I've linked to is part of a larger publication of Axelrod's, called "The Complexity of Cooperation: Agent-Based Models of Competition and Collaboration." The second article is entitled "Agent-Based Computational Economies. It is more or less a recitation of ideas put forth by Leigh Tesfatsion; as such, I do not think it is a necessary read in light of our intensive exploration of Tesfatsion's work.
Moduleco is a "modular "multi-agent" platform, designed for to simulate markets and organizations, social phenomenons and population dynamics."
In addition to being a resource for agent-based modeling information, SwarmWiki is the home of Swarm, one of the original agent-based simulation programs. Swarm is a "multi-agent software platform for the simulation of complex adaptive systems. In the Swarm system the basic unit of simulation is the swarm, a collection of agents executing a schedule of actions. Swarm supports hierarchical modeling approaches whereby agents can be composed of swarms of other agents in nested structures. Swarm provides object oriented libraries of reusable components for building models and analyzing, displaying, and controlling experiments on those models." An in-depth description of Swarm can be found here
The CORMAS programming environment is "oriented towards the building of simulation models, with a specificity in the domain of natural-resources management. It provides a framework for developing simulation models of coordination modes between individuals and groups who jointly exploit the resources."
SEAS, the US Air Force's "Multi-Agent Theater Operations Simulation," is a further example of the broad ranges of uses for agent-based simulation. According to the SEAS website:
The System Effectiveness Analysis Simulation (SEAS) is a government-owned, military utility analysis tool sponsored by Air Force Space Command, Space and Missile Systems Center, Directorate of Developmental Planning (SMC/XD). SEAS has been in development for over 10 years and was designed specifically to give military operations research analysts and decision makers a flexible means to quickly explore new warfighting capabilities; in particular, those provided by Space and C4ISR systems.
SEAS represents the latest in analytic simulation technology and offers a powerful agent-based modeling and simulation environment in which small-to large-scale joint warfighting scenarios can be constructed and explored to quantify the effectiveness of various system designs, architectures, and concept of operations (CONOPS). The ability to represent networked military units and platforms reacting and adapting to perception-based scenario dynamics in a 3-D physics-based Battlespace, makes SEAS ideally suited for exploring effects-based operations, network centric warfare, and transformational warfighting concepts.
Located here is a very informative article about agent-based modeling (ABM), including information about what ABM is, the benefits of using ABM, and how ABM has been used in the past and will be used in the future. The article is written by Eric Bonabeau, and is from a May 14, 2002 issue of PNAS (Proceedings of the National Academy of Sciences of the United States of America). Some important passages from the article are presented below.
In agent-based modeling (ABM), a system is modeled as a collection of autonomous decision-making entities called agents. Each agent individually assesses its situation and makes decisions on the basis of a set of rules. Agents may execute various behaviors appropriate for the system they represent – for example, producing, consuming, or selling. Repetitive competitive interactions between agents are a feature of agent-based modelingAt the simplest level, an agent-based model consists of a system of agents and the relationships between them. Even a simple agent-based model can exhibit complex behavior patterns and provide valuable information about the dynamics of the real-world system that it emulates. In addition, agents may be capable of evolving, allowing unanticipated behaviors to emerge.
ABM is a mindset more than a technology. The ABM mindset consists of describing a system from the perspective of its constituent units.
Whether one is attempting to describe a traffic jam, the stock market, voters, or how an organization works, ABM makes the model seem closer to reality. For example, it is more natural to describe how shoppers move in a supermarket than to come up with the equations that govern the dynamics of the density of shoppersKnowing the actual shopping basket of a customer makes it possible to create a virtual agent with that shopping basket rather than a density of people with a synthetic shopping basket computed from averaging over shopping data.
This article also contains several examples of projects that have used agent-based modeling technology, some of which are posted separately on this website.
After reading several articles on agent-based modeling, I am struggling to answer a question that I've been pondering: How do you know that your agent-based model has a complete set of information?
When modeling customer behavior at a supermarket or amusement park, traders' behavior at NASDAQ, driver behavior in traffic, or any other human phenomenon, there are countless variables of human behavior that must be taken into account. When these models form a conclusion about how people act, and how theoretical changes in the structure of an institutional will affect human actions, how do they know that they have not left out a crucial piece of our thought processes that may be lost among the myriad of processes that have already been accounted for.
For example, in the supermarket model that has been discussed in one of my earlier blogs, a supermarket owner makes management decisions based upon his judgement of human action simulated by the model. But how does he know that, once entering a supermarket, shoppers' behavior won't be influenced by a factor that has not been accounted for -- for example, the shopper is in a hurry, or the shopper prefers some brands over others. If these "forgotten factors" become prevalent enough, the findings of the model could become useless.
It seems to me that unless a model really strives to replicate human behavior in its entirety, its findings can be called into question.
A bit about NASDAQ's use of agent-based modeling:
To evaluate the impact of tick-size reduction, NASDAQ has been using an agent-based model that simulates the impact of regulatory changes on the financial market under various conditions. The model allows regulators to test and predict the effects of different strategies, observe the behavior of agents in response to changes, and monitor developments, providing advance warning of unintended consequences of newly implemented regulations faster than real time and without risking early tests in the real marketplace. In the agent-based NASDAQ model, market maker and investor agents (institutional investors, pension funds, day traders, and casual investors) buy and sell shares by using various strategies. The agents' access to price and volume information approximates that in the real-world market, and their behaviors range from very simple to complicated learning strategies. Neural networks, reinforcement learning, and other artificial intelligence techniques were used to generate strategies for agents. This creative element is important because NASDAQ regulators are especially interested in strategies that have not yet been discovered by players in the real market, again to approach their goal of designing a regulatory structure with as few loopholes as possible, to prevent abuses by devious players.
Quote from http://www.pnas.org/cgi/content/full/99/suppl_3/7280
The following passage describes the simulation technology used in SIMSTORE SIMSTORE is based on a real supermarket; it is intended to allow both buyers and sellers to see how they can minimize or maximize the time they spend in the store.
Bilge, Venables, and Casti have developed an agent-based model of a supermarket. SIMSTORE is a model of a real British supermarket, the Sainsbury's store at South Ruislip in West London. The agents in SIMSTORE are software shoppers armed with shopping lists. They make their way around the silicon store, picking goods off the shelves according to rules such as the nearest-neighbor principle: "Wherever you are now, go to the location of the nearest item on your shopping list." Using these rules, SIMSTORE generates the paths taken by customers, from which it can calculate customer densities at each location.
It is also possible to link all points visited by, say, at least 30% of customers to form a most popular path. An optimization algorithm can then change where in the supermarket different goods are stacked and so minimize, or maximize, the length of the average shopping path. Shoppers, of course, do not want to waste time, so they want the shortest path. But the store manager would like to have them pass by almost every shelf to encourage impulse buying. So there is a dynamic tension between the minimal and maximal shopping paths. This model was originally aimed at helping Sainsbury's to redesign its stores to generate greater customer throughput, reduce inventories, and shorten the time that products are on the shelves.
Quote from http://www.pnas.org/cgi/content/full/99/suppl_3/7280
This paragraph describes the construction and uses of an agent-based model of an amusement park, used to maximize the uses of all rides in the park.
Another application of ABM to flow management is the simulation of customer behavior in a theme park or supermarket. The collective patterns generated by thousands of customers can be extremely complex as customers interact: for example, how long one waits at an attraction in a theme park depends on other people's choices. A major theme park resort company was thinking about how to improve adaptability in labor scheduling, but knew that this depended on knowing more about the optimal balance of capacity and demand. Axtell and Epstein developed ResortScape (13), an agent-based model of the park that provides an integrated picture of the environment and all of the interacting elements that come into play in such a resort. The model provides a fast in silico way for managers to identify, adjust, and watch the impact of any number of management levers such as:
- When or whether to turn off a particular ride.
- How to distribute rides per capita throughout the park space.
- What is the tolerance level for wait times.
- When to extend operating hours.
In the simulation, agents represent a realistic and changeable mix of both supply (attractions, shops, food concessions) and demand (visitors with different preferences) elements of a day at the park. Leveraging existing resources and data, such as customer surveys, segmentation studies, queue timers, people counters, attendance estimates, and capacity figures, the model generates information about guest flow. Users can design and run an infinite number of scenarios to study the dynamics of the park space, test the effectiveness of various management decisions, and track visitor satisfaction throughout the day.
Quote from http://www.pnas.org/cgi/content/full/99/suppl_3/7280
The following paragraph talks about TRANSIMS, an interesting application of agent-based simulation technology:
A team from LANL's Technology and Safety Assessment Division has developed a traffic simulation software package to create products that can be deployed to metropolitan planning agencies nationwide. The TRansportation ANalysis SIMulation System (TRANSIMS) ABM package provides planners with a synthetic population's daily activity patterns (such as travel to work, shop, and recreation, etc.), simulates the movements of individual vehicles on a regional transportation network, and estimates air pollution emissions generated by vehicle movements. Travel information is derived from actual census and survey data for specific tracts in target cities, providing a more accurate sense of the movements and daily routines of real people as they negotiate a full day with various transportation options available to them. TRANSIMS is based on (and contributes to the further development of) advanced computer simulation codes developed by Lawrence Livermore National Laboratory for military applications. TRANSIMS models create a virtual metropolitan region with a complete representation of the region's individuals, their activities, and the transportation infrastructure. Trips are planned to satisfy the individuals' activity patterns. TRANSIMS then simulates the movement of individuals across the transportation network, including their use of vehicles such as cars or buses, on a second-by-second basis. This virtual world of travelers mimics the traveling and driving behavior of real people in the region. The interactions of individual vehicles produce realistic traffic dynamics from which analysts using TRANSIMS can estimate vehicle emissions and judge the overall performance of the transportation system. Previous transportation planning surveyed people about elements of their trips such as origins, destinations, routes, timing, and forms of transportation used, or modes. TRANSIMS starts with data about people's activities and the trips they take to carry out those activities, then builds a model of household and activity demand. The model forecasts how changes in transportation policy or infrastructure might affect those activities and trips. TRANSIMS tries to capture every important interaction between travel subsystems, such as an individual's activity plans and congestion on the transportation system. For instance, when a trip takes too long, people find other routes, change from car to bus or vice versa, leave at different times, or decide not to engage in a certain activity at a given location. Also, because TRANSIMS tracks individual travelers – locations, routes, modes taken, and how well their travel plans are executed – it can evaluate transportation alternatives and reliability to determine who might benefit and who might be adversely affected by transportation changes.
Quote from http://www.pnas.org/cgi/content/full/99/suppl_3/7280
Located here is an article about a program designed to simulate artifical electricity markets. In a software program called Power Agents, consumers and producers are modeled as "optimizing goal-seeking" agents in a an artificial electricy distribution market. Consumers respond to price changes by maximizing their subjective valuation of the electrical services provided.
A similar program could give us the very basics of what we are looking for--one could see how independent, utility-maximizing agents respond to a change in price of certain foods, because of, say, a change in where the food comes from.
Given the positive reviews of the agent-based modeling platform NetLogo contained in the article "Agent-Based Simulation Platforms: Review and Development Recommendations" (see my earlier blog about this article), it is worthwhile to add a direct link to NetLogo. From this page, one can read about and download the program. Once downloaded, one can play around with the sample models that come along with NetLogo (more on this later).
Thus far, the two best resources I've found for agent-based modeling are:
Several of the articles that I've been reading about Agent-Based Simulation have referenced Integrated Development Environments (IDEs)--in particular, Eclipse--as a tool for constructing simulation environments. "They offer such benefits as editors that automatically format code, finding and helping fix mistakes, automating common tasks such as writing import statements and getter and setter methods, and debuggers that let you step through a code's execution to find mistakes and understand what your model is doing" (Swarm.org). Eclipse, specifically, "is an open source community whose projects are focused on providing an extensible development platform and application frameworks for building software" (Eclipse.org).
By the way, the Component Builder for PlatBox is based on Eclipse software.
Here is an article entitled "Agent-based Simulation Platforms: Review and Development Recommendations," written by Steven F. Railsback, Steven L. Lytinen, and Stephen K. Jackson. This article compares five agent-based simulation platforms: NetLogo, MASON, Repast, Objective-C Swarm, and Java Swarm. The five platforms were reviewed by implementing example models in each. Some important findings from this study include:
This article was found at the Agent-Based Modeling Resources Page of swarm.org
RePast and Ascape appear to be the two most popular platforms for agent based modeling. Repast (Recursive Porous Agent Simulation Toolkit) was developed at the University of Chicago. It is intended primarily for use in the social sciences, and seeks to "support the development of extremely flexible models of living social agents." Models can be written in RePast using several programming languages, including Java, C#, and Python. As I know none of these languages, I was limited in my ability to experiment with RePast. Despite these limitations, however, I formed the opinion that RePast would be a suitable platform for our simulation game. It allows for the depth of interactions and behaviors, as well as the diversity of characterizations that are a necessity for our project.
Ascape, written in Java, is a "software framework for developing and analyzing agent-based models." In Ascape, agents exist within "Scapes" – collections of agents that are themselves agents. Agents interact within these scapes, which govern the actions of the agents contained in them. Ascape supports complex model design, but can also be explored by those unfamiliar with programming.
There is an interesting program located here:
The program is simplistic, using "food" and "gold" as the only two commodities. Actors are very limited in their actions, and allotment of each good is random. However, it is worth checking out, as it models what we are trying to do--only in a more simplistic manner.
A detailed description of the model is presented in a paper by Ken Steiglitz, Michael Honig, and Leonard Cohen, located at:
Right now, I'm playing with the program AgentSheets (www.AgentSheets.com) as a candidate for our simulation platform. AgentSheets is an "actor-based simulation-authoring tool that lets users create their own interactive simulations and games." Unlike most other programs that I've examined (RePast, Ascape), AgentSheets requires no prerequisite programming language; however, it remains to be seeing whether AgentSheets, given that it doesn't make use of a complex programming language, has the capability to express all the information and dynamics that we need.
After thoroughly examining Leigh Tesfatsion's website on Agent-Based Computational Economics, it is clear that there is a multitude of options for agent-based simulation platforms providedthe designer knows a programming language. As I do not have this knowledge (outside of a basic knowledge of the Scheme language), it seems that one of our obstacles is to find a platform for which little or no programming knowledge is necessary. At this point, it seems that PlatBox is our only option in that category, unless, of course, I were to spend time learning enough of a programming language to design a simulated world on one of the many platforms listed in Tesfatsion's website.
We have two primary goals for this project during Jelal's time here as our summer intern:
I knew we were going to be okay finding kindred spirits in the local food economy space. We are, afterall, in the historical agricultural heartland of the United States. I did not expect, however, to find a world class theoretical and applied research scientist in the rather specialized domain of agent-based economic simulation.
Wow, were we happy to learn about Leigh Tesfatsion! Leigh is Professor of Economics and Mathematics at Iowa State University in Ames. Here's how she describes her current research interests:
And here are links to a her current work that is spot on relevant to our project:
I can't wait to arrange a field trip to Ames so Timlynn and I can take Jelal along with us to meet our Community Capitals Framework friends at the ISU-based North Central Regional Center for Rural Development (NCRCRD) and get the local food researchers there together with Leigh Tesfatsion! What fun we have ahead.
The boxed economy simulation platform discussed in the links on this page:
is very interesting, as we have discussed. If we can obtain a copy of this platform from its authors, we would have--as Jim said--a viable candidate for our simulation software. I plan to print out and read a few more of these articles before coming to Fairfield on Wedensday.