Skip to content

Benchmarks and comparisons of leading ABM frameworks with Agents.jl

License

Notifications You must be signed in to change notification settings

rht/ABM_Framework_Comparisons

 
 

Repository files navigation

Benchmarks and comparisons of leading ABM frameworks and Agents.jl

Many agent-based modeling frameworks have been constructed to ease the process of building and analyzing ABMs (see here for a review). Notable examples are NetLogo, Repast, MASON, and Mesa.

This repository contains examples to compare Agents.jl with Mesa, Netlogo and Mason, to assess where Agents.jl excels and also may need some future improvement. We used the following models for the comparison:

  • Wolf Sheep Grass, a GridSpace model, which requires agents to be added, removed and moved; as well as identify properties of neighbouring positions.
  • Flocking, a ContinuousSpace model, chosen over other models to include a MASON benchmark. Agents must move in accordance with social rules over the space.
  • Forest fire, provides comparisons for cellular automata type ABMs (i.e. when agents do not move and every location in space contains exactly one agent). NOTE: The Agents.jl implementation of this model has been changed in v4.0 to be directly comparable to Mesa and NetLogo. As a consequence it no longer follows the original rule-set.
  • Schelling's-segregation-model, an additional GridSpace model to compare with MASON. Simpler rules than Wolf Sheep Grass.

Contributions from other Frameworks

We welcome improvements from other framework contributors, either with new code that beats the implementation provided here with updated improvements from your framework's development process.

Frameworks not included in the comparison are invited to provide code for the above, standardised comparison models.

All are welcome to suggest better 'standard candle' models to test framework capability.

About

Benchmarks and comparisons of leading ABM frameworks with Agents.jl

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • NetLogo 66.3%
  • Python 16.0%
  • Java 14.4%
  • Shell 2.3%
  • Julia 1.0%