엘리베이터 스케줄링 알고리즘: LOOK, RSR, 및 Destination Dispatch

엘리베이터 대기 시간은 호출에 차를 배정하는 데 사용되는 디스패치 알고리즘에 크게 좌우됩니다. LOOK과 같은 간단한 알고리즘은 Otis' RSR 또는 Destination Dispatch와 같은 더 복잡한 계획보다 일반적인 사무실 건물에서 종종 더 나은 성능 또는 비슷한 성능을 제공합니다.

한 대의 엘리베이터: SCAN과 LOOK

LOOK 알고리즘은 SCAN의 변형으로, 엘리베이터 이동의 기본 기대를 제공합니다. 로비에서 시작하여 가장 높은Pending 요청까지 위로만 이동한 후 방향을 바꾸어 아래로 향하는 요청을 처리하며, 길을 따라 승객을 태우고 내립니다. 이는 항상 최상층까지 갔다가 방향을 바꾸는 원래의 SCAN(또는 "엘리베이터" ) 특허와 다릅니다.

여러 대의 엘리베이터와 기본 조정

여러 대의 엘리베이터가 있을 때, 중앙 스케줄러는 각 호출을 가장 가까운 유휴 엘리베이터에 배정합니다. 이 가장 가까운 차 규칙은 이미 탑승한 승객 수와 차가 호출자를 향해 이동하고 있는지 아니면 멀어지고 있는지 고려하지 않으며, 가장 가까운 차가 가득 차 있거나 잘못된 방향으로 이동하고 있을 때 비효율적인 배정을 초래할 수 있습니다.

성능 측정: 대기 시간 분포

엔지니어는 평균보다는 대기 시간 백분율을 사용하여 알고리즘을 평가합니다. 탑승자는 긴 대기를 기억하기 때문입니다. p50이 1 분이면 모든 탑승의 절반이 1분 이하 대기함을 의미하며, p90이 2 분이면 탑승의 90%가 2분 이하 대기함을 의미합니다. 해당 문서의 히스토그램은 다양한 유입률에서 이러한 지표를 보여줍니다—for example, 14 요청/분에서는 LOOK 알고리즘이 p90 약 2 분을 보이고, 8 요청/분에서는 p90이 개선됩니다.

아침 러시와 교통 패턴

피크 기간 동안 교통은 매우 방향성이 강합니다. 큰 기업 사무실에서는 아침 교통이 로비에서 상층으로의 이동이 지배적이며, 저녁 교통은 반대가 되고, 점심 시간에는 양 방향이 혼합됩니다. 이러한 비대칭으로 인해 아침 러시는 대기 시간 통계에서 최악의 경우가 되며, 엘리베이터는 대부분 단방향 흐름을 обслужи하는 데 시간을 보냅니다.

더 똑똑한 엘리베이터: Otis’ RSR

RSR은 기본 ETA‑to‑pickup 점수에 미세한 페널티와 보너스를 추가합니다:

  • 픽업까지의 ETA – 차가 호출에 도달하는 시간.
  • 탑승 부하 페널티 – 현재 승객 수에 따라 증가합니다.
  • 같은 방향 반 bunching 페널티 – 같은 방향으로 이동 중인 다른 차가 이미 목표로 삼은 층으로 차를 보내는 것을 억제합니다.
  • 방향 일치 보너스 – 이미 원하는 방향으로 이동 중인 차에 보상을 줍니다.
  • 인접한 유휴 보너스 – 호출자로부터 두 층 이내에 있는 유휴 차를 선호합니다.
  • 낮은 부하 보너스 – 승객이 적은 차를 선호합니다. 이 시스템은 5초마다 이러한 점수를 다시 계산하여, 처음에는 엘리베이터 A에 배정된 승객이 지연이 발생하면 엘리베이터 B로 재배정될 수 있도록 합니다.

LOOK vs RSR: 벤치마크 결과

