Annex 1: How to Get Started with Agent-Based Modeling ...



Annex 1: How to Get Started with Agent-Based Modeling: Introductory Literature, Model Libraries and TutorialsIn annex 1 to “Simulate This! An Introduction to Agent-Based Models and Their Power to Improve Your Research Practice”, we provide recommendations for the readers who are interested in exploring existing agent-based models (ABMs) through model libraries, introductory literature, and tutorials. Model Libraries If you are looking for an opportunity to get a direct impression of existing ABMs, model libraries are the best starting point, as they give you the possibility of trying and modifying ABMs. An interesting model to start with could be Schelling’s model of segregation, which has been implemented multiple times on different platforms. Standing out among others are the two well-maintained libraries presented with NetLogo and OpenABM. NetLogo is a framework to implement ABMs that contains a model library. The NetLogo model library is integrated in both the standalone version of NetLogo (see below) and the online version of this software. It has a well-organized library of classic ABMs, organized by research domain, each containing a user interface to manipulate model parameters, a model description with sources and recommendations of what to try out, and the code used to create the model. In addition, the NetLogo website includes an online archive of user-submitted models ready to be downloaded. OpenABM is an internet portal that contains models written for different platforms, which you can download and use provided you have the correct environment installed on your computer. For the library on OpenABM, developers can submit their own models and model descriptions complete with instructions, and the files necessary to run the model. Compared to the NetLogo library, OpenABM contains models that are less known and educational (NetLogo is partly intended for teaching), but also more research oriented. As they are written in different programming languages and environments, they require the user to master at least minimal skills in the respective programming language. For somebody comfortable in the relevant language, this can present an advantage over the NetLogo library which is, by definition, limited to models created with NetLogo. For all others, however, this a potential disadvantage.Introductory Literature on Agent-Based Modeling If, after trying out a few existing models from the libraries, you decide to go ahead and try your hand at agent-based modeling, there are a number of books and scientific articles at your disposition. Most of these books focus on specific software or reference certain branches of agent-based modeling. However, they all contain a large amount of relevant information regardless of your choice of topic or software. We selected books that we consider to be interesting and helpful introductions. If you are looking for more topic-specific recommendations, the Journal of Artificial Societies and Social Simulation (JASSS) contains book reviews in every issue. Please note that, to avoid any confusion, we have talked about agent-based models throughout the article. However, when looking for literature on ABMs, it is helpful to know that in some disciplines (e.g. biology), the term “individual-based modeling” is more commonly used. This difference in terms is historical and not the result of a methodological distinction (Railsback & Grimm, 2012). Another abbreviation used is ABMS, for agent-based modeling and simulation (Salamon, 2011).Agent-Based & Individual-Based Modeling (Railsback & Grimm, 2012), focuses on the method of agent-based modeling in general and is not aimed at one specific discipline. It is designated for use with NetLogo. While not directed at social scientists, it is still very approachable, easy to read, and contains many instructions and recommendations that are useful no matter the platform you use. Simulation for the Social Scientist (Gilbert & Troitzsch, 2005) is a classic amongst the literature on ABMs. It is more specifically written for those who investigate questions and theories involving human agents and is not limited to ABMs as a method of simulation. If you already know that you want to use NetLogo for your models, An Introduction to Agent-Based Modeling (Wilensky & Rand, 2015) is a good choice as it is co-written by Uri Wilensky, the creator of the language. Much of the information in this book is also available online, in the NetLogo documentation and tutorials. However, it is a valuable source of information beyond the “how to” of modeling, and it is interesting for beginners regardless of their choice of language. Design of Agent-Based Models (Salamon 2011) addresses the practical aspects of designing and implementing an agent-based model. The practical, often overlooked questions that arise when building an ABM are directly addressed here. A stepwise process for model development is suggested, accompanied by a toolbox of ways of visualizing results and making the whole modeling process more rigorous. It is well suited to be an introduction and for guidance in developing your ABM.A more concise, but slightly more technical introduction to agent-based modeling in the form of an article is given by Macal and North’s “Tutorial on Agent-Based Modeling and Simulation” (2005). Furthermore, all popular software frameworks built explicitly for agent-based modeling offer extensive online tutorials (see below).To explore articles on agent-based modeling, browsing journals dedicated either solely or at least partly to their publication can be useful. Aside from the aforementioned Journal of Artificial Societies and Social Simulations (JASSS), other examples include Complex Systems and Advances in Complex Systems. Interdisciplinary CooperationFinding classes or researchers who use and master the method of agent-based modeling inside our discipline is not easy. If the practical knowledge required to create an ABM is not available in your research institute, this might constitute another obstacle to get started with agent-based modeling. In contrast, other departments at your university may organize classes around this topic that are open to all members of the university. Moreover, affiliates of these departments might be interested in collaboration. Departments of interest can be: Biology (here, the term “individual-based model” is used), Sociology, Economy, Anthropology, but also Physics, Mathematics and Computer Science, especially if you are interested in anything related to networks. Furthermore, modelers (e.g., in the European Social Simulation Association) are often keen to collaborate with disciplinary experts, as disciplinary knowledge is a key ingredient for a good model. Finally, a relatively new initiative called “ESSA@work” () has been set up to connect modelers in all stages and from all disciplines to discuss and improve their work in progress.Annex 2: Software and Languages for the Creation and Exploration of Agent-Based ModelsIn Annex 2 to “Simulate This! An Introduction to Agent-Based Models and Their Power to Improve Your Research Practice” we introduce the software and programming languages we estimate to be most suited to social psychologists. Creating an ABM is challenging because it requires you to learn how to think in terms of “agents” and their “actions”. Subsequently, you need to translate the resulting operationalization into a script using the programming language or ABM platform of your choice. For researchers already using a programming language in another context, say R for statistical analyses or Python to create experiments, it makes sense to use the same language to create their first models. While it is possible to create an ABM in virtually any programming language, some are better suited for agent-based modeling, for reasons we will evoke further down, for each proposed language separately. For those who have no initial knowledge or preference for a specific language, the choice can be either based on ease of use or the purpose and complexity of the model. As programming a whole ABM from scratch is a daunting task, the easiest option is to use a programming platform specifically designed for agent-based modeling. Such a platform usually includes predefined components to create agents, agent behaviors, characteristics, and environments, as well as tools for visualization and analysis, and it usually also has a support network of fellow users you can ask for advice. Nevertheless, if you have never programmed before, you might consider taking a course or participating in a summer course to efficiently get started with agent-based modeling. As with any other tool or guide for agent-based modeling, the summer courses are never directed at one discipline only and are often visited by researchers from a multitude of backgrounds. Most summer schools are announced on both OpenABM and the European Social Simulation Association (ESSA) website. Also, the website OpenABM is a great source for general information (as, for example, the above-mentioned model library) and provides an introductory NetLogo tutorial. In addition, all the software platforms introduced further down have their own websites, which are very informative, and mailing lists where you can post questions if in trouble.The list of tools presented in the following is not exhaustive, and is limited to those compatible with Mac, Windows, and Linux-based operating systems, and free to use for research purposes. NetLogoNetLogo is a programming language explicitly designed for agent-based models by Wilensky (1999), based on a variant of Logo, an educational language designed to be easy to learn and to allow the creation of programs that are readable for humans. NetLogo’s modeling environment, its extensive model library, and the availability of tutorials make it a solid choice to get started with ABMs. Compared to other platforms and languages, its use is straight-forward and well-documented on the NetLogo website. Writing a model comes down to using building blocks with additions to customize the model to your needs. If you have no prior knowledge in computer programming, this is probably the easiest way to get started, as the resulting script is fairly readable and not necessarily more confusing than instructions to set up a piece of Scandinavian furniture. Data from simulations can be exported in textual format as a comma separated values (CSV) file, which can be easily imported in any data analysis software. Additionally, the R package RNetLogo (Thiele, 2011) allows you to interface NetLogo with the R programming language (R Development Core Team, 2008), offering the possibility of running complex NetLogo experiments from R with multiple parameter settings and directly analyzing the results of your simulations in R. A similar solution, albeit less developed, is available for Python (pyNetLogo, 2013). NetLogo provides a large library of basic functions that allow a user to implement a rich variety of behaviors and interaction protocols, and a growing library of extensions are available on the website; however, if custom functions are needed, they have to be implemented in Java or Scala, two full-fledged programming languages with a considerably steeper learning curve. Repast SimphonySimilar to NetLogo, Repast Simphony is a toolkit specifically designed for agent-based modeling. It offers a model library, tutorials, and a mailing list for help and introduction, supported by a large community of users. To develop ABMs, a library of pre-defined classes offers all kinds of functions (e.g., relating agents to each other in social networks). Functions for visualization and analyses are also available; Additionally, data can be exported in CSV format. Most modelers implement in Java, but there are also options to use Repast Simphony with ReLogo (also based on Logo), statecharts, or Groovy; and even a high-performance version using C++. In our opinion, Repast Simphony is slightly more challenging to learn than NetLogo, but it offers a very good alternative if you are already familiar with Java or one of the other supported languages. MESA (Python)Python (Python Software foundation, n.d.), a language you might have already used to design experiments with the popular PsychoPy package (Peirce, 2007), is another option for the creation of ABMs. The relatively new Python-based ABM library MESA (2015) is currently the most complete solution available for designing ABMs in Python. It might be a useful alternative to NetLogo or Repast Simphony for proficient Python users, as well as those who intend to learn Python anyway. Also in this case data can be easily exported in CSV format, but other packages are available for analyzing (e.g. scipy, 2001, pandas, 2011) and plotting data (e.g. matplotlib, 2003) directly in Python. While this language is considered simpler and more readable than both Java and Scala, it is more complex to learn than NetLogo: the advantage of this choice is that once one becomes proficient with the language, extending or modifying the MESA library is relatively easy, as it is itself implemented in Python. Due to its recent creation, however, there is not yet a strong MESA support community. Comparison of SoftwareThe large number of disciplines using ABMs in their research also led to an impressive amount of software and software packages to use. We limited our recommendations to those that we think are most accessible to psychologists. If the presented tools do not satisfy your needs but you still want to give ABMs a try, there are other options available: To find them, Wikipedia contains a comparison of different tools (). Unfortunately, a number of the propositions referenced or linked to are no longer maintained. In our opinion, both NetLogo and Repast Simphony offer an ideal starting point, while Python MESA is the best choice for advanced users: it has a steeper learning curve, but allows for more flexibility. Annex ReferencesCoMSES Computational Model Library (n.d.). retrieved from: , N. & Troitzsch, K. G. (2005). Simulation for the Social Scientist. Maidenhead, England: Open University Press.Macal, C. M. & North, M. J. (2005). Tutorial on agent-based modeling and simulation. Proceedings of the 37th Conference on Winter Simulation, 2–15. doi: 10.1057/9781137453648_2matplotlib [Computer Software] (2003). Retrieved from [Computer Software]. (2015). Retrieved from?, M. J., Collier, N. T., Ozik, J., Tatara, E. R., Macal, C. M., Bragen, M. & Sydelko, P. (2013). Complex adaptive systems modeling with Repast Simphony. Complex Adaptive Systems Modeling, 1, 3. doi:10.1186/2194-3206-1-3pandas [Computer Software] (2011). Retrieved from [Computer Software] (2013). Retrieved from [Computer Software]. (2001) Retrieved from , S. F. & Grimm, V. (2011). Agent-Based and Individual-Based Modeling: A Practical Introduction. Princeton, New Jersey, USA: Princeton University Press.Repast Symphony [Software] (2015). Retrieved from: [Computer Software] (2011). Retrieved from R Development Core Team (2008). R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna, Austria. Retrieved from Salamon, T. (2011). Design of Agent-Based Models. Developing Computer Simulations for a Better Understanding of Social Processes. Repin, Czech Republic: Bruckner Publishing.SciPy [Computer Software] (2001). Retrieved from Thiele, J. C., Kurth, W. & Grimm, V. (2014). Facilitating Parameter Estimation and Sensitivity Analysis of Agent-Based Models: A Cookbook Using NetLogo and “R.” Journal of Artificial Societies and Social Simulation. doi: 10.18564/jasss.2503Wilensky, U. (1999). NetLogo. . Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL. Wilensky, U. & Rand, W. (2015). An Introduction to Agent-Based Modeling. Modeling Natural, Social and Engineered Complex Systems with NetLogo. Cambridge, Massachusetts, USA: MIT Press. ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download