Simulation modeling is a type of computer modeling that uses system analysis methodology. Designing a generalized model reflecting all aspects of the simulated system is a central procedure, and computational experiment is a key method of system study.
Simulation models are built to be an adequate representation of the complex system under study. The mathematical or logical model below is a programmed algorithm of how the system changes its state with time.
The set of computer experiments using the model is often called the system simulation. Each experiment in the set is done with a model of the same system, but using a different configuration, different characteristics or different external factors.
Multiple model runs with stochastic parameters and further statistical analysis of the model’s output play a significant role in this methodology.
Decisions on which system configuration is best and with what parameter it is more efficient can be made based on model output processing.
In a lot of cases, it is difficult to get results using only formal methods; expert involvement in the decision-making process is needed. He plays an active role of adding details into the problem definition and the model, targeting computational experiments, creating alternative system configurations, selecting efficiency criteria and measuring alternative system configurations.
The simulation model makes decision-makers’ work significantly more advanced, giving decision-makers a convenient risk-free environment for experimentation. Simulation modeling is an interactive process: you start with a general model and build it up, gradually adding details. When the system changes, you apply these changes to the model that plays the role of digital twin of the system.
The simulation model does not give optimal decisions, unlike analytical solvers used for classical optimization tasks. The main advantage of this model is that it allows experts to answer the question of “What if?” using computational experiments. Analytical optimization (LP/MIP) and simulation often work in pair: firstly we optimize, skipping many details; then we add them and simulate the reality.
In the last decade, a lot of work was done to apply simulation to an opposite task: “What is need for?” This may also be called simulation-based optimization; in this case, a heuristic optimizer varies model parameters, trying to find optimal parameters that are set to meet the optimization goal, e.g. to minimize system operating cost or mission time.
Ideally, model developers should create such experiments that help to find model structure, and parameters that avoid the initial problem or make it negligible.
Simulation application area is practically unlimited: from testing different system structures, finding bottlenecks, forecasting and scheduling to risk assessment.