aivika: A multi-method simulation library

[ bsd3, library, simulation ] [ Propose Tags ]

Aivika is a multi-method simulation library focused on discrete event simulation (DES) with partial support of system dynamics and agent-based modeling.

The library has the following features:

  • allows defining recursive stochastic differential equations of system dynamics (unordered as in maths via the recursive do-notation);

  • supports the event-driven paradigm of DES as a basic core for implementing other paradigms;

  • supports extensively the process-oriented paradigm of DES with an ability to resume, suspend and cancel the discontinuous processes;

  • allows working with the resources based on specified queue strategies (FCFS/FIFO, LCFS/LIFO, SIRO, static priorities and so on);

  • allows customizing the infinite and finite queues based on strategies too;

  • supports the resource preemption;

  • allows defining a queue network based on streams of data (transacts) and their processors;

  • allows simulating circuits with recursive links and delays;

  • supports the activity-oriented paradigm of DES;

  • supports basic constructs for the agent-based modeling such as agents, states, timeout and timer handlers;

  • allows creating combined discrete-continuous models as all parts of the library are well integrated and this is reflected directly in the type system;

  • the arrays of simulation variables are inherently supported;

  • supports the Monte-Carlo simulation;

  • the simulation model can depend on external parameters;

  • uses extensively signals for notification;

  • allows gathering statistics in time points;

  • hides technical details in high-level simulation computations (monads, streams and arrows).

Aivika itself is a light-weight engine with minimal dependencies. However, it has additional packages [1, 2] that offer the following features:

  • automating simulation experiments;

  • saving the results in CSV files;

  • plotting the deviation chart by rule 3-sigma, histogram, time series, XY chart;

  • collecting the summary of statistical data;

  • parallel execution of the Monte-Carlo simulation;

  • has an extensible architecture.

The charting package has two interchangeable back-ends [3, 4], where one of them uses Cairo and it is more preferable.

The PDF documentation and installation instructions are available on the Aivika Wiki website [5].

Moreover, the method was generalized [6] and applied to nested simulation [7] and parallel distributed simulation [8].

The libraries were tested on Linux, Windows and OS X.

A more full information about Aivika is available on the project website [9].

[1] http://hackage.haskell.org/package/aivika-experiment

[2] http://hackage.haskell.org/package/aivika-experiment-chart

[3] http://hackage.haskell.org/package/aivika-experiment-cairo

[4] http://hackage.haskell.org/package/aivika-experiment-diagrams

[5] https://github.com/dsorokin/aivika/wiki

[6] http://hackage.haskell.org/package/aivika-transformers

[7] http://hackage.haskell.org/package/aivika-branches

[8] http://hackage.haskell.org/package/aivika-distributed

[9] http://www.aivikasoft.com/en/products/aivika.html

P.S. Aivika is actually a genuine female Mari name which is pronounced with stress on the last syllable.

Modules

[Index]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1, 0.2, 0.3, 0.4, 0.4.1, 0.4.2, 0.4.3, 0.5, 0.5.1, 0.5.4, 0.6, 0.6.1, 0.7, 1.0, 1.1, 1.2, 1.2.1, 1.3, 1.4, 2.0, 2.1, 3.0, 3.1, 4.0, 4.0.1, 4.0.3, 4.1, 4.1.1, 4.2, 4.3, 4.3.1, 4.3.2, 4.3.3, 4.3.4, 4.3.5, 4.5, 4.6, 5.0.1, 5.1, 5.2, 5.3, 5.3.1, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 5.9.1, 6.0.0, 6.1, 6.1.1
Change log CHANGELOG.md
Dependencies array (>=0.3.0.0), base (>=4.5.0.0 && <6), containers (>=0.4.0.0), mtl (>=2.1.1), random (>=1.0.0.3), vector (>=0.10.0.1) [details]
License BSD-3-Clause
Copyright (c) 2009-2016. David Sorokin <david.sorokin@gmail.com>
Author David Sorokin
Maintainer David Sorokin <david.sorokin@gmail.com>
Category Simulation
Home page http://www.aivikasoft.com/en/products/aivika.html
Source repo head: git clone https://github.com/dsorokin/aivika
Uploaded by DavidSorokin at 2016-05-28T07:57:56Z
Distributions NixOS:6.1.1
Reverse Dependencies 9 direct, 2 indirect [details]
Downloads 40984 total (85 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2016-05-28 [all 1 reports]