Agent Based

Although you can find a number of various definitions of Agent Based Modeling (ABM) in the literature, from the viewpoint of practical applications agent based modeling can be defined as essentially decentralized, individual-centric (as opposed to system level) approach to model design. When designing an agent based model the modeler identifies the active entities, the agents (which can be people, companies, projects, assets, vehicles, cities, animals, ships, products, etc.), defines their behavior (main drivers, reactions, memory, states, ...), puts them in a certain environment, maybe establishes connections, and runs the simulation. The global (system-level) behavior then emerges as a result of interactions of many individual behaviors. 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-centric (discrete event) 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 System Dynamics approach.

Applications of Agent Based Modeling

A good example application for ABM is consumer market. In the highly dynamic, competitive and complex market environments (telecom, insurance, leasing, health, etc) the consumer’s choice essentially depends on a number of individual characteristics, inherent dynamics of the consumer, network of contacts, external influences that may be best captured within the agent based modeling paradigm, especially taken the high availability of individual-centric data from the CRM (Customer Relationships Management) systems that can be directly used to parameterize the agents.

Another traditional example would be epidemiology. Here agents are people that can be susceptible, infectious, recovered, immune to the disease, etc. ABM allows to explicitly capture social networks, contacts between people, their heterogeneity, and therefore to obtain better forecasts of the disease spread.

You however should not think of ABM as of analysis method applicable only to large people communities. There are problems in manufacturing, logistics, supply chains, or business processes where ABM works better than anything else. For example, the behavior of a complex machine that has internal states, inherent timing, different reactions in different modes, etc. may be efficiently modeled by a separate object (agent) with a statechart inside that may be linked to the manufacturing process workflow. The supply chain participants (companies – producers, wholesalers, retailers) have their own goals and rules and can naturally be represented as agents. Agents can even be projects or products within one company have internal states and dynamics, compete for company resources.

AnyLogic support for Agent Based Modeling

Agent based models used in practice are very diverse, and it would be virtually 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 in:

  • Model architecture
  • Agent synchronization ("steps")
  • Space (continuous or discrete), mobility and spatial animation
  • Agent connections (networks, e.g. social networks) and communication
  • Dynamic creation and destruction of agents

From architectural viewpoint, a typical AnyLogic agent based model would have at least two active object classes: Main class for a top-level object where agents would be contained and a class for an agent, e.g. Person. The Person class in most cases would be declared as Agent - this is a special subclass of ActiveObject class that extends the latter with services useful for agent based modeling. A number of agents would be embedded into the Main object, e.g. as a replicated object people of type Person. One or more Environment constructs may be defined at the level of Main to specify properties shared by the agents. You are free however to define other hierarchies in your agent based model, for example you may have companies-agents that contain employees-agents and communicate with consumers-agents.

AnyLogic AB model applets online

alpicon.gif Cardiovascular Disease

alpicon.gif Spread of Influenza

alpicon.gif Alcohol Use Dynamics

alpicon.gif Dynamics of Contagion

alpicon.gif HIV Diffusion and Syringe Usage

alpicon.gif Ward Medication Management (combined SD + AB model)

alpicon.gif Sales Funnel

alpicon.gif Restaurant Business Dynamics

alpicon.gif Candy Promotion

alpicon.gif Patient Flow (AB version)

alpicon.gif Competition in Paper Pulp Market

alpicon.gif Bass Diffusion (AB version)

alpicon.gif Population with Clustering Analysis

alpicon.gif Social Response

alpicon.gif Schelling Segregation

alpicon.gif Urban Dynamics (AB version)

alpicon.gif Supply Chain and Product Diffusion (combined SD + AB model)

alpicon.gif Adaptive Supply Chain

alpicon.gif Supply Chain Management

alpicon.gif Simple Supplky Chain

alpicon.gif Air Defence System

alpicon.gif Aircraft Fleet Planning

alpicon.gif Harvest Simulator

alpicon.gif Canal and Lock

alpicon.gif Wandering Elephants

alpicon.gif Predator Prey (AB version)

alpicon.gif Cellular Phones

alpicon.gif Leader Election

alpicon.gif Rail Yard

alpicon.gif Flocks of Boids

alpicon.gif MMs System (compare AB and DE versions)

alpicon.gif Billard Balls

alpicon.gif Moore Shooters

alpicon.gif Dining Philosophers