[algorithm] Disney의 FastPass가 유효하고 유용한 대기열 이론입니까?

Disney World에서는 Fastpass 라는 시스템을 사용하여 인기있는 라이딩을위한 짧은 라인을 만듭니다. 아이디어는 표준 라인에서 기다릴 수 있으며, 종종 1 시간 이상 기다릴 수도 있고, 지정된 시간 동안 (보통 몇 시간 후) 다시 올릴 수있는 FastPass를 얻을 수도 있습니다. 분 이하. FastPass를 사용하면 한 번에 한 번만 “대기”할 수 있습니다.

나는이 개념의 배후 이론을 알아 내려고 노력했지만, 내가 찾은 유일한 설명은 사람들이 줄을 서서 더 많은 수입 (쇼핑, 식사 등)을 가져올 일을하도록 설계되었다는 것입니다.

이것이 FastPass가 구현 된 이유입니까, 아니면 실제 방문자 효율성 문제가 있습니까? 유사한 논리를 적용한 소프트웨어 응용 프로그램이 있습니까? 유사한 논리를 적용 해야하는 소프트웨어 응용 프로그램이 있습니까?

소프트웨어에서 비슷한 것을 구현할 때 나타나는 문제 중 하나는 사용자가 대기열을 선택한다는 점입니다. 소프트웨어에서 더 빠른 대기주기를 수행하려면이 이론을 잘 적용하려면 최종 사용자의 선택없이 요구에 따라 대기열을 배치 할 대기열을 알 수있을만큼 똑똑해야합니다.



답변

빠른 패스 라인은 분명히 주어진 탑승 대기열에서 총 처리량을 증가 시키지는 않지만 사람과 탑승이 자원 인 자원 예약 및 자원 할당에 도움이됩니다.

내가 말했듯이, 당신은 말을 타고 더 많은 총 처리량을 만들지 않을 것입니다. 그러나 다른 곳에서는 타기가 덜 활용 될 수 있습니다. 이제이 놀이기구와 기다릴 수있는 놀이기구를 탈 수 있다면 공원의 전체 효율성을 높일 수 있습니다. 이것이 의미하는 바는 승객 수용량 미만으로 운행하는 탑승 량을 최소화하는 것입니다.

컴퓨터 리소스가 유휴 상태이고 시간이 오래 걸릴 수있는 작업을 수행하기 위해 대기하는 경우이 리소스를 그 동안 다른 용도로 활용하는 것이 합리적입니까? 그 관점에서 간단합니다.


답변

대기열 효율성이 아니라 누적에 관한 것입니다.

Fastpass는 대기열의 개별 항목이 무언가를 “소비”하는 데보다 효율적이기 때문에 작동합니다. 사람들이 음식을 기다리고 있기 때문에 명령 실행을 기다리는 프로세서와 같은 대기열은 아닙니다.

디즈니 랜드 사람들의 경우 재미 를 극대화 할 수 있습니다 .

프로세서가 지시를 받아들이는 것에 대해 생각해보십시오. 각 명령은 작업을 수행하기 위해 대기열에서 실행되기를 기다리고 있습니다. 이제 명령을 실행하지 말고 프로세서에서 무언가 를 얻기 위해 각 명령이 대기 중이라고 상상 하십시오. 프로세서 에 도달 할 때마다 금색 별표가 표시되며 작업은이 중 많은 수를 축적해야합니다 가능한 한.

Fastpass는 금메달을 얻기 위해 메인 프로세서로 돌아 가기 전에 명령이 다른 곳으로 이동하거나 다른 프로세서로 이동하여 금색 별을 얻는 것과 같습니다.

Disneyland 사용자의 경우, 놀이기구 경험을 쌓는 재미에 관심이 있습니다. 패스트 패스는 사용자가 더 짧은 라인으로 다른 라이드를 찾을 수 있도록하여 최대한 짧은 시간에 더 많이 축적 할 수 있도록합니다.


답변

FastPass를 시도했지만 이것이 내가 보는 방법입니다.

대기 시간이 1 시간 인 승차감을한다고 가정 해 봅시다. FastPass에 가면 즉시 입장 할 수있는 지정된 기간이 주어집니다. 보통 1 시간 이상이 지나면됩니다.

우리는 인기있는 놀이기구에 대한 FastPasses를 얻었고 그 시간 동안 10-15m 대기열에 대기하여 FastPass 가상 대기열에있는 동안 대기열에 넣고 3 개의 놀이기구로 갈 수있었습니다. 그들은 또한 우리에게 인기없는 놀이기구에 계산되지 않은 FastPasses를 추가로주었습니다.

다음은 우리가 보낸 시간과 비 패스 패스 옵션을 비교 한 그래픽입니다.

빠른 패스

그것은 유효한 대기열 이론으로 보입니다. 예상 대기 시간이 적은 자원을 실행할 수 있으며 예상 대기 시간이 더 높은 자원을 더 많이 지연시킬 수 있습니다.


답변