문서의 시뮬레이션 결과는 유입률에 따라 LOOK과 RSR을 비교합니다:

  • 14 요청/분에서는 LOOK과 RSR이 wait‑< 30 s 및 wait‑< 90 s 비율이 비슷합니다.
  • 8 요청/분에서는 RSR이 wait‑< 30 s 및 wait‑< 90 s 수치가 약간 더 좋습니다.
  • 유입률이 증가함에 따라 LOOK이 RSR보다 우수하기 시작하는데, 이는 차가 постоянно 가득 차 있고 모든 층에 정차할 때 RSR의 추가 규칙이 거의 도움이 되지 않기 때문입니다.
  • LOOK은 또한 은행당 엘리베이터 수가 적은 작은 건물에서 간단함으로 인해 오버헤드가 줄어들어 RSR을 이기는 경향이 있습니다. これらの発見は、「単純さがしばしば複雑さに勝つ」というコメント【@heironimus】と一致します。

Destination Dispatch: 트레이드오프

Destination Dispatch는 호출 버튼을 대체하여 특정 엘리베이터를 알려주는 층 키오스크를 사용합니다.これによりスケジューラーは完全な目的地情報を得られますが、剛性が導入されます:一度車が割り当てられたら、条件が変わっても別のエレベーターに乗り換えることはできません。この記事では、この柔軟性の欠如により、Destination Dispatchは従来の上/下ボタンよりも待ち時間が悪くなることが多いと指摘しています。ただし、各バンクに8台以上のエレベーターがある非常に高いビルを除きます。 この直感に反する結果は、5秒ごとの再最適化ループによるものです。「キオスクは剛性を強制し、割り当てられたエレベーターに乗らなければなりません。エレベーターを呼んでから30秒後の世界の状態は大きく変わっているかもしれませんが、システムは適応できません」【@JoshTriplett】。 ただし、Destination Dispatchは同じ階に向かう大規模なグループが多い交通状況では、それらの乗客をバッチ処理することで優れた 성능을 발휘할 수 있습니다【@omoikane】。

전체 시뮬레이션 통찰

대화형 시뮬레이터는 층 수, 엘리베이터 수, 요청 유입을 조정할 수 있게 해줍니다. 이러한 매개변수를 조정하면 LOOK, RSR, Destination Dispatch 간의 균형이 어떻게 변하는지를 보여줍니다—for example, 8층, 4대 엘리베이터, 18 요청/분에서는 시뮬레이터가 각 알고리즘의 대기 시간 백분율을 표시합니다. 이는 최적 알고리즘이 특정 건물의 교통 패턴과 엘리베이터 용량에 따라 달라진다는 것을 강화합니다.

인간 요인과 실무적 고려사항

실제 엘리베이터 성능은 순수한 스케줄링 로직 이상의 영향을 받습니다:

  • 사용자 행동: 많은 탑승자가 상행 및 하행 버튼을 모두 눌러 도착을 앞당긴다고 잘못 믿지만, 이는 불필요한 정지와 혼란을 초래합니다【@olex】.
  • 용량 감지: 신뢰할 수 있는 만차 감지기가 없으면 엘리베이터가 만차임에도 불구하고 모든 층에 정차하여, 가득 찬 엘리베이터 밖에서 crowds가 기다리는 답답한 상황이 발생할 수 있습니다【@vova_hn2】.
  • 마모 및 손상: 대기 시간을 줄이기 위한 적극적인 재배치는 기계적 마모를 증가시킬 수 있으며, 승객 지연과 유지보수 비용 사이의 trade‑off를 시사합니다【@taftster】.
  • 심리적 대기: 대기 중에 distraction 또는 진행 상황을 제공하면 실제 대기 시간이 변하지 않더라도 만족도를 높일 수 있습니다【@psadri】.
  • Prefetching 전략: Apple Park과 같은 일부 설치에서는 호출 후 유휴 엘리베이터를 지상층으로 이동시켜 향후 응답 시간을 줄입니다【@ladberg】. 이러한 요소들은 시뮬레이션에서의 "최적" 알고리즘이 승객이 실제로 체감하는 최적과 다를 수 있음을 보여줍니다.

Sources