Implementing an IBM as a computer program, including tools for observation and analyses of a large number of parametrizations and formulations, can be quite challenging. Many tools exist in computer science that support the development and maintenance of complex software, but ecologists usually have no training in computer science. Most developers of IBMs thus are writing their software from scratch, without using concepts and tools of, for example, object-oriented programming. This makes the resulting software prone to errors and its development very inefficient.
There are mainly two alternatives to programming from scratch:
1. Software libraries. The modeler still has to use a certain all-purpose programming language but can utilize many predefined elements that support the implementation of IBMs. Examples of such libraries include Swarm (based on Objective C), Repast (Java), and Mason (Java). These libraries are supported by active user communities and their developers, but often are lacking a comprehensive documentation and tutorials. The learning curve for beginners is quite steep, but for the experienced they provide a very powerful framework for implementing IBMs.
2. Modeling environments. They consist of menus or simplified programming languages that are easy to use and learn and allow to very quickly develop prototype IBMs. Examples include AgentSheets, CORMAS, and NetLogo. NetLogo is freely available on the Internet, is well documented, comes with a good tutorial and many example models, and is actively maintained by its developers. Comparisons with Swarm and Repast showed that NetLogo is much less limited in performance and scope than one might expect due to NetLogo's history as a teaching environment. Beginners could thus start with NetLogo and later on decide whether to switch to one of the other environments, software libraries, or allpurpose programming languages like C++, Java, or Delphi.
Modern personal computers usually have enough memory and power for developing and running IBMs, but vast analyses of parameter space, for example for parametriza-tion, may need the combined power of PC clusters. For analyzing the output of IBMs, many modelers are using other software packages, for example, R, MATLAB, Mathematica, Excel, SPSS, etc.
Was this article helpful?