• Keine Ergebnisse gefunden

The use of agent-based models models (ABMs) or individual-based models (IBMs) for re-search and management is growing rapidly in a number of fields. For example, DeAngelis and Mooij (2005) documented a steady, sharp increase in the number of ecology publications using IBMs starting in about 1990. This growth is partly due to the ability of these models to address problems that conventional models cannot, and partly to the growing number and quality of software platforms for agent-based modeling (Railsback et al., 2006). In this chap-ter, we review the most widely used computer platforms for agent-based modeling, based on

a study of Railsback et al. (2006), and give a justification of the platform employed in our study, which is NetLogo.

The most commonly used software platforms for agent-based modeling comprise the Swarm (based on Objective-C or Java language), Repast, MASON, and NetLogo (based on Java language). The first three plaforms belong to the ’framework and library’ platforms, which were designed to make the design, implementation, and use of ABMs more accessible and efficient. Swarm in particular was designed as a general language and toolbox intended for widespread use across scientific domains. Swarm’s developers started by laying out a general conceptual approach to agent-based simulation software. Therefore, Swarm was im-plemented as a framework - a set of standard concepts for designing ABMs - along with a library of Objective-C software implementing this framework. Repast was started as a Java implementation of Swarm but has diverged significantly from Swarm. One objective of the Repast project was to make it easier for inexperienced users to build models, including a built-in simple model and interfaces, which support the process of model construction for beginners. MASON is being developed as a new Java platform, designed as a smaller and faster alternative to Repast, with a clear focus on computationally demanding models with many agents executed over many iterations. Design appears to have been driven largely by the objectives of maximizing execution speed and assuring complete reproducibility across hardware.

These framework and library platforms have succeeded to a large extent because they provide standardized software designs and tools without limiting the kind or complexity of models they can implement, but they also have well-known limitations. Tobias and Hof-man (2004) recently reviewed Java Swarm and Repast (along with two less-used platforms), ranking them numerically according to well-defined criteria. In their study, they indicate that important weaknesses include difficulty of use; insufficient tools for building models, espe-cially tools for representing space; insufficient tools for executing and observing simulation experiments; and a lack of tools for documenting and communicating software.

The most recent development of MAS plaforms is the appearance of MAS pack-ages. Differing from the framework and library plaforms, the MAS package is a collection of primitives assembled with a standardized common user interface and provides a new environ-ment for MAS modeling. NetLogo (Wilenski, 1999) is one among few new MAS plaforms.

Its primary purpose was to provide a high-level platform that allowed students down to the elementary level to build and learn from simple ABMs. However, recent versions of NetLogo now contain many high-end capabilities (behaviors, agent lists, graphical interfaces, etc.) and it is quite likely the most widely used platform for ABMs. Of all main currently used plat-forms, NetLogo is the highest-level platform, providing a simple yet powerful programming language, built-in graphical interfaces, and comprehensive documentation. It is designed primarily for ABMs that contain mobile individuals in a grid space with local interactions.

According to a recent evaluation of Railsback et al. (2006), NetLogo is highly recommended, even for prototyping highly complex models.

In contrast to the other platforms, NetLogo almost completely separates the pro-cesses of implementing and displaying a model. The modeler writes a program (in NetLogo language) for behavior of agents and the gridded space on a ’Procedures’ page. On a sepa-rate ’Interface’ page, the modeler can design an automatic animation of agent locations on the space. Graphs and parameter controllers can be added to the interface via graphical and menu-driven tools, along with simple statements in the software telling the interface when to update. In the other programming platforms, the processes of implementation and displaying of the model are not separated, with the instantiation of the display or ’animation window’ re-quiring several programming steps. Furthermore, the procedures of the motions of agents on the display have to be implemented using lower-level operations in these platforms, whereas in NetLogo agent motion can be simply implemented using a built-in method that moves agents to a new location.

As users are highly interested in monitoring outcomes of the model runs, it is also useful to compare the strengths and weaknesses of the various platforms in producing graph-ics of output indicators, output files and statistgraph-ics. Histograms are particularly useful for ABMs, because they can output the full distribution of some characteristic over all the agents.

Repast and Swarm have built-in histogram classes that are relatively easy to use, while MA-SON does not yet provide such a class. In NetLogo, histograms are created using drag-and-drop and a menu on the interface page. Then, a simple code statement specifies when the histogram is updated. Regarding the provision of output files, Objective-C Swarm and Repast provide built-in classes to facilitate output of data to a file, and data recording actions can be scheduled just like any other action, so that they take place at known times. Java

Swarm and MASON do not provide file writing tools, so a Java class for file output must be used. NetLogo provides simple primitives for opening and writing to files, although their ability to format and control output is limited; for example, there is no way to overwrite a file instead of appending to it. As far as statistical calculations are concerned, Swarm has a powerful tool for collecting summary statistics, and NetLogo also includes primitives that provide all common statistics. Repast’s ’DataRecorder’ provides only an average, whereas MASON even lacks tools for any summary statistics.

The most significant weakness of NetLogo is the slow speed in model execution, whereas in most of the other aspects this platform exceeded the capabilities of the other plat-forms, offering a convenient programming environment at the same time. Although execution speed is relevant for the choice of an appropriate software platform, it has to be considered that the most time-consuming part is, nevertheless, the modeling process, and not the execu-tion of model runs. As such, the implementaexecu-tion of the model in Java and C programming languages is much more time-consuming than the use of NetLogo primitives. Therefore, the time spent by the model runs using NetLogo is leveled out by the comparably short time spent for model development. Moreover, the rapid development of high speed CPU mitigates the low speed of NetLogo excution. By virtue of this argument and the other advantages as outlined before, we decided to use NetLogo as a software platform to implement our MAS/LUCC model in this thesis.