## 2 Related Work
### Modeling and Simulation of Complex Systems
However, nowadays most models are executed on a computer using spreadsheets, programming languages or specialist simulation software [15; 16]. Simulation is the result of solving the equations of a model, whereas a computer simulation is the result of having a simulation running on a computer [18]. Since nowadays most simulations are executed on a computer, simulation usually refers to a computer simulation. The purpose of simulation is to improve certain target values by varying the parameters with the aim of reaching findings which are transferable to reality [15; 19]. Therefore, simulation means running experiments with the model, differentiated by alternatives in a model's logic and/or input data [16; 20]. Input data are typically provided by data sets which are the totality of all data available and necessary for simulation: data for describing reality, which are either recorded by performing measurements and observations of the real system or specified as target values for a planned system [15]. There is a difference between the concepts of static simulation, which imitates a system at a point in time, and dynamic simulation, which imitates a system as it progresses through time. The term simulation is mostly used in the context of dynamic simulation [12; 16]. The term simulation is used extensively in manufacturing, ranging from visual simulation of factories or individual machine tools to the stochastic simulation of entire supply networks [19]. The need for simulation results from the fact that many manufacturing systems are interconnected and subject to both variability and complexity (combinatorial and dynamic). In contrast to other modeling approaches (e.g., linear programming or heuristic methods), simulation models can represent the variability, interconnectedness and complexity of a system, and, therefore, predict the system performance with a simulation. Consequently, alternative system designs can be compared and the effect of alternative policies on the system performance determined [16]. Furthermore, simulation models typically need fewer assumptions and are more transparent than other modeling approaches [16]. In addition, compared to experiments with real systems in laboratories or pilot plants, simulation often allows for a time and cost reduction, control of the experimental conditions and even research on non-existing real systems [16]. Therefore, simulation can provide support in the planning, implementation and operation phase of a manufacturing system [21]. However, there are also certain disadvantages of simulations to consider [16]. First, modeling can also be very time-consuming. Second, the required software infrastructure can be expensive. Third, there is a certain risk for overconfidence, meaning that anything produced on a computer is seen to be right. Therefore, when interpreting the results from a simulation, consideration must be given to the validity of the underlying model and the assumptions and simplifications that have been made. The steps for modeling and simulation as described by [14; 16; 22; 23; 24] are shown in Figure 2.  
Simulation approaches can be differentiated by their modelling of the progress of time in time-slicing simulation, discrete-event simulation and continuous simulation [16; 19]. Discrete-event Simulation (DES), as often used to simulate manufacturing systems, only represents the points in time when the state of the system changes. Therefore, the system is modelled as a series of events as instants in time when a state change occurs. The state of the system is only determined when an event takes place. The time of the simulation run, thus, jumps from one event to the next, whereas the interim state of the system is either assumed to be unchanged or nondeterministic [16; 19; 25]. Examples of events are incoming customer orders or machines starting to produce [16]. Figure 3 describes the method of DES. Steps (c) to (e) are repeated until the events for the entire timeframe of interest have been generated.