System Dynamic Simulation
“System dynamics is a perspective and set of conceptual tools that enable us to understand the structure and dynamics of complex systems. System dynamics is also a rigorous modeling method that enables us to build formal computer simulations of complex systems and use them to design more effective policies and organizations. Together, these tools allow us to create management flight simulators-microworlds where space and time can be compressed and slowed so we can experience the long-term side effects of decisions, speed learning, develop our understanding of complex systems, and design structures and strategies for greater success.”
John Sterman, “Business Dynamics: Systems Thinking and Modeling for a Complex World”
The System Dynamics (SD) methodology is typically used in long-term, strategic models and assumes a high level of aggregation of the objects being modeled. People, products, events, and other discrete items are represented in SD models by their quantities so they lose any individual properties, histories or dynamics. If this level of abstraction is appropriate for your problem, SD may be the right method to use. However if individual details are important, you can always re-conceptualize all or part of your model using Agent Based or Discrete Event (process-centric) methods without ever leaving the AnyLogic environment.
SD Modeling in AnyLogic
AnyLogic supports the design and simulation of feedback structures (stock and flow diagrams and decision rules, including array variables AKA “subscripts”) in a way most SD modelers are used to. You can:
Define stock and flow variables one by one or using a “flow tool”
Use automatic “code completion” in formulas
Define “shadow” variables for better readability of your model
Use table functions (look up tables) with step, linear, or spline interpolation
Define dimensions of both enumeration and range types
Define sub-dimensions and sub-ranges
Define array variables with an arbitrary number of dimensions
Use multiple formulas for different parts of an array variable
- Use both SD-specific and standard Java mathematical functions
Hierarchical and object-oriented SD modeling
AnyLogic naturally offers all the benefits of the OO approach to system dynamics modelers. You can define complex models in a hierarchical manner where logically separate parts of the stock and flow diagram are contained in different active objects and expose only their interface variables (as inputs or outputs). Moreover, you can develop a frequently met SD pattern, embed it in an active object class and reuse it as many times as you wish within one model or across models.
Creating flight simulators. Publishing SD models on the Web
An SD model, like any other model in AnyLogic, can be made visual and interactive. You can add charts or arbitrary graphics to animate the model and you can add sliders, buttons, and text inputs to control the model's execution at run time. AnyLogic supports more graphics tools and controls than any other SD tool.
Since AnyLogic models are 100% Java applications, they can readily be published as web applets. Other tools require you to set the model up on a web server and maintain the interaction between the remote client interface and the model. With AnyLogic, the whole model will automatically run on the client machine within the applet. You can just send a ready-to-run simulation with GUI and experimentation capability to anyone with a browser. You obviously can choose which parts of the model you wish to expose to your users. Many SD applets generated by AnyLogic are published on this website – go try them out!
Combining SD models with agent based and discrete event models
AnyLogic is the only tool that allows you to combine SD model components with components developed using agent based or discrete event methods. This can be done in a number of different ways. For example, you can model the consumer market using SD and the supply chain using the AB approach. You can model the population of a city in a disaggregated way (as agents) and the underlying economic or infrastructural background in an SD style. You can even put SD diagrams inside agents. For example, SD can model the production processes inside a company, whereas the company may be an agent at a higher level. Technically, interfaces and feedbacks between SD and AB or DE are very easy. Some SD variables can be used in the decision logic of agents or be parameters of process flowcharts, and the latter in turn may modify other SD variables.
See AnyLogic system dynamics model applets in the online model gallery.