โมเดลร้านอาหาร: ตั้งค่า รัน และวิเคราะห์ผลลัพธ์
ในแบบฝึกหัดที่แล้ว คุณได้กำหนด generator ที่จำลองการขอโต๊ะและการตัดสินใจของลูกค้าว่าจะรอหรือจะออกไปตามเวลารอที่ใช้ไป
คราวนี้มาตั้งค่าโมเดล รันโมเดล และวิเคราะห์ผลลัพธ์กัน เป้าหมายของการสร้างโมเดลนี้คือการหาจำนวนโต๊ะและกำลังการผลิตของครัวที่เหมาะสม เพื่อให้บริการลูกค้าได้มากที่สุด ในขณะที่ลดต้นทุนการลงทุนเริ่มต้นและค่าใช้จ่ายในการดำเนินงาน
เพื่อตั้งค่าโมเดลให้สมจริง คุณตัดสินใจไปสังเกตพฤติกรรมลูกค้าที่ร้านอาหารในบริเวณนั้น
พบว่าโดยเฉลี่ย:
- ช่วง peak hours ลูกค้าใหม่จะเข้ามาทุก 10 นาที
- ลูกค้ามีความอดทนรอโต๊ะได้ระหว่าง 1 ถึง 10 นาที (
MIN_PATIENCEและMAX_PATIENCE) - ลูกค้าจะออกไปหากต้องรอนานกว่า 10 นาที
- ลูกค้าใช้โต๊ะนาน 40 ถึง 90 นาที (
MIN_SEATING_TIMEและMAX_SEATING_TIME)
หน่วยเวลาในโมเดลนี้คือนาที
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การจำลองเหตุการณ์แบบไม่ต่อเนื่องด้วย Python
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
INTERVAL_CUSTOMERS = 10
# Assign the appropriate values to the model parameters
MIN_PATIENCE = 1
MAX_PATIENCE = ____
MIN_SEATING_TIME = 40
MAX_SEATING_TIME = ____
customers_served = 0
customers_quiting_waiting = 0
env = simpy.Environment()
# Create the SimPy resource
tables = simpy.____(env, capacity=____)
env.process(source(env, NEW_CUSTOMERS, INTERVAL_CUSTOMERS, tables))
# Run the model
env.____(until=240)
print(f"Total number of tables served: {customers_served:02d}")
print(f"Total number of customers quiting waiting: {customers_quiting_waiting:02d}")