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는 일종의 디스크 절전 모드 또는 중단 또는 종료 할 수없는 절전 모드로 전환됩니다. 그는 신호를받지 못하고, 아무것도 폴링하지 않고, 공원에서 나왔습니다.
이것은 실용적인 잠금없는 프로그래밍을 유도하는 일종의 이론입니다. 그것은 사실 식사 철학자 문제 만큼이나 흥미 롭습니다 .
디즈니가가는 한. 이것은 버그가 아니며, 그 특징이며, 사람들은 돈을 쓰려는 경향이 있지만 공원을 떠나는 경향이 적습니다.
나는 이것을 당신이 비동기 프로그래밍 모델 과 비교할 수있는 방법으로 생각한다 .
시스템에 작업을 실행하도록 요청하면 결과를 위해 나중에 다시 올 것입니다.
가장 큰 차이점은 완료시 호출 할 이벤트 / 콜백을 지정하거나 대기 준비가 된 시간에 대기를 입력해야한다는 것입니다. 나는 나중에 다시 와서 더 낮은 대기 시간을 보장한다고 말하는 메커니즘을 보지 못했습니다.
In an ordinary queue you can't really estimate how fast you get your ride. You're nervous and sometimes think about just dropping the idea.
With FastPass you "know" that the ride will happen in a precisely defined time period. You are "sure" about when this happens and think about quitting less often. You go shopping and eating and return when needed. You are likely to return since you have applied for the ride in advance and feel commitment. Joel Spolsky describes a similar commitment idea used at Starbucks queues.
So FastPass is a kind of convenience for both the park and the visitors. Visitors are more delighted and the park can sell them more while they are waiting.
Just an example of good social engineering.
To me this seems like a priority queue.
When first taking a SpeedPass one achieves a higher priority. Then when popping off the general line queue
the SpeedPass has greater priority in the queue.
And if we're in agreement that this is a priority queue, then the most obvious software implementation is OS scheduling
Modified from the scheduling wiki article:
The Disney Land scheduler is concerned mainly with:
- Ride utilization - to keep the ride as busy as possible.
- Throughput - number of people that complete their ride per time unit.
- Turnaround - amount of time to execute a particular ride.
- Waiting time - amount of time a person has been waiting in the ready queue.
- Response time - amount of time it takes from when the line was queued until the first response is produced.
- Fairness - Equal ride time to each person.
The FastPass idea to me looks like a solution for systems where I need to perform tasks 1 through N and based on some knowledge I have about myself (at Disney, I might know that my kids would be plenty happy riding Test Track while waiting for the Soarin' FastPass time slice to arrive) I could schedule myself to go into 'FastPass' queue for task N and also get into the standard queue for task M. This would work where the order of task isn't necessarily important and where queue time was known and I could estimate how long it would take to do task M or N. Not sure I've got a good real-world programming example though - much of our thinking is linear in nature and so our workflows tend to be that way.
FastPass allows you to wait in multiple lines at the same time. It allows you to avoid waiting, but increases the average wait time because the lines effectively get longer.
But most people don't spent their entire time going on rides. Some events, like the parades, don't really have a waiting time. By using a fast pass you can go to more of these no-line or short-line events without sacrificing as many long-line rides.
There are two places that come to mind that have similar behavior in software development for me. However, neither is an exact analogy, since they both require
The first is asynchronous programming. As mentioned before, there are some differences between the async model and the fastpass model, in terms of how you wait. However, some other programming models (such as Message Passing Interface) give you some other options, which probably get a little closer to the FastPass model.
In particular, I was thinking of the MPI_Gather methods in MPI - they use a model that's probably a little bit closer. Every function is passed out around the cluster, and then you can call gather from the root to get the currently processed data. The goal is the same (keeping everyone waiting less [not blocking on the user] and walking around, spending [or processing data]).
The other place I can see a similarity is in advanced threaded programming models, such as the new scheduler in the TPL. One of the main advantages of the TPL coming in C# 4 is that the scheduler will allow work stealing, which to me seems like a clear implementation in software of trying to shift around the lines dynamically - which ties back to FastPass. One of the nice things with fastpass is that you sit in line less, and ride more, and move around more. With TPL, there is (hopefully) less blocking and waiting, since a thread who has finished its queue can steal tasks from other queues.
One interesting aspect of FastPass is that it introduces a feedback channel for Disney. By having a single line that almost always waits for attraction to become available there is not much you can do except somehow measure how long the line is at fixed time intervals during the day. Using FastPass Disney collects demand and traffic data per attraction in real time and already digitized - it should go to their data warehouse for mining right away.
I tend to agree that those who qualify FastPass as a resource allocation system more than a resource queueing system. Another analogy would be to treat every Disney customer as OS process that is a single-threaded until a customer picks up a FastPass. This makes customer a 2-threaded process that keeps cycling throughout the park as before and is running another thread that waits its turn for designated resource (FastPass attraction). Allowing multiple FastPasses to users (processes) will make such processes more multithreaded. Thread synchronization takes place when customer finally gets to FastPass attraction to enjoy it.
The only software analogy I can see is that this method avoids overflowing the queue buffer - if many clients all try to add to a queue at roughly the same time it could quickly fill up that queue. If clients are asked to wait a given length of time then they have to buffer their (relatively) fewer items locally before adding to the queue.
In most other cases however this leads to less efficient throughput as it could lead to the queue becomming starved if the wait times are poorly chosen.
Try writing a test application that uses queueing both with and without 'FastPass' under various metrics and comparing the results - and let us know if you find anything interesting! :)
Don't know about how it would be applied in software. But the system definitely has its advantages for visitors: you can have a Fastpass for one ride, and meanwhile go to another ride whose line isn't as long (or, as you say, go shopping, eating, etc.). It was quite the lifesaver when I and my family were there (though admittedly, it was the off-season).
Given that it's being exploited, you'd have to trust the queue users ;-)
From my supply chain class, the aspect of queuing that came to me immediately is that is reduces your perceived wait time, so people don't mind waiting at all. I don't think it shortens the main lines, but it does ease somebody's anxiety about waiting in the regular line, since they know that as soon as they get off the ride, they can get right back on a second time (if their fastpass time is up, anyway).
I know that perceive that I can ride way more rides with the fastpass, though I don't know if it's actually the case or if it's just a clever re-framing of my wait time.
the only explanation I have found is that it is designed to get people out of the lines and doing things that will bring in additional revenue (shopping, eating, etc).
I think you've hit on the main point there, but you make it sound more corporate-evil than perhaps it deserves. I'd certainly rather “virtually queue” whilst shopping and eating than physically queue in a line.
Theoretically, FastPass could try to schedule more people at times when natural demand was lower; that's what you'd do to get more throughput out of a real scheduled queue. But in practice, I suspect the rides are operating pretty much at capacity for most of the day, so there is little productivity to be gained from this.
It is about resource scheduling for popular rides as well as a way to generate additional revenue by selling merchandise. If you are waiting in a line, it means that you aren't afforded the opportunity to spend more money.
It is in Disney's best interest to satisfy their customers. While merchandising is surely significant revenue, getting repeat customers is many times more valuable.
If I pay $150 for a 1 day park-hopper ticket and only get to go 10 rides because the lines are so long I would question whether those rides are really worth $15 dollars a piece. If, however, there is a way for me go on 30 rides then I will have a better experience, be less likely to question the value of that experience and be more likely to return and give Disneyland another $150 + food + merchandise.
Prior to FastPass, the only differentiator between my riding 10 rides and 30 rides was how crowded the park was. This is a common problem that other desirable attractions have attempted to address in other ways. For example, Northstar ski resort at Tahoe will limit the number of lift tickets they sell on a given day (or at least they used to). This also addresses the problem, but in a way that more negatively impacts revenue.
In software, a similar paradigm would be loading a web page. In ancient times this process was single threaded: get all the content, render all the content and display the page. As traffic and data increased (specifically the incorporation of images) this model faced the same problem as Disneyland. If there were a lot images on the page and it took a long time to load, I wouldn't wait around for the content and might not bother ever coming back to that site.
Now days web pages are loaded differently. The content is loaded, rendered and displayed first while another thread loads, renders and displays the images. This vastly improves the user experience and, provided there is desirable content, I will continue to come back to the site and it can turn my repeated page views into $$$.
This resembles a real-time OS in some regard.
Some processes has a fast pass, and are marked as real-time.
They have a guarantee that they will get the resource within a certain time period. They don't get to jump the queue, but they can push in! While they are not using the ride, other non real-time guests can use it.
-Alex
This is great stuff. Disney is essentially making two queues, with linearly lower service rates depending on the number of FASTpass's distributed.
The short FASTpass queue can be modeled as a queue that's always in equilibrium for a short wait. Keeping the queue short minimizes feedback between the two queues -- which is good for stochastic modeling. The other queue is a typical queue, with a slower service rate.
Of course, if the FASTpass quota ever got too large, feeback between the two queues would ensue, making the system Chaotic, and minimizing the effect of queueing models to describe the results.
Another strategy is to minimize user waits would be strictly to schedule rides by appointment, in which case it's a pure batch queue, and easy to optimize. I don't think that would work in the USA. :-)
You do not get on more rides. The lines for unpopular lines are longer now, because more people are killing time on them while waiting for their popular-ride passes to mature. Capacity is capacity.
"Twitter is currently really busy. Please come back between 15:00 and 15:15 and we guarantee to get you your tweets in 5 seconds or less."
참고 URL : https://stackoverflow.com/questions/643032/is-disneys-fastpass-valid-and-or-useful-queue-theory
'Programing' 카테고리의 다른 글
3/4가 참인지 테스트하는 논리 (0) | 2020.05.31 |
---|---|
인덱싱없이 파일 내에서 문자열을 검색하는 도구 (0) | 2020.05.31 |
태깅을위한 데이터베이스 디자인 (0) | 2020.05.31 |
MS Excel 버전 관리를 수행하는 가장 좋은 방법 (0) | 2020.05.31 |
누구나 파이썬의 상대적 수입을 설명 할 수 있습니까? (0) | 2020.05.31 |