Modello del ristorante: configura, esegui e analizza i risultati
Nel precedente esercizio hai definito il generatore che simula le richieste di tavoli e le decisioni dei clienti di aspettare o andarsene in base ai tempi di attesa.
Ora configuriamo il modello, eseguiamolo e analizziamo i risultati. Ricorda che l’obiettivo è determinare il numero adeguato di tavoli e la capacità della cucina per servire il massimo numero di clienti, minimizzando l’investimento iniziale e i costi operativi.
Per impostare il modello in modo sensato, hai deciso di visitare i ristoranti della zona e osservare il comportamento dei clienti.
Hai notato che in media:
- Durante le ore di punta, arrivava un nuovo cliente ogni 10 minuti
- I clienti erano disposti ad aspettare tra 1 e 10 minuti per un tavolo (
MIN_PATIENCEeMAX_PATIENCE) - I clienti se ne andavano se l’attesa superava i 10 minuti
- I clienti occupavano i tavoli per 40–90 minuti (
MIN_SEATING_TIMEeMAX_SEATING_TIME)
Il tempo nel modello è espresso in minuti.
Questo esercizio fa parte del corso
Simulazione a eventi discreti in Python
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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}")