◀ 실험실로

버스는 왜 꼭 두 대씩 올까

교통
버스는 왜 꼭
두 대씩 올까?
8:00
버스를 직접 눌러 1분 늦추기 (무대에서 버스를 누르거나 아래 버튼)
카메라

대책

앞차와 너무 가까워진 버스를 4번·7번 정류장에서 잠깐 세운다(홀딩)

조건

슬라이더·숫자 입력·값 버튼 어느 쪽으로 바꿔도 돼요. 조건을 바꾸면 지금 시각을 유지한 채 바로 다시 계산해요. 앞차 지연도 흔들림도 0이면 아무것도 어긋나지 않아 몰림이 생기지 않아요.

미션

  1. 이 실험의 미션을 불러오는 중…

미션 달성은 이 기기에만 기록돼요. 결과는 계산을 읽기만 하고 바꾸지 않아요.

무슨 실험인가요?

버스가 10분 간격으로 출발합니다. 맨 앞 버스가 첫 구간에서 신호에 1분만 걸려 늦어지면, 그 정류장에는 평소보다 사람이 1분어치 더 쌓입니다. 앞차는 그 사람들을 다 태우느라 정류장에 더 오래 서고, 그 사이 뒤차는 사람이 적은 정류장을 빨리 지나 따라붙습니다. 어긋남이 정류장마다 조금씩 커져서 끝내는 두 대가 바짝 붙어 오고, 그 뒤에는 20분 가까이 버스가 안 오게 됩니다. 이것이 「버스 몰림」입니다. 누가 잘못한 것이 아니라, 승객이 일정하게 온다는 단순한 조건만으로 생기는 현상입니다.

조건을 바꾸면

  • 앞차 첫 지연과 길 흔들림이 몰림의 방아쇠입니다. 둘 다 0이면 아무것도 어긋나지 않아서 몰리지 않습니다.
  • 승객 도착 속도와 승하차 시간이 클수록 앞차가 정류장에 오래 서서 어긋남이 빨리 커집니다. 둘을 곱한 값이 60 이상이면 태우는 속도가 사람이 오는 속도를 못 따라가 버스가 끝없이 늦어집니다.
  • 잠깐 세움은 앞차와 간격이 배차 간격의 일정 비율(기본 80%)보다 가까운 버스를 4번·7번 정류장에서 그만큼 세우는 대책입니다. 영상에서는 앞차와 뒤차 사이가 0분에서 5.4분으로, 뒤차와 초록 버스 사이가 약 20분에서 약 10분으로 바뀝니다. 이 페이지도 같은 숫자가 나옵니다.
  • 버스를 직접 눌러 1분 늦춰 보세요. 지금 가고 있는 버스의 다음 구간에 1분이 더해집니다. 같은 버스를 여러 번 누르면 그만큼 늦어지고, 「늦춘 곳 지우기」로 되돌립니다. 늦춘 곳은 재현 링크에 함께 담깁니다.
  • 새 시드는 길 흔들림의 무작위 값만 바꿉니다. 길 흔들림이 0이면 계산에 난수가 없어서 결과가 같습니다.

계산 규칙과 한계

영상 계산(sim.py)과 같은 규칙입니다. 정류장 10곳, 구간마다 2분, 모든 버스의 달리는 시간이 같고, 승객은 정류장마다 일정한 속도로 옵니다. 추월은 안 하고, 앞차가 아직 정류장에 있으면 앞차가 그 사람들을 다 태웁니다. 기본값에서는 영상 계산 결과(sim.json)와 도착·출발 시각이 0.001분 안쪽으로 같습니다. 영상의 「세우는 기준 8분」은 배차 간격의 80%로 일반화했고, 길 흔들림(구간마다 0~N초를 시드 난수로 더하기)은 영상에 없던 요소입니다.

평균 기다림은 정류장마다 연속한 두 버스 사이에 온 사람이 간격의 절반만큼 기다린다고 보고 합친 값이고, 몰린 쌍은 10번 정류장에서 간격이 배차 간격의 20% 미만인 버스 쌍입니다. 둘 다 영상에 없던 지표라 영상 숫자와 비교할 값은 없습니다.

한계: 노선은 한 번 지나가는 10개 정류장이고(순환 노선이 아님), 신호 대기·막힘은 구간 가운데서 멈추는 것으로 그립니다. 줄 선 사람 그림은 정류장당 70명(비교 화면은 40명)까지만 그리고 숫자는 실제 값을 씁니다. 버스 안 사람 그림은 근사라서 숫자로 쓰지 않습니다. 현실의 버스는 운전사, 신호, 승객 행동이 훨씬 복잡합니다. 이 모형은 「단순한 규칙만으로도 몰림이 생긴다」는 한 가지 성질을 보여 줍니다.

휴대폰에서는 가로로 긴 무대를 억지로 줄이는 대신 무대 비율을 바꾸고, 무대 위 글자(칩·자막)는 무대 아래로 옮겼습니다. 비교 화면은 두 칸이 위아래로 쌓이고, 무거워서 한 번에 한 칸씩 번갈아 그립니다.

이 실험의 원본 영상한참 기다린 버스가 두 대씩 오는 이유, 버스 몰림▶ 유튜브에서 보기

다른 카트리지

재밌었다면 채널에 새 실험 영상이 계속 올라와요.

▶ 채널 구독