교통 모델: 모델 입력 정의하기
이제 모든 모델 구성 요소를 함께 만들어 보겠습니다.
시카고시의 교통 흐름을 개선하기 위해 신호등 최적화를 요청받았습니다. 이런 상황에서는 이산 사건 시뮬레이션 모델이 유용합니다.
첫 단계로 교차로 사이 도로 길이의 평균을 측정했더니 평균 100m, 표준편차 약 20m로 결론났습니다. 이는 운전자가 대략 80~120m마다 신호등을 마주친다는 뜻입니다.
시카고의 제한 속도는 시속 30마일(약 시속 50km)입니다. 시 관계자에 따르면 평균적으로 빨간불은 최대 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()