← 시뮬레이션 한 장
SIMULATION 한 장

버스 몰림 시뮬레이터

아침 07:00~09:00, 정류장 12곳을 도는 순환 노선에 버스가 고르게 출발합니다. 조건을 바꾸고 실행을 누르면, 조금 늦은 버스가 점점 더 늦어지고 뒤차가 따라붙는 과정을 그대로 보여줍니다.

순환 노선 한 바퀴(정류장 12곳)를 도는 버스 수. 많을수록 배차 간격이 짧아집니다.
08:00 무렵이 가장 붐빕니다. 1.0배 = 정류장당 분당 약 1명.
한 사람이 앞문으로 타서 요금을 내기까지 걸리는 평균 시간.
버스끼리 붙지 않게 하는 두 가지 대표적인 방법입니다.
숫자는 실측이 아니라 적어 둔 가정으로 돌린 시뮬레이션입니다. 화면 1초 = 1분 30초. 버스 색: 초록 주행·노랑 승차 중·보라 간격 맞추는 중·빨강 앞차에 바짝 붙음.
끌어서 돌리고, 휠·핀치로 확대할 수 있어요.
어떻게 계산하나요? ↓ · 데이터팝콘 Lab
정류장 대기 인원 · 간격 편차 ━ 대기 인원(명)   ━ 간격 편차(%)
달리는 중승객 태우는 중간격 맞추려 대기앞차에 바짝 붙음기다리는 승객

시뮬레이션 결과

조건을 바꾸고 실행해 보세요
원리와 결과 읽기 ↓

SIMULATION 한 장 · 버스 몰림

20분 기다렸더니 버스 두 대가 붙어서 온다. 왜 그럴까?

핵심 요약

기본 조건(버스 6대, 계획 배차 간격 약 6.6분)에서 버스는 고르게 출발했지만, 07:30 이후 90분 중 평균 73.1분 동안 두 대 이상이 붙어 다녔습니다. 간격 편차는 평균 74.5%, 승객 평균 대기는 4.8분으로 배차 간격의 절반(약 3.3분)보다 길었고, 운 나쁜 5%는 12.4분 넘게 기다렸습니다.

앞차와 너무 가까워진 버스를 정류장에서 잠깐 세워 두는 간격 맞추기를 하면 붙어 다닌 시간이 0분, 평균 대기가 3.6분, 운 나쁜 5%의 대기가 9.3분으로 줄었습니다. 버스를 세우는데도 기다리는 사람은 오히려 덜 기다립니다.

승차 시간을 줄이는 빠른 승차도 평균 대기를 3.7분으로 줄였지만, 붙어 다닌 시간은 45.6분 남았습니다. 버스를 8대로 늘리면 평균 대기는 3.5분으로 줄지만 붙어 다니는 현상은 그대로입니다(76.5분). 버스를 더 넣는 것만으로는 몰림이 사라지지 않습니다.

무엇을 시뮬레이션하나요?

정류장에서 한참 기다렸는데 같은 번호 버스가 두 대 연달아 오는 경험은 흔합니다. 이 현상을 버스 몰림(bus bunching)이라고 부릅니다. 운전기사가 일부러 붙어 다니는 것이 아니라, 버스 노선 자체가 원래 불안정하기 때문에 생깁니다.

이 시뮬레이터는 정류장 12곳을 도는 순환 노선 하나에 아침 07:00~09:00 동안 버스를 고르게 출발시킵니다. 신호나 정체로 한 버스가 조금만 늦어도, 그 버스 앞 정류장에는 사람이 더 쌓이고, 더 많이 태우느라 더 늦어집니다. 반대로 뒤따르는 버스는 태울 사람이 적어 점점 빨라지다가 결국 앞차에 붙습니다. 왼쪽 패널에서 버스 대수, 승객 수, 승차 시간, 몰림 대책을 바꿔 이 과정을 직접 확인해 보세요.

시나리오별 결과

시나리오평균 대기 시간운 나쁜 5%의 대기 시간가장 오래 기다린 사람버스 간격 편차(평균)버스가 붙어 다닌 시간
기본 (6대·대책 없음)4.8분12.4분17.5분74.5%73.1분
정류장에서 간격 맞추기3.6분9.3분13.4분37.4%0분
빠른 승차3.7분8.6분12.2분48.4%45.6분
버스 8대3.5분9분13.1분74.6%76.5분
승객 1.4배5.2분13.6분18.9분79.9%72.4분

각 시나리오를 손님 흐름(난수 시드)만 바꿔 30번씩 돌린 평균입니다. 시나리오 이름을 누르면 같은 조건으로 위 시뮬레이터가 열립니다.

기본 (6대·대책 없음) · 정류장에서 간격 맞추기 · 빠른 승차 · 버스 8대 · 승객 1.4배

어떻게 계산하나요?

1초 단위로 시간을 진행하는 이산 시간 시뮬레이션입니다.

