Category Cross-Omics>Agent-Based Modeling/Simulation/Tools

Abstract AnyLogic can be used to develop agent based models (ABM).

Agent Based Modeling arose out of the work on complex Adaptive Systems (CAS) at Santa Fe Institute. In ABM, the focus is on global behavior (of a system of individual agents) arising from local rules and interactions of individual agents.

In ABM, focus is on individual agents, their rules, their behaviors, and their interactions with each other and the environment. Collectively agents may exhibit 'emergent behaviors' such as self organization. ABM is a bottom-up methodology.

Some key characteristics of Agent Based Models are:

1) Complex, real-world systems are modeled as collections of autonomous decision-making entities, called “agents”.

2) These models are highly distributed in nature.

3) There is No centralized control or planning required.

4) The agents follow a few simple rules and have bounded rationality.

5) Agents only require local knowledge and visibility.

6) Interactions between these agents result in complex emergent global behavior.

7) Behavior exhibits dynamic-equilibrium and adaptation.

8) Agents can communicate with each other directly or through the environment (stigmergy).

9) This is often called “generative” or “bottom-up” modeling.

AnyLogic supports agents in a continuous or discrete environment. Agents can form social networks with other agents, can communicate and send messages to each other, can move in space, have states, and follow rules.

AnyLogic supports Agent Based modeling (as well as Discrete Event and System Dynamics Modeling) and allows you to efficiently combine it with other approaches.

Before deciding to use the agent based approach you should investigate the problem and verify whether traditional approaches can be used.

For example, if the system you are modeling fits well with the process flow paradigm (i.e. can be described as a sequence of operations on essentially passive entities) it may be beneficial to use AnyLogic 'Enterprise Library' objects instead of specifying individual behaviors of those entities.

Similarly, if the entities in your system have No individuality (No individual history, timing, etc.) it may be worth applying the ‘System Dynamics’ approach.

Agent based models are very diverse, and it would be close to impossible to develop a universal "Agent Based Library" and reduce the modeler's work to a number of drag-and-drop operations.

There are however some reusable "design patterns" that simplify development of agent based models and are directly supported by AnyLogic. These patterns are covered in the following AnyLogic areas:

1) Model architecture;

2) Agent synchronization ("steps");

3) Space (continuous or discrete), mobility and spatial animation;

4) Agent connections (networks, e.g. social networks) and communication; and

5) Dynamic creation and destruction of agents.

AnyLogic Environment -- In AnyLogic, environment is a special construct that is used to define the properties common to a group of agents. Although you do Not have to define the environment in your 'agent based model', most of agent-specific functionality is available through and with the help of environment.

There can be more than one environment in your model; environments can be hierarchically organized (for example, agents-companies can live in one environment and agents-employees can live in local company environments). An agent can belong to at most one environment.

AnyLogic Agent -- Agent in 'Agent Based Modeling' is a unit of model design that can have behavior, memory (history), timing, contacts, etc. Agents can represent people, companies, projects, assets, vehicles, cities, animals, ships, products, etc.

AnyLogic ActiveObject class is a natural basis for developing agents as it has all necessary properties: within an active object you can define variables, events, state-charts, System Dynamics stock and flow diagrams, you can also embed other active objects, in particular process flowcharts built with the AnyLogic Enterprise Library.

You can define as many active object classes in your model as there are different types of agents.

AnyLogic Dynamic Creation and Destruction -- AnyLogic gives you the ability to dynamically create and destroy active objects, in particular 'agents'. To enable dynamic creation or destruction, the active object must be declared as replicated where it is embedded (even if you expect to create only one instance of it).

The Replication field in the embedded object properties is used to specify the initial number of instances that will be created when the container object is created and can be zero (0) if you do Not want any instances at that time.

AnyLogic Agent Synchronization -- AnyLogic supports synchronous, asynchronous and mixed modeling. Asynchronous modeling means truly continuous time axis and ability to schedule events at arbitrary time moments and execute continuous processes such as 'System Dynamics' ones.

Synchronous modeling assumes discrete time steps and agents (and maybe environment) executing their actions synchronously at these time steps.

While in most cases asynchronous models are closer to reality and also computationally more efficient (No "empty" steps are done), sometimes the problem is best solved with ‘synchronized models’ (this is true for many academic models and for those real-world systems where decisions are made regularly at discrete time points, e.g. every day or every month).

AnyLogic Continuous Space -- AnyLogic supports two-dimensional continuous and 'discrete space' types for agents.

The 2D continuous space support includes ability to set and retrieve the current agent location, to 'move' the agent with the specified speed from one location to another, to execute action upon arrival, to animate the (static or moving) agent at its location, to establish connections based on the agents layout, and other useful services.

AnyLogic Discrete Space -- AnyLogic supports two-dimensional 'continuous' and discrete space types for agents. The 2D discrete space is a rectangular array of cells fully or partially occupied by the agents. There can be at most one agent in one cell.

AnyLogic support for this kind of space includes agent distribution over the cells, moving to a neighboring cell or jumping to arbitrary cell, finding out who are the agent's neighbors (with respect to the 'neighborhood model'), finding empty cells, and other useful services.

AnyLogic Agent Connections and Networks -- The interaction of agents in agent based models can be implemented in many different ways. If relations between agents are more or less persistent, an agent needs to remember one or several other agents.

The meaning of these relations can be e.g.: friend, colleague, parent, child, owner, etc. One way of keeping references to other agents is to store them in plain variables or in collections.

AnyLogic Communication between Agents -- First of all, you are free to use any regular AnyLogic inter-object communication facilities for your agents: calling methods, sending messages via ports, linking continuously changing variables, etc.

In that case you do Not even need to declare your active objects as Agent and have them in the same environment.

If you do that however, you enable yet one more way of agent communication: message passing via environment. This type of communication offers several additional methods for sending messages.

System Requirements

Contact manufacturer.


Manufacturer Web Site AnyLogic

Price Contact manufacturer.

G6G Abstract Number 20438

G6G Manufacturer Number 104067