Comparison of agent-based modeling software

In the last few years, the agent-based modeling (ABM) community has developed several practical agent based modeling toolkits that enable individuals to develop agent-based applications. More and more such toolkits are coming into existence, and each toolkit has a variety of characteristics. Several individuals have made attempts to compare toolkits to each other (see references). Below is a chart intended to capture many of the features that are important to ABM toolkit users.

Comparison of ABM Software

Agent Based Modeling Toolkit Comparison
Platform Primary Domain Supporting Organization License Programming Language Operating System User Support GIS Capabilities 3D Capabilities Last Update
Altreva Adaptive Modeler Building agent-based market simulation models for price forecasting of real-world stocks and other securities Altreva; Utrecht, Netherlands Proprietary; free evaluation version available for research and experimentation (some limitations but no expiration) No programming skills required. An adaptive form of genetic programming is used to create trading rules. User can select functions to be used in the genetic programming engine. Windows FAQ, documentation, tutorial, examples, forum, email support Unknown Yes Up to 3 agent properties can be visualized in real-time using 2D graphics and color May 4, 2020 (Version 1.5.5) [1]
AnyLogic Agent-based general purpose; also supports discrete event and system dynamics simulations. The AnyLogic Company; Oakbrook Terrace, Illinois, USA Proprietary; Free Personal Learning Edition available Java Cross-platform Demos; training; online community; ask a question; online help; tutorials; consulting services Yes: supports both tile maps from free online providers and shapefile-based maps Yes January 23, 2020[2]
Cougaar Multi-agent systems; highly distributed, scalable, reliable, survivable applications; Domain independent; large scale distributed, complex, data intensive (can be configured for small-scaled embedded applications) Cougaar Software Inc.; Vienna, Virginia, USA]. Cougaar Open Source License (COSL) is a modified version of the OSI approved BSD License Java Linux, macOS, Windows FAQ; tutorials; slide shows; documentation; selected references; email support; public forums; mailing lists Yes Integrated with OpenMap No 2012 [3]
Framsticks 2D/3D simulations of (evolving) multi-agent systems and artificial life Poznan University of Technology, Poznan, Poland Depends on module: GPL/LGPL/Propertiary FramScript (similar to JavaScript) Cross-platform Email developer; tutorials; manual; FAQ; forums; API; documentation; selected publications; examples Yes Yes July 14, 2015 [4]
JADE Distributed applications composed of autonomous entities Telecom Italia; Torino & Parma, Italy LGPL version 2 Java Cross-platform FAQ; mailing list; defect list; tutorials; API; documentation Unknown Unknown August 6, 2017 [5]
MASON General purpose; social complexity, physical modeling, abstract modeling, AI/machine learning George Mason University, Fairfax, Virginia, USA Academic Free License (open source) Java Cross-platform Mailing list; documentation; Tutorials; third party extensions; reference papers; API Yes Yes September 3, 2019 (Version 20)[6]
NetLogo Social and natural sciences; Help beginning users get started authoring models Northwestern University, Evanston, Illinois, USA GPL NetLogo Cross-platform Documentation; FAQ; selected references; tutorials; third party extensions; defect list; mailing lists Yes Yes January 6, 2020 (Version 6.1.1) [7]
Repast Social sciences Argonne National Laboratory, University of Chicago; Lemont, Illinois, USA BSD Java (RepastS, RepastJ); Python (RepastPy); Visual Basic, .Net, C++, J#, C# (Repast.net) Cross-platform Documentation; mailing list; defect list; reference papers; external tools; tutorials; FAQ; examples Yes Yes September 30, 2019 [8]
SARL Distributed applications composed of autonomous entities * Stéphane Galland, Burgundy Franche-Comté University, France;
* Nicolas Gaud, Burgundy Franche-Comté University, France,
* Sebastian Rodriguez, Advanced Informatics Technology Research Group, Tucuman, Argentina
Apache version 2 SARL, Java Cross-platform FAQ; mailing list; bug tracker; tutorials; API; documentation Yes By using Java extension libraries, e.g. AFC. Yes By using Java extension libraries, e.g. Java 3D. October 26, 2019 [9]
Soar General purpose AI; human performance modeling; learning (including explanation-based learning) John E. Laird, Clare Bates Congdon, Mazin Assanie, Nate Derbinsky and Joseph Xu; Division of Computer Science and Engineering, University of Michigan, Ann Arbor, Michigan, USA BSD Soar 1 to 5 in Lisp; Soar 6 in C; Java, C++, TCL Cross-platform Documentation; FAQ; selected publications; defect list; third party extensions; mailing list; contact authors; tutorial; examples; wiki Unknown Unknown July 28, 2017 (Version 9.6.0) [10]
StarLogo Social and natural sciences; Educators; for students to model the behavior of decentralized systems; user friendly for K–12 students Mitchel Resnick, Eric Klopfer, and others at MIT Media Lab and The MIT Scheller Teacher Education Program, Massachusetts Institute of Technology; Cambridge, MA, USA Free (closed source) – Clearthought Software License, Version 1.0 StarLogo (an extension of Logo) Cross-platform Mailing list; tutorials; FAQ; bug list; documentation; developer contacts Unknown Unknown November 27, 2018 [11]
Swarm General purpose agent based Swarm Development Group GPL Java; Objective-C Cross-platform Wiki; tutorials; examples; documentation; FAQ; selected publications; mailing lists Unknown Unknown 2005 [12]
gollark: It compiles in reasonable time *and* makes a 600KB binary in debug mode which is much nicer than equivalent Rust.
gollark: I only need something like two routes so a full web framework is overkill.
gollark: ```nimimport optionsimport asyncdispatchimport httpximport tiny_sqliteimport macrosimport karax/[karaxdsl, vdom]import ./dbmacro includeFile(x: string): string = newStrLitNode(readFile(x.strVal))const css = includeFile("./src/style.css")let database = openDatabase("./monitoring.sqlite3")migrate(database)var threadDB {.threadvar.}: Option[DbConn]proc openDB(): DbConn = if isNone threadDB: threadDB = some openDatabase("./monitoring.sqlite3") get threadDBproc mainPage(): string = let vnode = buildHtml(html()): head: style: text css text "Bee deployed" $vnodeproc onRequest(req: Request) {.async.} = if req.httpMethod == some(HttpGet): case req.path.get() of "/": req.send(body=mainPage(), code=Http200, headers="Content-Type: text/html") else: req.send(Http404) else: req.send(Http404)echo "Starting up"run(onRequest, initSettings(Port(7800), "", 0))```This is what I have so far.
gollark: One per thread is likely sort of better ish slightly anyway.
gollark: Nope, this is probably fine.

References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.