import simpy as sy
import random
num_checkers = 6
num_scanners = 4
total_time = 0
total_passengers = 1
num_passengers = 100
class Airport(object):
def __init__(self, env, num_checkers, num_scanners):
self.env = env
self.checker = sy.Resource(env, num_checkers)
self.scanners = []
for i in range(0, num_scanners):
self.scanners.append(sy.Resource(env))
def ID_check(self, passenger):
ID_service_time = random.expovariate(1/0.75)
yield self.env.timeout(ID_service_time)
def scan(self, passenger):
scan_time = random.uniform(0.5, 1)
yield self.env.timeout(scan_time)
def print_stats(self, res):
print('%d of %d slots are allocated.' % (res.count, res.capacity))
print(' Users:', res.users)
print(' Queued events:', res.queue)
def Passenger(self, env, number):
global total_time #global average wait time
global total_passengers
Arrivaltime = env.now
with self.checker.request() as request:
yield request
yield env.process(self.ID_check(number))
queue_list = []
for scanner in self.scanners:
queue_list.append(len(scanner.queue))
min_queue_index = queue_list.index(min(queue_list))
with self.scanners[min_queue_index].request() as request:
yield request
self.print_stats(self.scanners[min_queue_index])
yield env.process(self.scan(number))
pass_time = env.now - Arrivaltime
total_time = total_time + pass_time
total_passengers = total_passengers+1
def setup(self, env, num):
arrival_int = random.expovariate(5)
yield env.timeout(arrival_int)
env.process(self.Passenger(env, num))
print('Airport Security')
env = sy.Environment()
ap = Airport(env, num_checkers, num_scanners)
# Start processes and run
for i in range(0,num_passengers):
env.process(ap.setup(env, i))
env.run()
avg_time = total_time / total_passengers
print("avg_time")
print(avg_time)
Airport Security 1 of 1 slots are allocated. Users: [<Request() object at 0x19739e8ff88>] Queued events: [] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739cc40c8>] Queued events: [] 1 of 1 slots are allocated. Users: [<Request() object at 0x197389c8c48>] Queued events: [] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739d9f888>] Queued events: [] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a1bb388>] Queued events: [] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739cc4c88>] Queued events: [] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739ca9748>] Queued events: [] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739ded508>] Queued events: [] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739cc40c8>] Queued events: [] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739d9f888>] Queued events: [] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a077048>] Queued events: [<Request() object at 0x19739cd7a88>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739cc4908>] Queued events: [] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739e93588>] Queued events: [] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739cd7a88>] Queued events: [<Request() object at 0x19739cfdf48>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739cebc88>] Queued events: [<Request() object at 0x1973a2902c8>] 1 of 1 slots are allocated. Users: [<Request() object at 0x197389c2d48>] Queued events: [<Request() object at 0x197389c8c48>, <Request() object at 0x1973a1cc508>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a4a72c8>] Queued events: [<Request() object at 0x19739d9f688>, <Request() object at 0x19738986888>, <Request() object at 0x19739ca9748>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739cfdf48>] Queued events: [<Request() object at 0x1973a1cba08>, <Request() object at 0x19739ded248>, <Request() object at 0x19739ca99c8>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a2902c8>] Queued events: [<Request() object at 0x1973a4a7d88>, <Request() object at 0x1973a1cb648>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739d9f688>] Queued events: [<Request() object at 0x19738986888>, <Request() object at 0x19739ca9748>, <Request() object at 0x19739e8f3c8>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a1cba08>] Queued events: [<Request() object at 0x19739ded248>, <Request() object at 0x19739ca99c8>, <Request() object at 0x19739ff7a88>] 1 of 1 slots are allocated. Users: [<Request() object at 0x197389c8c48>] Queued events: [<Request() object at 0x1973a1cc508>, <Request() object at 0x19739ca93c8>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a4a7d88>] Queued events: [<Request() object at 0x1973a1cb648>, <Request() object at 0x1973a077048>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739ded248>] Queued events: [<Request() object at 0x19739ca99c8>, <Request() object at 0x19739ff7a88>, <Request() object at 0x19739c4cf08>, <Request() object at 0x1973a4a75c8>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19738986888>] Queued events: [<Request() object at 0x19739ca9748>, <Request() object at 0x19739e8f3c8>, <Request() object at 0x19739cc40c8>, <Request() object at 0x19739d66688>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a1cc508>] Queued events: [<Request() object at 0x19739ca93c8>, <Request() object at 0x19739cc4ac8>, <Request() object at 0x19739cc4908>, <Request() object at 0x1973a3fd7c8>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a1cb648>] Queued events: [<Request() object at 0x1973a077048>, <Request() object at 0x197389c2d48>, <Request() object at 0x19739cfdf48>, <Request() object at 0x19739bfdc08>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739ca99c8>] Queued events: [<Request() object at 0x19739ff7a88>, <Request() object at 0x19739c4cf08>, <Request() object at 0x1973a4a75c8>, <Request() object at 0x19739e93588>, <Request() object at 0x19739d9f688>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739ca9748>] Queued events: [<Request() object at 0x19739e8f3c8>, <Request() object at 0x19739cc40c8>, <Request() object at 0x19739d66688>, <Request() object at 0x1973a1cba08>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739ca93c8>] Queued events: [<Request() object at 0x19739cc4ac8>, <Request() object at 0x19739cc4908>, <Request() object at 0x1973a3fd7c8>, <Request() object at 0x19739d66948>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a077048>] Queued events: [<Request() object at 0x197389c2d48>, <Request() object at 0x19739cfdf48>, <Request() object at 0x19739bfdc08>, <Request() object at 0x1973a4dfb88>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739e8f3c8>] Queued events: [<Request() object at 0x19739cc40c8>, <Request() object at 0x19739d66688>, <Request() object at 0x1973a1cba08>, <Request() object at 0x19739ded248>, <Request() object at 0x197389c8c48>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739ff7a88>] Queued events: [<Request() object at 0x19739c4cf08>, <Request() object at 0x1973a4a75c8>, <Request() object at 0x19739e93588>, <Request() object at 0x19739d9f688>, <Request() object at 0x19739ded508>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739cc4ac8>] Queued events: [<Request() object at 0x19739cc4908>, <Request() object at 0x1973a3fd7c8>, <Request() object at 0x19739d66948>, <Request() object at 0x19739e7fe88>] 1 of 1 slots are allocated. Users: [<Request() object at 0x197389c2d48>] Queued events: [<Request() object at 0x19739cfdf48>, <Request() object at 0x19739bfdc08>, <Request() object at 0x1973a4dfb88>, <Request() object at 0x1973a1cb888>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739c4cf08>] Queued events: [<Request() object at 0x1973a4a75c8>, <Request() object at 0x19739e93588>, <Request() object at 0x19739d9f688>, <Request() object at 0x19739ded508>, <Request() object at 0x1973a1f5448>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739cc40c8>] Queued events: [<Request() object at 0x19739d66688>, <Request() object at 0x1973a1cba08>, <Request() object at 0x19739ded248>, <Request() object at 0x197389c8c48>, <Request() object at 0x1973a4df748>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739cc4908>] Queued events: [<Request() object at 0x1973a3fd7c8>, <Request() object at 0x19739d66948>, <Request() object at 0x19739e7fe88>, <Request() object at 0x19739cebc88>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a4a75c8>] Queued events: [<Request() object at 0x19739e93588>, <Request() object at 0x19739d9f688>, <Request() object at 0x19739ded508>, <Request() object at 0x1973a1f5448>, <Request() object at 0x19739cebc08>, <Request() object at 0x1973a2902c8>, <Request() object at 0x19738986888>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739d66688>] Queued events: [<Request() object at 0x1973a1cba08>, <Request() object at 0x19739ded248>, <Request() object at 0x197389c8c48>, <Request() object at 0x1973a4df748>, <Request() object at 0x19739ceb048>, <Request() object at 0x19739c4cb88>, <Request() object at 0x19739ff7a88>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739cfdf48>] Queued events: [<Request() object at 0x19739bfdc08>, <Request() object at 0x1973a4dfb88>, <Request() object at 0x1973a1cb888>, <Request() object at 0x19739ceb448>, <Request() object at 0x1973a4a7548>, <Request() object at 0x1973a4dfc48>, <Request() object at 0x1973a4df708>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a3fd7c8>] Queued events: [<Request() object at 0x19739d66948>, <Request() object at 0x19739e7fe88>, <Request() object at 0x19739cebc88>, <Request() object at 0x1973a4a7b48>, <Request() object at 0x19739e7f8c8>, <Request() object at 0x1973a4df388>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a1cba08>] Queued events: [<Request() object at 0x19739ded248>, <Request() object at 0x197389c8c48>, <Request() object at 0x1973a4df748>, <Request() object at 0x19739ceb048>, <Request() object at 0x19739c4cb88>, <Request() object at 0x19739ff7a88>, <Request() object at 0x19739bfd9c8>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739e93588>] Queued events: [<Request() object at 0x19739d9f688>, <Request() object at 0x19739ded508>, <Request() object at 0x1973a1f5448>, <Request() object at 0x19739cebc08>, <Request() object at 0x1973a2902c8>, <Request() object at 0x19738986888>, <Request() object at 0x19739bfd8c8>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739bfdc08>] Queued events: [<Request() object at 0x1973a4dfb88>, <Request() object at 0x1973a1cb888>, <Request() object at 0x19739ceb448>, <Request() object at 0x1973a4a7548>, <Request() object at 0x1973a4dfc48>, <Request() object at 0x1973a4df708>, <Request() object at 0x19739d66688>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739d66948>] Queued events: [<Request() object at 0x19739e7fe88>, <Request() object at 0x19739cebc88>, <Request() object at 0x1973a4a7b48>, <Request() object at 0x19739e7f8c8>, <Request() object at 0x1973a4df388>, <Request() object at 0x19739c4c348>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739ded248>] Queued events: [<Request() object at 0x197389c8c48>, <Request() object at 0x1973a4df748>, <Request() object at 0x19739ceb048>, <Request() object at 0x19739c4cb88>, <Request() object at 0x19739ff7a88>, <Request() object at 0x19739bfd9c8>, <Request() object at 0x197389d2548>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739d9f688>] Queued events: [<Request() object at 0x19739ded508>, <Request() object at 0x1973a1f5448>, <Request() object at 0x19739cebc08>, <Request() object at 0x1973a2902c8>, <Request() object at 0x19738986888>, <Request() object at 0x19739bfd8c8>, <Request() object at 0x19739cc3948>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a4dfb88>] Queued events: [<Request() object at 0x1973a1cb888>, <Request() object at 0x19739ceb448>, <Request() object at 0x1973a4a7548>, <Request() object at 0x1973a4dfc48>, <Request() object at 0x1973a4df708>, <Request() object at 0x19739d66688>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739e7fe88>] Queued events: [<Request() object at 0x19739cebc88>, <Request() object at 0x1973a4a7b48>, <Request() object at 0x19739e7f8c8>, <Request() object at 0x1973a4df388>, <Request() object at 0x19739c4c348>, <Request() object at 0x1973a4a75c8>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739ded508>] Queued events: [<Request() object at 0x1973a1f5448>, <Request() object at 0x19739cebc08>, <Request() object at 0x1973a2902c8>, <Request() object at 0x19738986888>, <Request() object at 0x19739bfd8c8>, <Request() object at 0x19739cc3948>, <Request() object at 0x19739e7f748>] 1 of 1 slots are allocated. Users: [<Request() object at 0x197389c8c48>] Queued events: [<Request() object at 0x1973a4df748>, <Request() object at 0x19739ceb048>, <Request() object at 0x19739c4cb88>, <Request() object at 0x19739ff7a88>, <Request() object at 0x19739bfd9c8>, <Request() object at 0x197389d2548>, <Request() object at 0x19739d66748>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a1cb888>] Queued events: [<Request() object at 0x19739ceb448>, <Request() object at 0x1973a4a7548>, <Request() object at 0x1973a4dfc48>, <Request() object at 0x1973a4df708>, <Request() object at 0x19739d66688>, <Request() object at 0x19739ceb0c8>, <Request() object at 0x1973a4a7248>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a4df748>] Queued events: [<Request() object at 0x19739ceb048>, <Request() object at 0x19739c4cb88>, <Request() object at 0x19739ff7a88>, <Request() object at 0x19739bfd9c8>, <Request() object at 0x197389d2548>, <Request() object at 0x19739d66748>, <Request() object at 0x19739d66948>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739cebc88>] Queued events: [<Request() object at 0x1973a4a7b48>, <Request() object at 0x19739e7f8c8>, <Request() object at 0x1973a4df388>, <Request() object at 0x19739c4c348>, <Request() object at 0x1973a4a75c8>, <Request() object at 0x197389d2608>, <Request() object at 0x19739bfdc08>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a1f5448>] Queued events: [<Request() object at 0x19739cebc08>, <Request() object at 0x1973a2902c8>, <Request() object at 0x19738986888>, <Request() object at 0x19739bfd8c8>, <Request() object at 0x19739cc3948>, <Request() object at 0x19739e7f748>, <Request() object at 0x197389c2d48>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739ceb448>] Queued events: [<Request() object at 0x1973a4a7548>, <Request() object at 0x1973a4dfc48>, <Request() object at 0x1973a4df708>, <Request() object at 0x19739d66688>, <Request() object at 0x19739ceb0c8>, <Request() object at 0x1973a4a7248>, <Request() object at 0x197388d8e48>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a4a7b48>] Queued events: [<Request() object at 0x19739e7f8c8>, <Request() object at 0x1973a4df388>, <Request() object at 0x19739c4c348>, <Request() object at 0x1973a4a75c8>, <Request() object at 0x197389d2608>, <Request() object at 0x19739bfdc08>, <Request() object at 0x1973a4a7c48>, <Request() object at 0x1973a4a77c8>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739ceb048>] Queued events: [<Request() object at 0x19739c4cb88>, <Request() object at 0x19739ff7a88>, <Request() object at 0x19739bfd9c8>, <Request() object at 0x197389d2548>, <Request() object at 0x19739d66748>, <Request() object at 0x19739d66948>, <Request() object at 0x1973a1cc508>, <Request() object at 0x1973a4a7c08>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739cebc08>] Queued events: [<Request() object at 0x1973a2902c8>, <Request() object at 0x19738986888>, <Request() object at 0x19739bfd8c8>, <Request() object at 0x19739cc3948>, <Request() object at 0x19739e7f748>, <Request() object at 0x197389c2d48>, <Request() object at 0x19739ded508>, <Request() object at 0x19739d66e08>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739c4cb88>] Queued events: [<Request() object at 0x19739ff7a88>, <Request() object at 0x19739bfd9c8>, <Request() object at 0x197389d2548>, <Request() object at 0x19739d66748>, <Request() object at 0x19739d66948>, <Request() object at 0x1973a1cc508>, <Request() object at 0x1973a4a7c08>, <Request() object at 0x1973a4a7048>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a4a7548>] Queued events: [<Request() object at 0x1973a4dfc48>, <Request() object at 0x1973a4df708>, <Request() object at 0x19739d66688>, <Request() object at 0x19739ceb0c8>, <Request() object at 0x1973a4a7248>, <Request() object at 0x197388d8e48>, <Request() object at 0x19739d66e48>, <Request() object at 0x19739ceb608>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739e7f8c8>] Queued events: [<Request() object at 0x1973a4df388>, <Request() object at 0x19739c4c348>, <Request() object at 0x1973a4a75c8>, <Request() object at 0x197389d2608>, <Request() object at 0x19739bfdc08>, <Request() object at 0x1973a4a7c48>, <Request() object at 0x1973a4a77c8>, <Request() object at 0x19739ceb948>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a2902c8>] Queued events: [<Request() object at 0x19738986888>, <Request() object at 0x19739bfd8c8>, <Request() object at 0x19739cc3948>, <Request() object at 0x19739e7f748>, <Request() object at 0x197389c2d48>, <Request() object at 0x19739ded508>, <Request() object at 0x19739d66e08>, <Request() object at 0x1973a1cba08>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a4df388>] Queued events: [<Request() object at 0x19739c4c348>, <Request() object at 0x1973a4a75c8>, <Request() object at 0x197389d2608>, <Request() object at 0x19739bfdc08>, <Request() object at 0x1973a4a7c48>, <Request() object at 0x1973a4a77c8>, <Request() object at 0x19739ceb948>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19738986888>] Queued events: [<Request() object at 0x19739bfd8c8>, <Request() object at 0x19739cc3948>, <Request() object at 0x19739e7f748>, <Request() object at 0x197389c2d48>, <Request() object at 0x19739ded508>, <Request() object at 0x19739d66e08>, <Request() object at 0x1973a1cba08>, <Request() object at 0x19739cc5088>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739ff7a88>] Queued events: [<Request() object at 0x19739bfd9c8>, <Request() object at 0x197389d2548>, <Request() object at 0x19739d66748>, <Request() object at 0x19739d66948>, <Request() object at 0x1973a1cc508>, <Request() object at 0x1973a4a7c08>, <Request() object at 0x1973a4a7048>, <Request() object at 0x1973a2f71c8>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a4dfc48>] Queued events: [<Request() object at 0x1973a4df708>, <Request() object at 0x19739d66688>, <Request() object at 0x19739ceb0c8>, <Request() object at 0x1973a4a7248>, <Request() object at 0x197388d8e48>, <Request() object at 0x19739d66e48>, <Request() object at 0x19739ceb608>, <Request() object at 0x1973a1f5608>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739c4c348>] Queued events: [<Request() object at 0x1973a4a75c8>, <Request() object at 0x197389d2608>, <Request() object at 0x19739bfdc08>, <Request() object at 0x1973a4a7c48>, <Request() object at 0x1973a4a77c8>, <Request() object at 0x19739ceb948>, <Request() object at 0x19739e66508>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739bfd9c8>] Queued events: [<Request() object at 0x197389d2548>, <Request() object at 0x19739d66748>, <Request() object at 0x19739d66948>, <Request() object at 0x1973a1cc508>, <Request() object at 0x1973a4a7c08>, <Request() object at 0x1973a4a7048>, <Request() object at 0x1973a2f71c8>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739bfd8c8>] Queued events: [<Request() object at 0x19739cc3948>, <Request() object at 0x19739e7f748>, <Request() object at 0x197389c2d48>, <Request() object at 0x19739ded508>, <Request() object at 0x19739d66e08>, <Request() object at 0x1973a1cba08>, <Request() object at 0x19739cc5088>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a4df708>] Queued events: [<Request() object at 0x19739d66688>, <Request() object at 0x19739ceb0c8>, <Request() object at 0x1973a4a7248>, <Request() object at 0x197388d8e48>, <Request() object at 0x19739d66e48>, <Request() object at 0x19739ceb608>, <Request() object at 0x1973a1f5608>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a4a75c8>] Queued events: [<Request() object at 0x197389d2608>, <Request() object at 0x19739bfdc08>, <Request() object at 0x1973a4a7c48>, <Request() object at 0x1973a4a77c8>, <Request() object at 0x19739ceb948>, <Request() object at 0x19739e66508>] 1 of 1 slots are allocated. Users: [<Request() object at 0x197389d2548>] Queued events: [<Request() object at 0x19739d66748>, <Request() object at 0x19739d66948>, <Request() object at 0x1973a1cc508>, <Request() object at 0x1973a4a7c08>, <Request() object at 0x1973a4a7048>, <Request() object at 0x1973a2f71c8>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739cc3948>] Queued events: [<Request() object at 0x19739e7f748>, <Request() object at 0x197389c2d48>, <Request() object at 0x19739ded508>, <Request() object at 0x19739d66e08>, <Request() object at 0x1973a1cba08>, <Request() object at 0x19739cc5088>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739d66688>] Queued events: [<Request() object at 0x19739ceb0c8>, <Request() object at 0x1973a4a7248>, <Request() object at 0x197388d8e48>, <Request() object at 0x19739d66e48>, <Request() object at 0x19739ceb608>, <Request() object at 0x1973a1f5608>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739e7f748>] Queued events: [<Request() object at 0x197389c2d48>, <Request() object at 0x19739ded508>, <Request() object at 0x19739d66e08>, <Request() object at 0x1973a1cba08>, <Request() object at 0x19739cc5088>] 1 of 1 slots are allocated. Users: [<Request() object at 0x197389d2608>] Queued events: [<Request() object at 0x19739bfdc08>, <Request() object at 0x1973a4a7c48>, <Request() object at 0x1973a4a77c8>, <Request() object at 0x19739ceb948>, <Request() object at 0x19739e66508>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739d66748>] Queued events: [<Request() object at 0x19739d66948>, <Request() object at 0x1973a1cc508>, <Request() object at 0x1973a4a7c08>, <Request() object at 0x1973a4a7048>, <Request() object at 0x1973a2f71c8>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739ceb0c8>] Queued events: [<Request() object at 0x1973a4a7248>, <Request() object at 0x197388d8e48>, <Request() object at 0x19739d66e48>, <Request() object at 0x19739ceb608>, <Request() object at 0x1973a1f5608>] 1 of 1 slots are allocated. Users: [<Request() object at 0x197389c2d48>] Queued events: [<Request() object at 0x19739ded508>, <Request() object at 0x19739d66e08>, <Request() object at 0x1973a1cba08>, <Request() object at 0x19739cc5088>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739d66948>] Queued events: [<Request() object at 0x1973a1cc508>, <Request() object at 0x1973a4a7c08>, <Request() object at 0x1973a4a7048>, <Request() object at 0x1973a2f71c8>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739bfdc08>] Queued events: [<Request() object at 0x1973a4a7c48>, <Request() object at 0x1973a4a77c8>, <Request() object at 0x19739ceb948>, <Request() object at 0x19739e66508>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a4a7248>] Queued events: [<Request() object at 0x197388d8e48>, <Request() object at 0x19739d66e48>, <Request() object at 0x19739ceb608>, <Request() object at 0x1973a1f5608>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a1cc508>] Queued events: [<Request() object at 0x1973a4a7c08>, <Request() object at 0x1973a4a7048>, <Request() object at 0x1973a2f71c8>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739ded508>] Queued events: [<Request() object at 0x19739d66e08>, <Request() object at 0x1973a1cba08>, <Request() object at 0x19739cc5088>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a4a7c08>] Queued events: [<Request() object at 0x1973a4a7048>, <Request() object at 0x1973a2f71c8>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a4a7c48>] Queued events: [<Request() object at 0x1973a4a77c8>, <Request() object at 0x19739ceb948>, <Request() object at 0x19739e66508>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739d66e08>] Queued events: [<Request() object at 0x1973a1cba08>, <Request() object at 0x19739cc5088>] 1 of 1 slots are allocated. Users: [<Request() object at 0x197388d8e48>] Queued events: [<Request() object at 0x19739d66e48>, <Request() object at 0x19739ceb608>, <Request() object at 0x1973a1f5608>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a4a7048>] Queued events: [<Request() object at 0x1973a2f71c8>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a1cba08>] Queued events: [<Request() object at 0x19739cc5088>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a4a77c8>] Queued events: [<Request() object at 0x19739ceb948>, <Request() object at 0x19739e66508>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739d66e48>] Queued events: [<Request() object at 0x19739ceb608>, <Request() object at 0x1973a1f5608>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a2f71c8>] Queued events: [] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739cc5088>] Queued events: [] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739ceb948>] Queued events: [<Request() object at 0x19739e66508>] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739ceb608>] Queued events: [<Request() object at 0x1973a1f5608>] 1 of 1 slots are allocated. Users: [<Request() object at 0x1973a1f5608>] Queued events: [] 1 of 1 slots are allocated. Users: [<Request() object at 0x19739e66508>] Queued events: [] avg_time 10.040124636755163
From the results, you can start to see efficiencies in the process for approximately 4 scanners and 4 checkers to process 100 passengers. After this, the average time only slight decreases and would not justify the additional wages to schedule additional employees to check and operating costs to run the additional scanners.