Having downloaded NetLogo and played around with it for a while, I am unsure whether it will meet the needs of our modeling project.
It should be noted that I do not know the language that NetLogo uses; therefore, my ability to experiment with the program was limited. NetLogo does use a fairly simple programming language, but I did not find it a good use of my time to become familiar enough with it to be able to create my own models.
Conclusion: Though NetLogo may be the most widely-used agent based modeling program, I am skeptical that it will meet our needs. At this point in my research, I have found three programs that appear suitable for the models we want to create: RePast, Ascape, and the at-this-point-in-time only Japanese PlatBox. In order to be sure whether or not NetLogo belongs on this list, I would have to experiment with the program with its required language.
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.
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.
Located here "Conceptual Model for the Canadian Food and Nutrition System," used by Health Canada. This model is more complex than ours will be, as it takes into account five levels of food use: food supply, distribution, consumption, utilization, and health outcome. Our model will certainly elminate the last two, as it will not incorporate the health aspects of the food we eat to that extent.
According to Health Canada, the model "points to the potential areas for data collection, analysis, surveillance related research, dissemination and implementation and supports the need for a systematic approach to surveillance activities, which can be applied to other domains such as research and policy. The Conceptual Model identifies potential linkages across all sectors of the food and nutrition system, including agricultural, social, medical and economic sectors, and the interrelations of food and nutrition to health. It is a starting point to engage partners and stakeholders in a dialogue that can lead to a co-operative approach to surveillance. A comprehensive surveillance system based on the conceptual model will more efficiently support the development of policies in food and nutrition."
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."
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).
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.