An Introduction to Simio for Beginners

Since we know the average time between arrivals is 10 minutes and the average service time is 9 minutes, we can easily answer the first question. The server will be busy 90% of the time, and idle 10% of the time. However answering question 2 is not as simple and depends upon the underlying variation in the system. If we have no variation (i.e. entities always arrive exactly 10 minutes apart, and the service time is always 9 minutes), then no entity will ever wait for service. However as soon as we add variation to the system (e.g. individual entities take more or less than 9 minutes to process, but still average 9 minutes) we will begin to encounter waiting times. If we make our arrivals random (exponentially distributed) with an average time between arrivals of 10 minutes and keep our service time a constant 9 minutes, our average waiting time before starting service will be 40.5 minutes. If we also make our service time random (exponentially distributed) then our average waiting time doubles to 81 minutes. If our goal is to increase our utilization of the server, we can do so only at the expense of the average waiting time for the entities. For example if we have variation in both the arrival and service process and decrease our time between customers to 9.5 minutes (9.46% utilization), our waiting time will nearly double to 158 minutes. Increasing utilization by this small amount has a huge negative impact on customer waiting time. However if we can find a way to eliminate the variability in this system (e.g. by scheduling arrivals, eliminating variation in processing, etc.) this large waiting time drops to zero.

This simple example illustrates the important role that randomness plays in our systems. If you want to understand and improve your systems you must accurately model the variations that are inherent in the system. Static tools such as spreadsheets cannot account for the impact of variation on these types of systems. If you are trying to improve the system, anything you can do to reduce variability (e.g. reducing the variation in processing time, or scheduling arrivals) will have a significant impact on the system performance.

Modeling of random processes such as inter-arrival and service times is a subject for which entire books have been written (see e.g. Law and Kelton, Simulation Modeling and Analysis, McGraw Hill, New York, NY). As a beginner to simulation there are some very basic things you need to know to get started. All simulation products have a way to automatically generate random samples from a variety of distributions such as exponential, normal, lognormal, uniform, triangular, gamma, and beta. You specify random times in your model by entering a name of a distribution along with its associated parameters. The exact parameters are distribution dependent and may include things like mean, standard deviation, and minimum/maximum value. In many models you can get by using just the exponential and triangular distributions.

In most cases the inter-arrival times are represented using the exponential distribution, which has a single parameter that specifies the mean inter-arrival time. This has been shown to properly represent arrival processes that are purely random and independent. In Simio you can specify a random sample from an exponential distribution as Random.Exponential(mean), where mean is a numeric value specifying the mean time between arrivals (e.g. Random.Exponential(10)).