FastPass는 기본적으로 어떤 종류의 우선 순위 대기열로 비 차단 방문자를 구현합니다. 그들은 막지 않고, 잠들지 않으며, 돈을 소비합니다. john이 오전 11시에 사용하기 때문에 작동합니다. joe는 오전 11시 15 분 (또는 오전 11시 01 분)에 사용합니다. 이제 모든 사람들이 빠른 패스를 가졌다면 대부분의 방문객들은 음식과 선물에 더 많은 돈을 소비하는 반면 일반 노선은 훨씬 빨라질 것입니다. Disney의 경우 이것은 원하는 효과입니다.

패스는 몇 가지 가정을하고 제한이 있습니다. 그것은 패스 패스 소지자가 소수라고 가정합니다. 만약 그것이 바뀌면, 그들은 여러 번의 라이드에서 패스 작업을해야하거나, 패스 패스 소지자는 정규 라인에있는 사람들을 거의 보지 않고 돈을 소비 할 것입니다. 한 번의 승차 만 지원되므로 두 명의 패스 패스 소지자는 한 번에 동일한 승차를 요구하지 않습니다.

이제 Joe가 자신의 차례를 시작하기 전에 공원을 떠날 수 있다는 점을 고려하면 시스템을 효율적으로 만들기 위해 일종의 방문자 ‘futex’를 만들어야합니다. 조가 떠나고 존이 일찍 도착하면 존은 탈 수있었습니다. 더욱이, John은 왜 그의 빠른 패스로 인해 nn 분 더 빨리 뛸 수 있는지 알지 못했습니다. 그것이 정말로 재미있어지는 곳입니다. Joe가 차에서 자외선 차단제를 얻기 위해 떠났을 때 어떨까요? 결국, 선회를 막는 동안 차단할 수없는 200 명 이상의 사람들이 공원을 떠나지 않는 한, 그의 차례는 2 시간 거리에 있습니다. 따라서이 경우 Joe는 일종의 디스크 절전 모드 또는 중단 또는 종료 할 수없는 절전 모드로 전환됩니다. 그는 신호를받지 못하고, 아무것도 폴링하지 않고, 공원에서 나왔습니다.

이것은 실용적인 잠금없는 프로그래밍을 유도하는 일종의 이론입니다. 그것은 사실 식사 철학자 문제 만큼이나 흥미 롭습니다 .

디즈니가가는 한. 이것은 버그가 아니며, 그 특징이며, 사람들은 돈을 쓰려는 경향이 있지만 공원을 떠나는 경향이 적습니다.


답변

보통 줄에서는 실제로 얼마나 빨리 타는 지 추정 할 수 없습니다. 당신은 긴장하고 때로는 아이디어를 떨어 뜨리는 것에 대해 생각합니다.

FastPass를 사용하면 정확하게 정의 된 시간 내에 주행이 발생한다는 것을 “인식”합니다. 이런 일이 언제 일어 났는지 “확인”하고 덜 자주 종료하는 것을 생각하십시오. 쇼핑을하고 음식을 먹고 필요할 때 돌아옵니다. 사전에 탑승 신청을하고 돌아 왔을 때 돌아올 가능성이 높습니다. Joel Spolsky 는 Starbucks 대기열에서 사용 된 유사한 확약 아이디어를 설명합니다 .

따라서 FastPass는 공원과 방문객 모두에게 편리합니다. 방문객들은 더 기뻐하며 공원은 기다리는 동안 더 많이 팔 수 있습니다.

좋은 사회 공학의 예일뿐입니다.


답변

나는 이것을 당신이 비동기 프로그래밍 모델 과 비교할 수있는 방법으로 생각한다 .

시스템에 작업을 실행하도록 요청하면 결과를 위해 나중에 다시 올 것입니다.

가장 큰 차이점은 완료시 호출 할 이벤트 / 콜백을 지정하거나 대기 준비가 된 시간에 대기를 입력해야한다는 것입니다. 나는 나중에 다시 와서 더 낮은 대기 시간을 보장한다고 말하는 메커니즘을 보지 못했습니다.


답변

나에게 이것은 우선 순위 대기열 처럼 보인다 .

SpeedPass를 처음 복용하면 우선 순위가 더 높습니다. 오프 그런 터지는 경우 스피드 패스 (Speedpass)가 큐에 더 큰 우선 순위를가집니다.general line queue

그리고 이것이 우선 순위 대기열이라는 데 동의하면 가장 확실한 소프트웨어 구현은 OS 스케줄링입니다.

스케줄링 위키 기사에서 수정 :

디즈니 랜드의 스케줄러는 주로 관한 것이다 :

  • 라이드 활용-가능한 한 바쁘게 타십시오.
  • 처리량-시간당 타기를 완료 한 사람들의 수입니다.
  • 처리 시간-특정 승차 시간.
  • 대기 시간-사람이 준비 대기열에서 대기 한 시간입니다.
  • 응답 시간-라인이 대기 한 후 첫 번째 응답이 생성 될 때까지 걸리는 시간입니다.
  • 공정성-각 사람에게 동일한 승차 시간.