Modelul restaurantului: configurare, rulare și analiza rezultatelor
În exercițiul anterior, ai definit generatorul care simulează cererile de masă și deciziile clienților de a aștepta sau de a pleca în funcție de timpii de așteptare.
Acum hai să configurăm modelul, să îl rulăm și să analizăm rezultatele. Amintește-ți că obiectivul construirii acestui model este de a determina numărul optim de mese și capacitatea bucătăriei pentru a servi cât mai mulți clienți, minimizând în același timp investiția inițială și costurile de funcționare.
Pentru a configura modelul într-un mod relevant, ai decis să vizitezi restaurante din zonă și să observi comportamentul clienților.
Ai observat că, în medie:
- În orele de vârf, clienți noi soseau la fiecare 10 minute
- Clienții aveau răbdare să aștepte între 1 și 10 minute pentru o masă (
MIN_PATIENCEșiMAX_PATIENCE) - Clienții plecau dacă timpul de așteptare depășea 10 minute
- Clienții ocupau mesele între 40 și 90 de minute (
MIN_SEATING_TIMEșiMAX_SEATING_TIME)
Unitatea de timp din model este minutul.
Acest exercițiu face parte din cursul
Simulare de evenimente discrete în Python
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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}")