Loading in 2 Seconds...
Loading in 2 Seconds...
This tutorial will talk you through a very basic workbench queueing simulation. The queueing system modelled is of customers entering an infinite capacity queue at non-random intervals . That is their arrival times are precisely known.
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
workbench queueing simulation.
The queueing system modelled is of customers
entering an infinite capacity queue at non-random
intervals. That is their arrival times are precisely known.
This will enable us to understand precisely what happens
when we run the model. The random case isn’t any more
difficult and will be dealt with later.
Similarly the length of time taken to serve them
We set up the model and generate and check
Just follow the screenshots.
Right click on the icon in the workspace and choose ‘specification’
Double click on the module icon and a blank workspace appears.
Workbench allows us to put many sub-modules inside a module. This is useful
for simulating complicated systems. We will create one sub-module into which we
will place our queueing system. Click on the icon labelled submodel node
Now click in the white workspace area to place the sub-module..
We have to give it a name so ……..
opens give it a name.. When you are finished double click on the sub-module.
Another blank workspace opens. We can now start to build a queuing system.
One or more customers will be
created every time unit according to the new transactions rule below.
You can choose seconds, hours, or arbitrary ‘module units’.
Give it a name…
Specify the number of new customers created each time-unit.
Here I have chosen a constant, 1, but I could have
decided on a random process, e.g. poisson(0.5), a Poisson
process with mean equal to 0.5… more about them in a later
From the menu choose the ‘source node’ icon and place one in
the workspace. Right click on it and choose specifications..
Now place a sink-node. Right click to specify it…
How long does it take to serve
Here I have set it as a constant, 2. A later demo will explain how
to make the service time an exponential random variable.
And now place a service node, where the queueing occurs. Again right click
to specify ….
Having clicked on the topology arc we click near the source node until we find a
blue spot. Click on this and drag an arc over to the blue spot near the service node.
We have now joined two of the nodes.. Now draw an arc from the service node to the sink
Our model has been physically built. Now we need to tell Workbench what data we would like
to collect. Open the specifications for the service node and open the ‘type’ tab.
Choose the statistics tab and right click in the space below to specify a statistic.
Choose the insert a row option.
Click on ‘class’ to specify what statistic you would like to collect. You can choose from a
Variety of statistics. We will choose population and qpopulation.
These are stats on the number of customers in the system and the number of customers in the
queue throughout the simulation.
Give them a name so that they are easily recognised in the final report..
This is more important in more complicated models where you are collecting data from many
nodes and don’t want to get confused between them.
Almost ready to run the model, but we have to tell Workbench how long to run it for.
Choose ‘Edit Main’ from the ‘Model’ menu at the top of the screen.
Do we want a warm-up period ( to allow the model to reach steady state) ?
In general you should choose yes for this if you are trying to replicate analytical results
which are predicated on the system having reached steady state.
You can specify how many time-units count as the warm-up period. We won’t need one
for our simple model.
Workbench lets you know how quickly
things are progressing by issuing reports as
You can specify how often these reports
should be made.
How long do you want to run your model for?
You can specify a fixed number of time-units.
Or you can run it until some sort of convergence
(in the form of an ever more tightly bounded
confidence interval) is observed.
We fill in data about the length of time we want to run the simulation for.
Now we are ready to build the code.. Chose ‘build’ from the ‘model’ drop down menu.
The first time we do this we are told that the module has not been explicitly included in
Our model yet and we are asked whether we would like to continue… press yes
You are asked to specify the name and location of the workbench model (.wb file).
Hopefully it compiles without errors… if there are any errors they will be reported here
and you have to go and debug your model..
Now press the green arrow on the toolbar … this will run the program..
The model runs… Note that it reports every 2 time units as previously specified, so we know
that it is running correctly and hasn’t crashed..
To examine the data we choose the ‘view results’ option from the toolbar menu.
Here is the report that is generated.. Note that we have statistical information about the two
quantities that we stipulated, population and queue population. It suggests here that the mean
population in the system was 2.9, while the mean queue size was 2. We can verify this easily..
Time = 0
Time = 1
Time = 2
Time = 3
Time = 4
Time = 5
Time = 6
Time = 7
Time = 8
Time = 9
Time = 10
It is a simple matter to keep track of the system in this case. People join at the rate of 1 per second
while people leave every 2 seconds. So the system is empty for the first second, and then a person
enters and immediately begins to get served. At t = 2 another person enters and joins the queue
while the first person is still getting served etc… What is the average number of people in the system?
time unit of action. In this period there were an average
of zero people in the system (and zero in the queue).
So at t=1: The average population during the first time unit
was zero… while the average queueing
population was also zero.
A single customer arrives just at the end of the first
time unit and is present for the whole of the second one.
So at t = 2: The average population during the first 2 time
units was a half… while the average queueing
population was zero.
We can continue on in this fashion until we get to t = 10.
So at t= 10 we see that there were
0 customers present for the first time-unit.
1 customers present for the second time-unit.
2 customers present for the third time-unit.
2 customers present for the fourth time-unit.
3 customers present for the fifth time-unit.
3 customers present for the sixth time-unit.
4customers present for the seventh time-unit.
4 customers present for the eighth time-unit.
5 customers present for the ninth time-unit.
5 customers present for the tenth time-unit.
The average number of customers present over the first 10
Seconds is thus 29/10 = 2.9 as reported in our Workbench
Results. Verify for yourself the qpop statistic as shown.