"간격 편차"는 버스 사이 간격의 표준편차를 평균 간격으로 나눈 값(변동계수)이고, "버스가 붙어 다닌 시간"은 07:30 이후 두 버스 사이 간격이 평균 간격의 25%보다 짧았던 누적 시간입니다.

이 시뮬레이션의 가정

실제와 다를 수 있는 점

자주 묻는 질문

왜 버스는 두 대씩 같이 올까요?

앞 버스가 조금 늦으면 그 앞 정류장에 기다리는 사람이 늘어 정차 시간이 길어지고, 그래서 더 늦어집니다. 뒤 버스는 앞차가 막 태워 간 정류장을 지나므로 태울 사람이 적어 빨라집니다. 이 차이가 정류장마다 쌓여 결국 뒤 버스가 앞 버스를 따라잡습니다. 이 불안정성은 1964년 Newell과 Potts가 처음 설명했습니다.

버스를 더 투입하면 해결되나요?

배차 간격이 짧아져 평균 대기는 줄지만 몰림 자체는 남습니다. 이 시뮬레이션에서 6대일 때 평균 대기 4.8분, 8대일 때 3.5분이었지만, 버스가 붙어 다닌 시간은 각각 73.1분, 76.5분이었습니다.

버스를 정류장에 세워 두면 오히려 늦어지지 않나요?

버스 안 승객은 조금 늦어지지만, 정류장에서 기다리는 사람 전체로 보면 대기가 줄어듭니다. 앞차와 너무 가까울 때만 최대 2분 세우는 규칙으로 평균 대기가 4.8분에서 3.6분으로, 운 나쁜 5%의 대기가 12.4분에서 9.3분으로 줄었습니다.

평균 대기가 배차 간격의 절반보다 긴 이유는 무엇인가요?

승객이 무작위로 도착하면 긴 간격 사이에 도착할 확률이 더 높습니다. 간격이 고르면 평균 대기는 배차 간격의 절반이지만, 간격이 들쭉날쭉할수록 평균 대기가 길어집니다. 몰림이 승객에게 손해인 이유입니다.

이 시뮬레이션은 어떤 방법으로 만들었나요?

정류장 12곳, 버스 여러 대, 무작위로 도착하는 승객을 1초 단위로 계산하는 이산 시간 시뮬레이션입니다. 웹 브라우저에서 바로 돌아가도록 자바스크립트와 three.js로 만들었습니다.

참고 자료

다른 일상 시뮬레이션

마트 주차장주차면·손님 수·주차 시간을 바꿔, 만차일 때 몇 대가 돌다 포기하는지 봅니다.비행기 탑승탑승 순서 5가지를 바꿔 보며, 통로 정체와 자리 비켜주기가 탑승 시간을 얼마나 늘리는지 봅니다.구내식당 점심시간배식 라인·좌석·시차 점심을 바꿔, 12시 몰림 때 줄과 자리 대기가 얼마나 줄어드는지 봅니다.공장 생산 라인사이클타임·버퍼·고장을 바꿔, 어느 공정을 고쳐야 하루 생산량이 늘어나는지 봅니다.출근길 지하철배차 간격·칸 수·시차 출근을 바꿔, 출근길 승강장에서 몇 명이 열차를 그냥 보내는지 봅니다.출근길 엘리베이터대수·정원·운행 방식을 바꿔, 출근 시간 로비 줄과 지각자가 얼마나 줄어드는지 봅니다.화장실 줄여자 칸·남자 변기·성비를 바꿔, 인터미션 안에 못 돌아오는 사람이 얼마나 생기는지 봅니다.카페 주문 대기주문 창구·바리스타·모바일 주문을 바꿔, 병목이 주문에서 픽업대로 옮겨 가는 모습을 봅니다.마트 계산대따로 줄과 한 줄 서기, 셀프계산대를 바꿔 '내 줄만 늦는' 이유를 봅니다.놀이공원 대기줄패스 손님 비율과 운행 중단을 바꿔, 일반 줄 대기가 어떻게 늘어나는지 봅니다.공항 보안검색대검색 레인 수와 준비 안 된 승객 비율을 바꿔, 아침 출국장 대기가 어떻게 폭발하는지 봅니다.신호 교차로꼬리물기 비율과 앞 교차로 정체를 바꿔, 녹색 신호를 받고도 못 가는 시간이 얼마나 생기는지 봅니다.지퍼식 합류차로가 하나 막힐 때 미리 옮겨 타기, 끝에서 번갈아 들어가기, 반반 섞이기를 비교해 대기 줄 길이를 봅니다.배달 라이더 배차라이더 수·묶음 배달·조리 시간을 바꿔, 저녁 7시 주문이 왜 30분을 넘기는지 봅니다.

마지막 업데이트 2026-10-22 · 만든 곳 데이터팝콘 · 유튜브 @simulation.hanjang · 인스타그램