Advances in technology invariably lead to construction of systems with additional layers of complexity being wrapped around more primitive but equally complex sub-systems. In the future, these systems may then, in turn, become sub-systems of larger, even more complex, super-systems. Simulators provide a means by which such abstract and real-world systems may be understood and evaluated by duplicating the behavior of these systems through hardware and software.
A computer simulation is a computer program that uses computation to construct a representation of the behavior of a particular system over time. In other words, computer model is a digital twin of certain object or process in the objective reality and computer simulation is putting this digital twin into an action.
One of the primary advantages of simulators is that they are able to provide users with practical feedback when designing real world systems. This allows the designer to determine the correctness and efficiency of a design before the system is actually constructed. Consequently, the user may explore the merits of alternative designs without actually physically building the systems.
Another benefit of simulators is that they permit system designers to study a problem at several different levels of abstraction. By approaching a system at a higher level of abstraction, the designer is better able to understand the behaviors and interactions of all the high-level components within the system and is therefore better equipped to counteract the complexity of the overall system.
There are several reasons why the computer simulation should be considered as an option for enhancing the knowledge of the particular system, few of them are mentioned below.
Observing an operational system may be
- Too expensive (e.g., computer chips)
- Too dangerous (e.g., forest fires or chemical spills)
- Too disruptive (e.g., traffic signal timing)
- Too time consuming (e.g., weather)
- Not possible (e.g., creation of the universe)
- Morally or ethically unacceptable (e.g., spread of a disease)
- Parts of the system may not be observable (e.g., internals of a silicon chip or biological system)
Simulations are used to:
- Analyze systems before they are built
- Reduce number of design mistakes
- Optimize design
- As a replacement for purely mathematical representations to explore physical systems
- Analyze operational systems
- Create virtual environments for training, entertainment
There are a lot of ways how to implement computer simulation, starting from programming technique to user interaction interface. But all computer simulation can be described by such bipolar classifications:
- Nature – Stochastic or Deterministic
- State – Steady-state or Dynamic
- Time concept – Continuous or Discrete
- Execution – Local or Distributed
A stochastic simulation is a simulation that traces the evolution of variables that can change stochastically (randomly) with certain probabilities.
Figure 1 For example, Monte Carlo simulation
Deterministic simulations have known inputs and the results are unique set of outputs.
Figure 2 For example, electro engineering
Steady-state models perform a mass and energy balance of a stationary process (a process in an equilibrium state) it does not depend on time.
Figure 3 For example, finite state automata of coffee machine
Dynamic simulation is an extension of steady-state process simulation whereby time-dependence is built into the models via derivative terms i.e. accumulation of mass and energy.
Figure 4 For example, Simulation of a proton-proton collision
Continuous time concept
Continuous Simulation refers to a computer model of a physical system that continuously tracks system response according to a set of equations typically involving differential equations.
Figure 5 For example, finite state automata of coffee machine
Discrete time concept
Discrete simulation is based on events, where each event occurs at a particular instant in time and marks a change of state in the system.
Figure 6 For example, Bank customer service
Local computer simulation usually consists of a single model and is executed on a single instance.
Figure 7 For example, wind flow simulation
Distributed simulation refers to the technology concerned with executing computer simulations over computing systems containing multiple instances.
Figure 8 For example, Battlespace Simulations
Computer simulation in practice
So far, we have successfully used computer simulation on several occasions.
One example where we used Business Process Model is precast manufacturing optimization process analytics simulation.
Figure 9 Precast manufacturing BPM
This model explains, how the optimization algorithm works and with the BPMN simulation tool we can find bottlenecks and other flaws in the process, if there are any.
Another interesting example is our prefabricated concrete factory’s warehouse simulation. In this case, we have built a discrete event simulation model that simulates warehouse capacity based on many variables (precast element production rate, crane movement speed, etc.).
Figure 10 Prefabricated concrete factory’s warehouse simulation
Figure 11 Prefabricated concrete factory’s warehouse simulation 3D view
We see big potential and benefits from computer simulation at the company. However, the implementation of such simulation is rather difficult and challenging, therefore it is advisable, at first, to assess the problem and potential gains from the computer simulation. It is definitely a powerful tool, but complex and cost-intensive.