Uploaded by 27japheth

Simul8

advertisement
Key Features of Model
Model description
This garage model has been designed for a repair bay for repairing two types of police car, working hours 9am5pm every day. Unscheduled car can come into queue anytime, but they would have to wait until the working
hours start if the garage was closed. Scheduled car will come as a batch every day at the opening time of garage,
each batch will have two to four cars (based on the distribution). There is only one mechanic and one repair bay
in the garage. Unscheduled car can interrupt any scheduled car in process, but it cannot be interrupted by
another unscheduled car. The interrupted scheduled car will be continued to be worked on for the remaining of
its service time after the unscheduled car is done.
The physical garage should have one entrance, one repair bay, one exit, one mechanic and cars with two type
of urgency. However, in order to build this model into simul8, a couple of things will be added but it will
eventually work in the same logic. Some of the key set up has been listed below.
Model Set Up
▪
▪
▪
▪
▪
Two start points have been set up, for unscheduled car arrival and scheduled car arrival, they both
follows by a queue block. At the end point of this model, unscheduled car and scheduled car will be
sent to their respective end points.
Unscheduled car will first go into a “dummy work centre” after the queue, which distribution will be
set to fixed with 0 value. The purpose of this dummy work centre is to fulfil the requirement that the
interruption in main repair bay require the car with higher priority to come from another work centre.
Unscheduled car will not be repair here but will be sent to the main repair bay after the dummy work
centre. So, there is no need to assign an external resource (i.e. mechanic) to this work centre.
Scheduled car will go into the main repair bay after the queue, which distribution will be set to fixed
with value “due”. Due is a special label that “carries” their service time into the repair bay but will be
updated with remaining working time if the interruption occurs. This will be explained explicitly in the
label section later. All the repairing job will only be taking place in this repair bay.
An external queue block has been linked to the repair bay, to store the unfinished scheduled car
temporarily if it was interrupted by an unscheduled car. The scheduled car will then return to the repair
bay to be continued worked on for the remaining of its service time.
An external resource, i.e. mechanic has been set up and added only to the repair bay. The number of
mechanics is one.
Time Set Up
▪
▪
▪
▪
The global running time has been set to 24 hours, with start time 00:00 and duration 24 hours. Time
unit will be hours for the whole model.
Warm up period will be set to 480 hours (i.e. 20 days), since this would be the simulation of production
line over a year, we only collect results once it reaches the steady state. Results collection period would
be one year.
Day shift has been set up from 00:00 until 08:00. However, the time 00:00 in this model correspond to
09:00 in the garage working time. Likewise, after 8 hours of working hours, 08:00 in the model
correspond to 17:00 in garage working time. Night shift has also been set up from 08:00 until 24:00
(model time). The repair bay and mechanic will both be working on day shift.
The travel time have been set to zero in this model, because we do not know how large the garage is
yet. It can be added to the model in the future if we have the information. For example, the travel time
of cars from repair bay to end point is zero.
Labels Set Up
The are three types of labels created in this model:
▪
▪
▪
Priority label – This label has been assigned to three objects – unscheduled car arrival (with fixed value
2), scheduled car arrival (with fixed value 1) and repair bay (no action needed). This label allows the car
with higher label value to be repaired first. The point of adding repair bay under priority label without
any action is to allow the cars to be routed out to their respective endpoint, based on their label value.
Due Label – This label will be “carrying” the service time of each cars at the beginning. If any interruption
took place, the value on its label will be updated by its remaining service time. This label has been
assigned to two objects, which are Unscheduled car arrivals and Scheduled car arrivals. As the function
of this label is to “carry” the service time of each work item, the value of this label will be set to the
distribution of the service time of each scheduled and unscheduled car at the respective start point.
The distributions profile has been set up (will be discussed in the dataset section) and can be used
directly. When cars enter the repair bay, their service time will be determined by the value on due label.
Some of the due label value of scheduled cars do not reflect their service time, but remaining service
time after interruption, if the car was interrupted.
Image:Class label – This label will give the cars an image label when going through the simulation, which
will increase the readability for the model with multiple types of work item. This label has been assigned
to two objects - Unscheduled car arrival and Scheduled car arrival. In our model, the work item type
can be categorized as scheduled car and unscheduled car. Scheduled car will have an image label of
“smaller car” when moving through the simulation routing arrow, rather than a little red dot. Likewise,
unscheduled car will have an image of “bigger car”. This can be clearly observed when running the
simulation in a slower pace.
Note: Although in the discussion these labels have been assigned to the object such as arrival points in the
simulation, a more logical interpretation would be – The work items will “receive” these labels at the arrival
points, and some values/text will be “written” on their labels, then the work items would “carry” one/multiple
labels with some value on it throughout the simulation. For example, work item (scheduled car) “receive” a due
label at arrival point, and a value (service time based on the distribution) will be “written” on this label. The label
will be attached to the work item (not any object such as arrival points or repair bay) until the endpoint.
Trial Set Up
The results collected from this model is based on base number 30 and 50 runs times in trials. However, one may
choose any base number to obtain random results. Although greater number of runs times may take longer time
to run simulation, but our model size is still relatively “small”. Hence, the model will be run 50 times in trials in
order to make sure our model result is relatively accurate.
Results
Question 1: The 95% confidence interval for the utilisation of the mechanic is 89.17% - 89.82%. (Obtained via
result summary)
Question 2:
Minimum
Average
Maximum
Number of scheduled cars waiting for service
0
1.09 ≈ 1
8
Waiting time of scheduled cars for service (hours)
0
8.13
51.65
Number of unscheduled cars waiting for service
0
0
1
Time schedule cars spent with the mechanic (hours)
1.5
2.0
2.5
Time scheduled cars spent in garage, including interrupted
time (hours)
1.50
13.46
53.23
Question 2: Results analysis
▪
▪
▪
▪
Number of scheduled cars waiting for service and waiting time of scheduled cars for service can be
easily obtained from the result of queue properties. The values are reasonable. The maximum queueing
time for scheduled car may seem high because the global running time is 24 hours, it took the overnight
waiting time into account. Especially there are few unscheduled cars which might take more than one
working day to be repaired, and scheduled car would have to wait overnight in that case. This result is
acceptable if the global running time is unchanged. In real life model, it would also be realistic to take
the overnight waiting time into account because the customer do have to wait for that long before they
can collect the car.
The number of unscheduled cars waiting for service can be easily obtained from the result of queue
properties. The values are reasonable, as they can interrupt the scheduled car in process. There
wouldn’t be any unscheduled car line up in queue given their current arrival rates.
The time scheduled cars spent with the mechanic can be obtained via two methods. One is to set up
the work type label and work time label (which will not be discussed here). Another method is to
“capture” the due label value before the car go into repair bay. Since due label records the remaining
service time only if the car has been interrupted, it can also be interpreted as the values on due label
simply represent the service time (time of cars spent with mechanic) if no interruption had ever taken
place. These values can be “captured” by copying an identical scheduled car arrival points (with same
set up, labels and distribution), then follows by a queue block. The service time (time of cars spent with
mechanic) is recorded in the due label (check out queue content). It can then be easily extracted to
excel and compute the minimum, maximum and average time. Although the first method will not be
discussed here, the results from both methods and the sample dataset of scheduled service time are
the same. Hence, the values here are reasonable.
The time of scheduled cars spent in the garage can be obtained from the end point result. It is
reasonable when comparing to the other results. Some of the cars spent around 51 hours in the queue,
so the maximum time of car spent in the garage would just be adding it up with the service time and
waiting time amid interruption. Some of the cars did not have to queue or be interrupted, so the
minimum time of cars spent in garage would just be the same as minimum car service times (1.5 hours).
Question 3: Some “What If” type queries?
o
✓
o
✓
o
✓
Scenario 1 – What if the number of repair bay and mechanic both increase to 2?
Potential result and recommendation – After running the simulation with two repair bay and mechanic,
the result shows a significant reduction in scheduled car queueing time. The maximum queueing time
would be around 5 hours, which is a good improvement for garage efficiency. However, if arrival rates
remain unchanged, it will not necessarily increase the garage profit, as adding extra repair bay and
mechanic would increase the cost, and the efficiency of mechanic also reduced. If the garage owner
decides to do so, he might be able to increase the profit by accepting more appointment for scheduled
car under one condition (at least) - the current demand is greater than supply. Alternatively, he might
want to do it to increase the customer satisfaction for long term goal/ profit.
Scenario 2 – What if the arrival rate of scheduled car changes? The range of number of scheduled cars
for each batch is two, three and four. What if the rate increase to three, four and five respectively? (i.e.
each batch will have minimum three cars and maximum five cars, with similar distribution applied).
Assumed the demand is greater than supply.
Potential result and recommendation – We decided to experiment with the arrival rate of scheduled
car because it might be not realistic to control the arrival rates of unscheduled car. If the rate increases,
the simulation result shows that more than 200 cars are currently in queue, and average waiting time
is up to 850 hours. This obviously will not work because customer would leave the queue in that case.
Scenario 3 – What if scenarios 1 and 2 are combined?
Potential result and recommendation – The simulation result shows approximately extra 400 cars will
be serviced. The maximum waiting time has reduced to approximately 7.2 hours, and average 1.31
hours, which is a significant improvement from the original model. This scenario would be a realistic
option to improve the garage efficiency and increase the profit.
Model validation
In order to conduct model validation, some result/dataset will be compared to the given datasets to make sure
they behave the same as the system in real world and generate a sensible result.
Number of scheduled cars at
arrival
Number of unscheduled cars at
arrival
Average
service
time
for
scheduled cars (hours)
Average
service
time
for
unscheduled cars (hours)
Result from past/given dataset
1088
Results generated from model
1096
184
184
2.0
2.0
2.34
2.14
The results generated from the model are close to the results obtained from given dataset, which implies that
the model is solving the problem correctly and will generate a sensible result, even if the model has run by
other random numbers.
Dataset Analysis
The datasets show different distribution for arrival times and service times for both scheduled car and
unscheduled car. Different methods have been used to find out their distribution and implement it in the simul8
model, which have been summarised below.
Scheduled car arrival time- The scheduled car come in at the beginning of each working day, which is 9am, i.e.
one batch come in for every 24 hours. At the start point of scheduled car, the distribution has been set to “fixed
distribution” with 24 hours of interarrival time. Batching method has been applied here, since there are two to
four cars come in each day. The data will speak for itself by implementing empirical distribution. For Loop in
Python has been used to calculate the frequency of each number appearance (2, 3 and 4). Then the dataset was
converted into relative frequency (discrete), in order to construct an empirical distribution in simul8. The
histogram in the discrete form of this can be found in distribution properties. This probability profile name has
been saved as “Scheduled_arrivals” and can be used with the batching functionality (i.e. distribution in batching).
Unscheduled car arrival time- Interarrival time of this dataset has to be worked out first and then convert it into
hours in unit. Multiple Python packages/modules have been used in order to fit a normal distribution to this
dataset. The detailed coding will not be shown here. The result suggests that the dataset will fit normal
distribution appropriately, with mean approximately equal to 48, and standard deviation approximately equal
to 7. This is the probability for unscheduled car interarrival time and implemented directly in arrival point.
Scheduled car service time– The method to implement distribution for scheduled car service time is like the one
used by scheduled car arrival time – implementing empirical distribution. Except this time, the dataset is already
in its ready form to generate a histogram, which can be done in Excel. An empirical distribution (continuous) can
be implemented by taking its upper limit and relative frequency of each interval. A detailed probability profile
distribution can be found in the distribution properties. The probability profile name has been saved as
“Scheduled_service” and can be added to the value of due label.
Unscheduled car service time– The method of implementing distribution for unscheduled car service time is by
using empirical distribution, just like the service time of scheduled car. The dataset is already in its ready form
to generate a histogram in Excel. The empirical distribution can be implemented by taking its upper limit and
relative frequency of each interval. A detailed probability distribution can be found in distribution properties.
The probability profile name has been saved as “Unscheduled_service” and can be added to the value of due
label.
Download