본문 바로가기
교통/교통공학

안양시 버스도착 예정시간 예측

by 블로그 이전 중 2012. 3. 15.
버스정보시스템을 이용하는 버스승객들에게 가장 중요한 정보는 버스도착예정시간입니다. 이용자에게 어떤 통신방식을 이용하여 정보를 제공하는지, 수학이나 통계학 모형을 적용하여 어떻게 계산하는지는 중요하지 않습니다. '내가 알고 싶어 하는 버스의 도착예정시간이 얼마나 정확한가'가 가장 중요합니다. 
안양시 버스정보시스템을 설계하던 2003년 무렵까지, 버스도착 예정시간의 정확도는 높지 않았습니다. GPS정보를 이용하여 구간(교차로-버스정류장 단위)별 통행시간을 예측해 사용했는데, 평균통행시간이 정체와 교차로 신호로 인한 편차를 정확히 반영할 수 없었기때문입니다.
버스도착예정시간의 산정은 앞차의 정보를 이용하여 뒷차의 도착시간을 예측하는 것입니다. 그런데 앞차는 교차로 적색신호에 대기했다 출발하고 뒷차는 녹색신호를 받아 바로 교차로를 통과한다면 예측한 도착시간의 오차가 커질 수 밖에 없습니다. 신경망, 칼만 필터링, 가중이동평균, 퍼지 이론 등 다양한 방법을 이용하여 연구가 이루어졌지만 만족스런 방법은 나오지 않았습니다. 안양시 버스정보시스템을 설계하면서 가장 큰 고민을 했던 부분도 바로 버스도착예정시간 산정 알고리즘이었습니다. 
 
연구와는 달리 현장에서는 '가장 최신의 기법, 복잡한 고도의 방법이 가장 효과적인 방법'이 아닌 경우가 많습니다. 정확도가 아무리 높아도 버스도착시간을 계산하는데 5분 이상 소요되거나, 많은 자료를 이용하여 복잡한 계산을 하는데 단순한 방법과 큰 차이가 없다면 현장에서는 별 쓸모가 없는 방법이 됩니다. 
그래서 고민끝에 내린 결론은 '계산 방법은 단순하게 만들고, 운행과 정지의 개념은 세분화한다' 였습니다. 버스도착시간의 계산은 가중이동평균법을 적용했습니다. 그리고 버스의 통행시간 정보와 함께 정류장 정차시간과 정류장 외 구간에서의 정지시간을 따로 수집, 가공하였습니다. 기존의 다른 알고리즘과 차별화되는 부분은 바로 정지시간 수집입니다. 정지시간을 수집하여 가공하기때문에 교차로 신호나 정체에 의한 통행시간 오차를 줄일 수 있었습니다. 
개념은 단순합니다. GPS에서 1초 단위로 위치정보를 수집하면서, 운행속도가 5km/h미만으로 감지되면 시간을 누적하여 초단위로 정지시간을 산정하는 것입니다. 그런데 통신부문에서 복병이 나타났습니다. 정지시간을 계산하기위해 알고리즘을 추가해야하고(가능하지만 짧은 과업기간에 하기는 부담스럽다는 의미였습니다.), 통신량이 늘어 통신비가 과다해지며, 향후 확장시 통신망 과부하가 걸릴 수 있다는 것입니다. 통신부문의 의견은 기존 방식대로 하자는 것이었습니다. 
 
'현황 유지와 추가'라는 반대 의견이었지만, 버스도착예정시간의 정확도를 위해 정지시간 자료수집은 포기할 수 없는 내용이었습니다. 통신부문과의 논쟁, 협의 끝에 정지시간은 넣고 통신주기는 조정하기로 결정했습니다. 
 
안양시 1단계 BIS 사업에 적용한 통신방식은 30초 정주기 방식을 적용하고 이벤트 발생시에는 30초 후에 정보를 전송하는 방식입니다.  
 
 
시스템 구축 후 초시계 들고 버스도착예정시간과 실제 도착시간을 비교하면서 많이 긴장했습니다. 
'00번 버스 10분 후 도착예정' LCD 전광판에 정보가 뜨는 순간 초시계를 눌렀습니다. 1초 1초가 몇 시간 같이 지나가더군요. 00번 버스가 정류장에 도착하는 순간 초시계는 10분 8초를 가리킵니다. 정류장에서 시계를 들여다보며 확인하던 시민들이 만족하고 좋아하는 모습을 보는 순간은 정말 기뻤습니다. 버스정보시스템 구축 후, 버스도착시간의 예측 정확도와 시민들의 만족도가 높아 많은 지자체에서 현장견학을 왔습니다. 해외에서도 호평을 받았습니다. 
 
 
 
시스템의 구축 후에는 참여기관의 이름이 남을 뿐입니다. 실제로 개발한 대다수 엔지니어의 이름은 남지도, 알아주지도 않지만 좋은 시스템을 만드는 데 기여했다는 것은 즐거운 추억입니다. 
 
참고 : 안양시 2단계 사업에서는 이벤트 후에 정주기 자료 수집 간격이 길어지는 것을 보완하여 적용했습니다.