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.