開始使用免費開始

運輸模型:定義模型輸入

把這些要素整合起來,建立完整的模型元件。

你受託最佳化芝加哥市的號誌,以改善車流。這類情境適合使用離散事件模型。

第一步是衡量路口之間的平均道路長度。你推估其平均為 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()
編輯並執行程式碼