Activity: Airport Security in the Event View

Discrete-Event Modeling Activities

Author

Manuel D. Rossetti, PhD P.E.

We build this model together: the instructor types the code, and you type along. Before each run, write down a prediction; then run and check it.

The situation. Passengers arrive at the identification check of a small airport’s security checkpoint as a Poisson process with a rate of 30 per hour (stream 1). One security officer checks each passenger’s identification, taking a triangularly distributed time with a minimum of 0.75 minute, a most likely value of 1.5 minutes, and a maximum of 3 minutes (stream 2). Ninety-three percent of passengers pass and go on to the security area; the rest are sent elsewhere for further investigation (stream 3). What happens after the identification check is outside the model.

The checkpoint is open 10 hours a day, and it opens with no one waiting. Estimate, for 30 days of operation:

Setup. Get the starter file AirportEventView.kt from the code/ folder beside this activity. Put it in src/main/kotlin/student/activities in your KSL project, the package the file declares; create the folder if you do not have it. Run its main. It compiles and runs, but the model is empty: its three parts, marked TODO, are what we write.

1. Model it first

  1. Draw the activity diagram for this situation.

  2. Specify each random variable: its distribution, its parameters with units, and its stream.

  3. List the responses the model must collect, and say for each whether it is observation-based or time-persistent.

  4. What are the events? For each, list its actions in order.

  5. What are the run parameters: the length of a replication, the number of replications, and the time unit?

2. Predict

  1. Predict the officer’s utilization.

  2. Use the M/G/1 results (Appendix C, the section Non-Markovian Queues and Approximations) to compute the long-run average wait. Will the simulation’s average for a 10-hour day be higher or lower?

3. Code along

  1. TODO 1. We wrap each distribution in a RandomVariable that belongs to the model. What does that give us that using the distribution directly would not?

  2. TODO 2. We create the responses. Which ones does the Queue collect for us?

  3. TODO 3. We write the events. In the end-of-inspection event, why do we start the next passenger’s inspection before deciding whether the departing passenger passes?

4. Run and compare

  1. Run the model and compare the utilization and the average wait with your predictions.

  2. Check Little’s formula on the number in the system and the time in the system.

  3. Do the cleared and denied passengers per day add up to the arrivals per day? If not, where are the others?