Quản lý hàng chờ thanh toán
Một cửa hàng quần áo rất đông vào giờ cao điểm, khi mọi người thường xếp hàng để thanh toán. Hiện chỉ có một thu ngân, và bạn được yêu cầu thực hiện phân tích chi phí – lợi ích để xác định cần bao nhiêu thu ngân nhằm giảm tối đa thời gian chờ, từ đó tăng lợi nhuận.
Bạn quyết định xây dựng một mô hình sự kiện rời rạc. Bạn biết rằng:
- Trung bình, một khách hàng mới sẽ vào hàng chờ sau mỗi 15 giây trong giờ cao điểm;
- Khách hàng thường mang theo vài món, điển hình từ 1 đến 20 món; và
- Mất trung bình 3 giây để quét một món tại quầy, và thanh toán thường mất thêm 20 giây nữa.
Tham số counter lưu tài nguyên SimPy, và tham số customer_num theo dõi số lượng khách hàng.
Hãy chạy mô hình và tính xem mất bao lâu để phục vụ 30 khách với số lượng thu ngân khác nhau.
Bài tập này là một phần của khóa học
Mô phỏng Sự kiện Rời rạc bằng Python
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
def customer(env, customer_num, counter):
num_items = random.randint(1, 20)
print(f"Time: {env.now:7.4f} sec | Customer {customer_num:02d} > Joining the queue with {num_items:02d} items!")
# Open the resource counter request
with counter.____() as request:
yield request
print(f"Time: {env.now:7.4f} sec | Customer {customer_num:02d} > Got to cashier!")
time_counter = TIME_PAY + random.randint(1, 20) * TIME_SCAN_PER_ITEM
# Yield the processing time
yield env.____(time_counter)
print(f"Time: {env.now:7.4f} sec | Customer {customer_num:02d} > Finished ")
env = simpy.Environment()
# Create resource
counter = simpy.Resource(env, capacity=____)
env.process(source(env, NEW_CUSTOMERS, INTERVAL_CUSTOMERS, counter))
env.run()