交通モデル:モデル入力の定義
ここまでを踏まえて、モデルの全コンポーネントを組み立てましょう。
あなたは、シカゴ市の交通流を改善するために信号制御の最適化を依頼されています。このような状況では離散事象モデルが有効です。
最初のステップとして、交差点間の道路の平均距離を測定したところ、平均が100メートル、標準偏差がおよそ20メートルであると分かりました。つまり、運転者は80〜120メートルごとに信号に遭遇すると期待されます。
シカゴの制限速度は30 mph(約50 km/h)です。市当局の情報によると、平均して信号は最大90秒間赤のままになるそうです。まずはモデルの入力と出力を定義しましょう。
この演習はコースの一部です
Pythonで学ぶ離散事象シミュレーション
演習の手順
inputs["Dist_between_intersections_m"]配列の平均と標準偏差を設定します。- ガウス分布を適用して
RandomGener["Distance"]の値を生成します。 - ランダムなメソッドを用いて
RandomGener["WaitTime"]の整数値を生成します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Define the model inputs
inputs = {"Dist_between_intersections_m": [____, ____],
"Speed_limit_ms": 50 * 1000 / (60 * 60),
"Max_waitTime_traffic_lights_sec": 90}
random_generated = {"Distance": [], "WaitTime": []}
for i in range(5000):
# Use the random package to generate pseudo-random values
random_generated["Distance"].append(random.____(inputs['Dist_between_intersections_m'][0],inputs['Dist_between_intersections_m'][1]))
random_generated["WaitTime"].append(random.____(0, inputs['Max_waitTime_traffic_lights_sec']))
# Plot the randomly generated distance "events"
plt.hist(random_generated["Distance"], bins=100)
plt.xlabel('# Events')
plt.ylabel('# Distance travelled (m)')
plt.show()