Model restauracji: konfiguracja, uruchomienie i analiza wyników
W poprzednim ćwiczeniu zdefiniowałeś(-aś) generator symulujący prośby o stolik i decyzje klientów dotyczące oczekiwania lub rezygnacji na podstawie czasu oczekiwania.
Teraz skonfigurujmy model, uruchommy go i przeanalizujmy wyniki. Przypomnij sobie, że celem budowania tego modelu jest określenie odpowiedniej liczby stolików i pojemności kuchni, aby obsłużyć jak największą liczbę klientów przy minimalnych kosztach początkowych i bieżących.
Aby skonfigurować model w sensowny sposób, postanowiłeś(-aś) odwiedzić restauracje w okolicy i zaobserwować zachowania klientów.
Zauważyłeś(-aś), że średnio:
- W godzinach szczytu nowi klienci przychodzili co 10 minut
- Klienci byli gotowi czekać od 1 do 10 minut na stolik (
MIN_PATIENCEiMAX_PATIENCE) - Klienci odchodzili, jeśli czas oczekiwania przekraczał 10 minut
- Klienci zajmowali stoliki przez 40 do 90 minut (
MIN_SEATING_TIMEiMAX_SEATING_TIME)
Czas w modelu podawany jest w minutach.
To ćwiczenie jest częścią kursu
Symulacja zdarzeń dyskretnych w Pythonie
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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}")