En Disney World, usan un sistema llamado Fastpass para crear una segunda línea más corta para los viajes populares. La idea es que puede esperar en la línea estándar, a menudo con una espera de más de una hora, o puede obtener un FastPass que le permite regresar durante un bloque de tiempo específico (generalmente un par de horas más tarde) y solo esperar 10 minutos o menos. Solo puede estar "esperando" un viaje a la vez con un FastPass.
He estado tratando de descubrir la teoría de la cola detrás de este concepto, pero la única explicación que he encontrado es que está diseñado para sacar a la gente de las líneas y hacer cosas que generarán ingresos adicionales (compras, comidas, etc.).
¿Es por eso que se implementó FastPass, o hay un problema real de eficiencia del visitante que está resolviendo? ¿Existen aplicaciones de software que hayan aplicado una lógica similar? ¿Existen aplicaciones de software que deberían aplicar una lógica similar?
Parte del problema que veo con la implementación de algo similar en el software es que se basa en que los usuarios eligen su cola. Para los ciclos de espera más rápidos en el software, creo que una buena aplicación de esta teoría requeriría que la aplicación sea lo suficientemente inteligente como para saber en qué colas ubicar a las personas según sus necesidades sin requerir la elección del usuario final.
fuente
Respuestas:
La línea de pase rápido obviamente no aumentará el rendimiento total en una cola de viaje determinada, pero ayuda en la programación de recursos y la asignación de recursos donde las personas y los viajes son los recursos.
Como dije, no va a crear más rendimiento total para dicho viaje, pero puede haber viajes subutilizados en otros lugares. Si ahora puede montar estas atracciones, así como las atracciones que tiene que esperar, entonces puede aumentar la eficiencia general del parque. Lo que quiero decir con eso es minimizar la cantidad de viajes que se ejecutan por debajo de la capacidad de pasajeros.
Si tiene recursos de computadora inactivos, esperando para realizar una tarea que puede llevar mucho tiempo, tiene sentido utilizar este recurso para otra cosa mientras tanto, ¿verdad? Es simple desde esa perspectiva.
fuente
Se trata de la acumulación, no de la eficiencia de la cola.
Fastpass funciona porque hace que los elementos individuales en la cola sean más eficientes para "consumir" algo. No es tanto una cola como un procesador esperando instrucciones para ejecutar, sino personas esperando en la cola para comer.
En el caso de las personas en Disneyland, les permite maximizar su diversión .
Piensa en un procesador que acepte instrucciones. Cada instrucción está esperando ser ejecutada en la cola, para realizar su tarea. Ahora cámbielo: imagine que cada instrucción está esperando en línea para no ejecutar una instrucción, sino para obtener algo del procesador; cada vez que golpea un procesador se le recompensa con una estrella dorada, y su trabajo es acumular la mayor cantidad posible de estos. como sea posible.
Fastpass es como permitir que la instrucción vaya a otro lugar, a un procesador diferente, para obtener una estrella dorada allí, antes de regresar al procesador principal para obtener la estrella dorada.
En el caso de los usuarios de Disneyland, están interesados en divertirse, acumulando experiencias de viaje. El Fastpass permite una maximización al permitir que el usuario encuentre un viaje diferente con una línea más corta, para que puedan acumular más en un tiempo más corto.
fuente
He probado FastPass y así es como lo veo:
Supongamos que va a un viaje con 1 hora de tiempo de espera esperado, si va a FastPass, obtendrá un período de tiempo asignado donde se le garantiza la entrada inmediata. Suele pasar más de 1 hora.
Obtuvimos FastPasses para las atracciones populares, y durante ese tiempo, hicimos cola en colas de 10-15m, lo que nos permitió hacer cola e ir a 3 atracciones mientras estábamos en la cola virtual FastPass. También nos dieron FastPasses adicionales sin contar para algunos paseos muy impopulares, si usáramos esos obtendríamos algo de carga de los paseos más populares y llenaríamos los muy impopulares.
Aquí hay un gráfico que compara el tiempo que pasamos frente a la opción sin paso rápido:
Me parece una teoría de colas válida, permite que se ejecuten recursos con menos tiempos de espera esperados, mientras que retrasa aún más uno con un tiempo de espera esperado más alto.
fuente
El FastPass básicamente implementa visitantes sin bloqueo con algún tipo de cola prioritaria. No bloquean, no duermen, gastan dinero. Funciona porque John lo usa a las 11:00 a.m., Joe lo usa a las 11:15 a.m. (o 11:01 a.m.). Ahora, si todos tuvieran un pase rápido, la línea regular sería mucho más rápida mientras que la mayoría de los visitantes gastaran más dinero en comida y regalos. Para Disney, este es el efecto deseado, hasta cierto punto.
El pase hace algunas suposiciones y tiene algunas limitaciones. Se supone que los titulares de pases rápidos son la minoría ... si eso cambiara, tendrían que hacer que el pase funcionara en viajes múltiples, o los titulares de pases rápidos gastarían dinero mientras veían a muy pocas personas en la línea regular ... contraproducente. Dado que solo se admite un viaje, no hay dos titulares de pase rápido que soliciten el mismo viaje a la vez.
Ahora, considerando que Joe podría abandonar el parque antes de tomar su turno, tendría que encontrar algún tipo de 'futex' de visitante para que el sistema sea eficiente. Si Joe se fue, y John llegó temprano, John podría viajar. Por otra parte, John se preguntaría por qué su pase rápido no le notificó que podría andar n minutos antes. Ahí es donde realmente se pone divertido, ¿qué pasa si Joe se fue solo para tomar un poco de protector solar del auto y regresó? Después de todo, su turno está a dos horas de distancia, a menos que 200 personas más antes de él salieran del parque mientras estaba bloqueando (mientras se estaba poniendo protector solar), una tarea que no se puede interrumpir. Entonces, en ese caso, ponemos a Joe en una especie de suspensión de disco, o una suspensión que no se puede interrumpir ni matar. No recibe señales, no está encuestando nada, está fuera del parque.
Este es el tipo de teoría que impulsa la programación práctica sin bloqueo. Es tan interesante como el problema de los filósofos gastronómicos , de hecho más.
En lo que respecta a Disney ... esto no es un error, es una característica, las personas están menos inclinadas a abandonar el parque y están más inclinadas a gastar dinero.
fuente
En una cola normal, no se puede estimar qué tan rápido puede llegar. Estás nervioso y a veces piensas en abandonar la idea.
Con FastPass "sabe" que el viaje se realizará en un período de tiempo definido con precisión. Usted está "seguro" de cuándo sucede esto y piensa en dejar de fumar con menos frecuencia. Usted va de compras y come y regresa cuando es necesario. Es probable que regrese ya que ha solicitado el viaje con anticipación y se siente comprometido. Joel Spolsky describe una idea de compromiso similar utilizada en las colas de Starbucks .
Entonces FastPass es un tipo de conveniencia tanto para el parque como para los visitantes. Los visitantes están más encantados y el parque puede venderlos más mientras esperan.
Solo un ejemplo de buena ingeniería social.
fuente
Creo que podría comparar esto con el modelo de programación asíncrono .
Le pide al sistema que ejecute una acción y volverá más tarde para obtener el resultado.
La gran diferencia es que usted especifica a qué evento / devolución de llamada llamar cuando se realiza o se requiere que ingrese la espera en un momento en que esté listo para esperar. No he visto un mecanismo que le diga que regrese más tarde y le garantice tiempos de espera más bajos.
fuente
Para mí, esto parece una cola prioritaria .
Cuando tomas un SpeedPass por primera vez, alcanzas una prioridad más alta. Luego, al saltar
general line queue
el SpeedPass tiene mayor prioridad en la cola.Y si estamos de acuerdo en que esta es una cola prioritaria, entonces la implementación de software más obvia es la programación del sistema operativo
Modificado del artículo wiki de programación:
fuente
La idea de FastPass me parece una solución para los sistemas en los que necesito realizar las tareas de la 1 a la N y en función de algunos conocimientos que tengo sobre mí mismo (en Disney, podría saber que mis hijos estarían muy felices montando Test Track mientras esperaba el Soarin 'FastPass time segmento para llegar) Podría programarme para entrar en la cola' FastPass 'para la tarea N y también entrar en la cola estándar para la tarea M. Esto funcionaría donde el orden de la tarea no sea necesariamente importante y donde el tiempo de la cola era conocido y podía estimar cuánto tiempo llevaría hacer la tarea M o N. Sin embargo, no estoy seguro de tener un buen ejemplo de programación en el mundo real: gran parte de nuestro pensamiento es de naturaleza lineal y, por lo tanto, nuestros flujos de trabajo tienden a ser así. .
fuente
FastPass le permite esperar en varias líneas al mismo tiempo. Le permite evitar la espera, pero aumenta el tiempo promedio de espera porque las líneas efectivamente se hacen más largas.
Pero la mayoría de la gente no pasa todo el tiempo yendo en paseos. Algunos eventos, como los desfiles, realmente no tienen un tiempo de espera. Mediante el uso de un pase rápido, puede ir a más de estos eventos sin línea o de línea corta sin sacrificar tantos viajes de línea larga.
fuente
Hay dos lugares que me vienen a la mente que tienen un comportamiento similar en el desarrollo de software para mí. Sin embargo, tampoco es una analogía exacta, ya que ambos requieren
El primero es la programación asincrónica. Como se mencionó anteriormente , existen algunas diferencias entre el modelo asíncrono y el modelo de paso rápido, en términos de cómo espera. Sin embargo, algunos otros modelos de programación (como la interfaz de paso de mensajes ) le ofrecen otras opciones, que probablemente se acerquen un poco más al modelo FastPass.
En particular, estaba pensando en los métodos MPI_Gather en MPI: usan un modelo que probablemente esté un poco más cerca. Cada función se distribuye alrededor del clúster, y luego puede llamar a reunir desde la raíz para obtener los datos procesados actualmente. El objetivo es el mismo (mantener a todos esperando menos [sin bloquear al usuario] y caminando, gastando [o procesando datos]).
El otro lugar donde puedo ver una similitud es en los modelos avanzados de programación de subprocesos, como el nuevo planificador en el TPL . Una de las principales ventajas del TPL que viene en C # 4 es que el programador permitirá el robo de trabajo, lo que me parece una implementación clara en el software de tratar de cambiar dinámicamente las líneas, lo que se vincula con FastPass. Una de las cosas buenas de fastpass es que te sientas en la fila menos, conduces más y te mueves más. Con TPL, hay (con suerte) menos bloqueo y espera, ya que un hilo que ha terminado su cola puede robar tareas de otras colas.
fuente
Un aspecto interesante de FastPass es que presenta un canal de comentarios para Disney. Al tener una sola línea que casi siempre espera que la atracción esté disponible, no hay mucho que pueda hacer, excepto medir de alguna manera cuánto tiempo dura la línea a intervalos de tiempo fijos durante el día. Al usar FastPass, Disney recopila datos de demanda y tráfico por atracción en tiempo real y ya digitalizados; debe ir a su almacén de datos para extraerlos de inmediato.
Tiendo a estar de acuerdo en que aquellos que califican FastPass como un sistema de asignación de recursos más que un sistema de colas de recursos. Otra analogía sería tratar a cada cliente de Disney como un proceso de sistema operativo que es de un solo subproceso hasta que un cliente elige un FastPass. Esto convierte al cliente en un proceso de 2 subprocesos que sigue recorriendo el parque en bicicleta como antes y ejecuta otro subproceso que espera su turno para el recurso designado (atracción FastPass). Permitir múltiples FastPasses a los usuarios (procesos) hará que dichos procesos sean más multiproceso. La sincronización de subprocesos tiene lugar cuando el cliente finalmente llega a la atracción FastPass para disfrutarla.
fuente
La única analogía de software que puedo ver es que este método evita desbordar el búfer de la cola; si muchos clientes intentan agregar a una cola aproximadamente al mismo tiempo, podría llenar rápidamente esa cola. Si se les pide a los clientes que esperen un período de tiempo determinado, entonces tienen que almacenar sus (relativamente) menos elementos localmente antes de agregarlos a la cola.
Sin embargo, en la mayoría de los otros casos, esto conduce a un rendimiento menos eficiente, ya que podría hacer que la cola se quedara con hambre si los tiempos de espera se eligen mal.
Intente escribir una aplicación de prueba que use colas con y sin 'FastPass' bajo varias métricas y comparando los resultados, ¡y avísenos si encuentra algo interesante! :)
fuente
No sé cómo se aplicaría en el software. Pero el sistema definitivamente tiene sus ventajas para los visitantes: puede tener un Fastpass para un viaje y, mientras tanto, ir a otro viaje cuya línea no sea tan larga (o, como usted dice, ir de compras, comer, etc.). Fue un gran salvavidas cuando yo y mi familia estuvimos allí (aunque es cierto que era fuera de temporada).
fuente
Dado que está siendo explotado , tendrías que confiar en los usuarios de la cola ;-)
fuente
De mi clase de cadena de suministro, el aspecto de la cola que me llegó de inmediato es que reduce el tiempo de espera percibido, por lo que a la gente no le importa esperar en absoluto. No creo que acorte las líneas principales, pero alivia la ansiedad de alguien por esperar en la línea regular, ya que saben que tan pronto como se bajan, pueden volver por segunda vez (si su paso rápido se acabó el tiempo, de todos modos).
Sé que percibo que puedo andar en muchos más recorridos con el paso rápido, aunque no sé si es realmente el caso o si es solo un nuevo encuadre inteligente de mi tiempo de espera.
fuente
Creo que has llegado al punto principal allí, pero haces que suene más malvado corporativo de lo que quizás merece. Ciertamente prefiero "hacer cola" virtualmente mientras hago compras y comer que hacer cola en línea.
Teóricamente, FastPass podría tratar de programar más personas en momentos en que la demanda natural era menor; eso es lo que haría para obtener más rendimiento de una cola programada real. Pero en la práctica, sospecho que los viajes están funcionando a gran capacidad durante la mayor parte del día, por lo que se puede ganar poca productividad.
fuente
Se trata de la programación de recursos para viajes populares, así como una forma de generar ingresos adicionales mediante la venta de mercancías. Si está esperando en una fila, significa que no tiene la oportunidad de gastar más dinero.
fuente
Es en el mejor interés de Disney satisfacer a sus clientes. Si bien la comercialización es sin duda un ingreso significativo, obtener clientes habituales es muchas veces más valioso.
Si pago $ 150 por un boleto de park-hopper de 1 día y solo puedo ir a 10 atracciones porque las colas son muy largas, me preguntaría si esas atracciones realmente valen $ 15 dólares por pieza. Sin embargo, si hay una manera de hacer 30 viajes, tendré una mejor experiencia, será menos probable que cuestione el valor de esa experiencia y sea más probable que regrese y le dé a Disneyland otros $ 150 + comida + mercancía.
Antes de FastPass, el único diferenciador entre mis 10 atracciones y las 30 atracciones era lo abarrotado que estaba el parque. Este es un problema común que otras atracciones deseables han intentado abordar de otras maneras. Por ejemplo, la estación de esquí Northstar en Tahoe limitará la cantidad de boletos de ascensor que venden en un día determinado (o al menos solían hacerlo). Esto también aborda el problema, pero de una manera que impacta más negativamente en los ingresos.
En software, un paradigma similar sería cargar una página web. En la antigüedad, este proceso era de un solo subproceso: obtenga todo el contenido, renderice todo el contenido y muestre la página. A medida que aumentaron el tráfico y los datos (específicamente la incorporación de imágenes), este modelo se enfrentó al mismo problema que Disneyland. Si hubiera muchas imágenes en la página y se tardara mucho en cargar, no esperaría el contenido y no me molestaría en volver a ese sitio.
Hoy en día las páginas web se cargan de manera diferente. El contenido se carga, procesa y muestra primero mientras otro hilo carga, renderiza y muestra las imágenes. Esto mejora enormemente la experiencia del usuario y, siempre que haya contenido deseable, continuaré regresando al sitio y puede convertir mis visitas repetidas a la página en $$$.
fuente
Esto se parece a un sistema operativo en tiempo real en algún aspecto.
Algunos procesos tienen un paso rápido y están marcados como en tiempo real.
Tienen una garantía de que obtendrán el recurso dentro de un cierto período de tiempo. No pueden saltar la cola, ¡pero pueden avanzar! Si bien no están usando el viaje, otros huéspedes que no están en tiempo real pueden usarlo.
-Alex
fuente
Esto es genial. Disney esencialmente está haciendo dos colas, con tarifas de servicio linealmente más bajas dependiendo del número de FASTpass distribuidos.
La cola FASTpass corta se puede modelar como una cola que siempre está en equilibrio durante una corta espera. Mantener la cola corta minimiza la retroalimentación entre las dos colas, lo cual es bueno para el modelado estocástico. La otra cola es una cola típica, con una tasa de servicio más lenta.
Por supuesto, si la cuota de FASTpass llegara a ser demasiado grande, se produciría una retroalimentación entre las dos colas, haciendo el sistema Caótico y minimizando el efecto de los modelos de colas para describir los resultados.
Otra estrategia es minimizar las esperas de los usuarios, sería estrictamente programar viajes con cita previa, en cuyo caso es una cola pura de lotes y fácil de optimizar. No creo que eso funcione en los Estados Unidos. :-)
fuente
No subes a más atracciones. Las líneas para líneas impopulares son más largas ahora, porque más personas están matando el tiempo mientras esperan que pasen sus pases populares. La capacidad es la capacidad.
"Twitter está realmente ocupado. Vuelve entre las 15:00 y las 15:15 y te garantizamos recibir tus tweets en 5 segundos o menos".
fuente