始める無料で始める

レストランのモデル:セットアップ、実行、結果の分析

前の演習では、テーブルのリクエストと、待ち時間に応じて待つか帰るかの顧客の意思決定をシミュレートするジェネレーターを定義しました。

ここからはモデルをセットアップして実行し、結果を分析していきます。このモデルを作る目的は、初期投資と運用コストを抑えつつ、できるだけ多くの顧客に対応するための、適切なテーブル数とキッチン容量を見極めることでした。

モデルを意味のある形で構築するため、周辺のレストランを訪れて顧客の行動を観察したとします。

観察の結果、平均的には次のようでした:

  • ピーク時には、新規顧客は10分ごとに来店する
  • 顧客はテーブルのために1〜10分待つ忍耐がある(MIN_PATIENCEMAX_PATIENCE
  • 待ち時間が10分を超えると顧客は離脱する
  • 顧客は40〜90分間テーブルを利用する(MIN_SEATING_TIMEMAX_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}")
コードを編集して実行