What is Simulation Modeling?
Simulation Models seek to demonstrate what happens to environments and agents within them, over time, under varying conditions.
Simulation Modeling is the process of creating and analyzing these models: digital twins or virtual counterparts to physical models or real-world systems.
There are many different ways of constructing Simulation Models, and chief amongst these methods is Agent-Based Modeling. In platforms such as HASH, various techniques for Simulation Modeling can be combined — for example, Monte Carlo experiments can be run within agent-based or dynamical system models, alongside forms of Finite Element Analysis.
Is perfect simulation possible?
Television shows like Westworld point to the powerful potential – and perils – of “perfect simulation”.
Simulations are never, however, perfect replicas of the real-world ‘target systems’ they seek to represent, but are instead abstractions.
This is so because in nature, no system exists in isolation (formally known as being a ‘closed system’). In the real-world all systems are ‘open’, and influenced by exogenous forces.
To perfectly model anything, therefore, in all foreseeable conditions, would require a model as complex as the universe itself — along with the exact same number of atoms to go along with it. Clearly this infeasible, on any timeline.
With specific goals and scope, along with more intelligent forms of abstraction, simulation models can however be created which offer huge value to organizations. Good simulations improve decision-making, offer safeguards against unexpected outcomes, and allow for better understanding of hard-to-grok complex systems.
How are simulations used?
Simulation Modeling helps organizations understand and optimize systems that are too large or complex to be reasoned with by humans. It also allows for much faster, automated exploration of the “possibility space” of conceivable circumstances, scenarios and environments in which a system might find itself. The “target systems” of simulations may vary greatly. Simulation modeling is used in the design of high-tech products like aircraft and satellites, as well as the construction of social networks, organizations, political structures, marketplaces, processes and protocols.
By providing an understanding of how interdependencies within systems might impact one another, over many thousands or millions of runs, the circumstances under which performance may be improved, or under which a system may fail, can be identified and corrected.
Simulation or Model — The project containing the simulation code, other logic, and data that drives a simulation run.
Simulation Run — A simulation run in HASH is any individual execution of a simulation that occurs. A simulation run typically consists of many time-steps.
State — State is the name given to the overall output of a simulation run on any given time-step within it. States generated by a simulation run can be saved, or the simulation run conditions that produced them saved for later recreation on demand.
Experiment — An experiment in HASH is the name given to the structured definition of parameters that result in two or more simulation runs. A basic experiment might be a simple ‘run comparison’ (A vs B), in which two simulation runs are compared to one another side-by-side. Vastly more complex experiment types are supported within HASH.
Experiment Run — An experiment run in HASH is any individual instance of an experiment being executed. A single experiment run may therefore refer to multiple simulation runs. If an experiment has been fully executed, the experiment run is said to be ‘completed’, otherwise it is ‘partial’ (terminated incompletely), ‘in progress’ (still processing) or ‘pending’ (awaiting processing).
Are Simulation Runs Reproducible?
Where all behaviors are pure functions, and globals are fixed, results will be perfectly reproducible, provided the same simulation run parameters are passed in.
If a model contains random elements (stochasticity) or relies on external services (e.g. 3rd party APIs), no guarantees can be made around future reproducibility, even in the simulation logic remains unchanged, because the behaviors were not pure functions to begin with. Nevertheless, original simulation run results can be saved and preserved in HASH for future analysis and verification.