โมเดลการขนส่ง: กำหนด Input ของโมเดล
มาสร้างส่วนประกอบทั้งหมดของโมเดลกัน
คุณได้รับมอบหมายให้ปรับปรุงสัญญาณไฟจราจรของเมืองชิคาโกเพื่อเพิ่มประสิทธิภาพการจราจร ซึ่งการจำลองแบบ Discrete-event เหมาะสมอย่างยิ่งสำหรับสถานการณ์นี้
ขั้นตอนแรกคือการวัดความยาวเฉลี่ยของถนนระหว่างสี่แยก ซึ่งพบว่าอยู่ที่ประมาณ 100 เมตร โดยมีค่าเบี่ยงเบนมาตรฐานประมาณ 20 เมตร หมายความว่าผู้ขับขี่จะพบสัญญาณไฟจราจรทุก ๆ 80-120 เมตร
ขีดจำกัดความเร็วในชิคาโกอยู่ที่ 30 mph (ประมาณ 50 km/h) เจ้าหน้าที่เมืองแจ้งว่าโดยเฉลี่ยแล้วไฟแดงจะติดนานสูงสุด 90 วินาที เริ่มต้นด้วยการกำหนด Input และ Output ของโมเดล
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การจำลองเหตุการณ์แบบไม่ต่อเนื่องด้วย 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()