Activity: Airport Security in the Process View

Process View 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 AirportProcessView.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 no passengers arrive yet: the 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. For each, say whether it is observation-based (one value per passenger) or time-persistent (a value that holds over time). Then find each one in the starter file.

  4. What are the processes in this model? For the passenger’s process, list its steps in order.

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

2. Predict

Let \(\lambda\) represent the arrival rate in passengers per minute and \(E[ST]\) the mean identification time.

  1. Predict the officer’s utilization, \(\rho = \lambda E[ST]\).

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

  3. About how many passengers arrive in a day? How many do you expect to be cleared, and how many denied?

3. Code along

  1. TODO 1. We construct the officer as a ResourceWithQ. What does the “with Q” give us that we would otherwise have to build ourselves?

  2. TODO 2. We start the arrivals the way the event-view models did: an event that schedules itself. What does the arrival event do, and what is new about it here?

  3. TODO 3. We write the passenger’s process. At which steps can a passenger’s process be suspended, and what resumes it at each?

4. Run and compare

  1. Run the model and compare the officer’s utilization, the average wait, and the probability of waiting 5 minutes or more with your predictions.

  2. Check Little’s formula: is the average number in the system equal to the arrival rate times the average 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?

  4. The next activities add steps to a process like this one. Compared with the event view, what does the process view make easier?