Simulation is a general term that is used in many disciplines including performance evalua- tion of computer and telecommunications systems. It is the process of designing a model of a real system and conducting experiments with this model for the purpose of understanding its behavior, or of evaluating various strategies of its operation. Others defined simulation as the process of experimenting with a model of the system under study using computer program- ming. It measures a model of the system rather than the system itself.
A model is a description of a system by symbolic language or theory to be seen as a system with which the world of objects can be expressed. Thus, a model is a system interpretation or realization of a theory that is true. Shannon defined a model as ‘the process of designing a computerized model of a system (or a process) and conducting experiments with this model for the purpose either of understanding the behavior of the system or of evaluating various strategies for the operation of the system.’
Based on the above definition of a model, we can redefine simulation as the use of a model, which may be a computer model, to conduct experiments which, by inference, convey an understanding of the behavior of the system under study. Simulation experiments are impor- tant aspect of any simulation study since they help to:
† discover something unknown or test an assumption
† find candidate solutions, and provide a mean for evaluating them.
Basically, modeling and simulation of any system involve three types of entities: (a) real system; (b) model; and (c) simulator. These entities are to be understood in their interrelation
to one another as they are related and dependent on each other. The real system is a source of raw data while the model is a set of instructions for data generating. The simulator is a device for carrying out model instructions. We need to validate and verify any simulation model in order to make sure that the assumptions, distributions, inputs, outputs, results and conclu- sions, as well as the simulation program (simulator), are correct [1–10].
Systems in general can be classified into stochastic and deterministic types [1–3]:
† Stochastic systems. In this case, the system contains a certain amount of randomness in its transitions from one state to another. A stochastic system can enter more than one possible state in response to an activity or stimulus. Clearly, a stochastic system is nondeterministic in the sense that the next state cannot be unequivocally predicted if the present state and the stimulus are known.
† Deterministic systems. Here, the new state of the system is completely determined by the previous state and by the activity or input.
Among the reasons that make simulation attractive in predicting the performance of systems are [1–3]:
† Simulation can foster a creative attitude for trying new ideas. Many organizations or companies have underutilized resources, which if fully employed, can bring about dramatic improvements in quality and productivity. Simulation can be a cost-effective way to express, experiment with, and evaluate such proposed solutions, strategies, schemes, or ideas.
† Simulation can predict outcomes for possible courses of action in a speedy way.
† Simulation can account for the effect of variances occurring in a process or a system. It is important to note that performance computations based solely on mean values neglect the effect of variances. This may lead to erroneous conclusions.
† Simulation promotes total solutions.
† Simulation brings expertise, knowledge and information together.
† Simulation can be cost effective in terms of time.
In order to conduct a systematic and effective simulation study and analysis, the following phases should be followed [1,4,5]. Figure 13.1 summarizes these major steps.
† Planning. In the planning phase, the following tasks have to be defined and identified:
– Problem formulation. If a problem statement is being developed by the analyst, it is important that policymakers understand and agree with the formulation.
– Resource estimation. Here, an estimate of the resources required to collect data and analyze the system should be conducted. Resources including time, money, personnel and equipment, must be considered. It is better to modify goals of the simulation study at an early stage rather than to fall short due to lack of critical resources.
– System and data analysis. This includes a thorough search in the literature of previous approaches, methodologies and algorithms for the same problem. Many projects have failed due to misunderstanding of the problem at hand. Also, identifying parameters, variables, initial conditions, and performance metrics is performed at these stages.
Furthermore, the level of detail of the model must be established.
† Modeling phase. In this phase, the analyst constructs a system model, which is a repre- sentation of the real system.
– Model building. This includes abstraction of the system into a mathematical relation- ship with the problem formulation.
– Data acquisition. This involves identification, specification, and collection of data.
– Model translation. Preparation and debugging of the model for computer processing.
Models in general can be of different types. Among these are: (a) descriptive models; (b) physical models such as the ones used in aircraft and buildings; (c) mathematical models such as Newton’s law of motion; (d) flowcharts; (e) schematics; and (f) computer pseudo code.
The major steps in model building include: (a) preliminary simulation model diagram; (b) construction and development of flow diagrams; (c) review model diagram with team; (d) initiation of data collection; (e) modify the top-down design, test and validate for the required degree of granularity; (f) complete data collection; (g) iterate through steps (e) and (g) until the final granularity has been reached; and (h) final system diagram, transformation and verification.
In the context of this phase, it is important to point out two concepts:
† Model scooping. This is the process of determining what process, operation, equipment, etc., within the system should be included in the simulation model, and at what level of detail.
† Level of detail. This is determined based on the component’s effect on the stability of the
Simulation of Wireless Network Systems 343
Figure 13.1 Overview of the simulation methodology [1–5]
analysis. The appropriate level of detail will vary depending on the modeling and simula- tion goals.
13.1.1 Subsystem Modeling
When the system under simulation study is very large, a subsystem modeling is performed.
All subsystem models are later linked appropriately. In order to define/identify subsystems, there are three general schemes:
† Flow scheme. This scheme has been used to analyze systems that are characterized by the flow of physical or information items through the system, such as pipeline computers.
† Functional scheme. This scheme is useful when there are no directly observable flowing entities in the system, such as manufacturing processes that do not use assembly lines.
† State-change scheme. This scheme is useful in systems that are characterized by a large number of interdependent relationships and that must be examined at regular intervals in order to detect state changes.
13.1.2 Variable and Parameter Estimation
This is usually done by collecting data over some period of time and then computing a frequency distribution for the desired variables. Such an analysis may help the analyst to find a well-known distribution that can represent the behavior of the system or subsystem.
13.1.3 Selection of a Programming Language/Package
Here, the analyst should decide whether to use a general-purpose programming language, a simulation language or a simulation package. In general, using a simulation package such as NS2 or Opnet may save money and time, however, it may not be flexible and effective to use simulation packages as they may not contain capabilities to do the task such as modules to simulate the protocols or features of the network under study.
13.1.4 Verification and Validation (V&V)
Verification and validation are two important tasks that should be carried out for any simula- tion study. They are often called V&V and many simulation journals and conferences have special sections and tracks that deal with these tasks, respectively.
Verification is the process of finding out whether the model implements the assumptions correctly. It is basically debugging the computer program (simulator) that implements the model. A verified computer program can in fact represent an invalid model; a valid model can also represent an unverified simulator.
Validation, on the other hand, refers to ensuring that the assumptions used in developing the model are reasonable in that, if correctly implemented, the model would produce results close to these observed in real systems. The process of model validation consists of validating assumptions, input parameters and distributions, and output values and conclusions. Valida- tion can be performed by one of the following techniques: (a) comparing the results of the
simulation model with results historically produced by the real system operating under the same conditions; (b) expert intuition; (c) theoretical (analytic) results using queuing theory or other analytic methods; (d) another simulation model; and (e) artificial intelligence and expert systems.
13.1.5 Applications and Experimentation
After the model has been validated and verified, it can be applied to solve the problem under investigation. Various simulation experiments should be conducted to reveal the behavior of the system under study. Keep in mind that it is through experimentation that the analyst can understand the system and make recommendations about the system design and optimum operation. The extent of experiments depends on cost to estimate performance metrics, the sensitivity of performance metrics to specific variables and the interdependencies between control variables [1,4,5].
The implementation of simulation findings into practice is an important task that is carried out after experimentation. Documentation is very important and should include a full record of the entire project activity, not just a user’s guide.
The main factors that should be considered in any simulation study are: (a) Random Number Generators (RNGs); (b) Random Variates or observations (RVs); (c) programming errors; (d) specification errors; (e) length of simulation; (f) sensitivity to key parameters; (g) data collection errors in simulation; (h) optimization parameter errors; (i) incorrect design;
and (j) influence of initial conditions.
The main advantages of simulation are [4,5]:
† Flexibility. Simulation permits controlled experimentation with the system model. Some experiments cannot be performed on the real physical system due to inconvenience, risk and cost.
† Speed. Using simulation allows us to find results of experiments in a speedy manner.
Simulation permits time compression of a system over an extended period of time.
† Simulation modeling permits sensitivity analysis by manipulating input variables. It allows us to find the parameters that influence the simulation results. It is important to find out which simulation parameters influence performance metrics more than others as proper selection of their operating values is essential for stable operation.
† Simulation modeling involves programming, mathematics, queuing theory, statistics, system engineering and science as well as technical documentation. Clearly, it is an excellent training tool.
The main drawbacks of simulation are [4,5]:
† It may become expensive and time-consuming especially for large simulation models.
This will consume long computer simulation time and manpower.
† In simulation modeling, we usually make assumptions about input variables and para- meters, and distributions, and if these assumptions are not reasonable, this may affect the credibility of the analysis and the conclusions.
† When simulating large networks or systems, the time to develop the simulator (simulation program) may become long.
Simulation of Wireless Network Systems 345
† It is usually difficult to initialize simulation model parameters properly and not doing so may affect the credibility of the model as well as require longer simulation time.