À Disney World, ils utilisent un système appelé Fastpass pour créer une deuxième ligne plus courte pour les manèges populaires. L'idée est que vous pouvez attendre dans la ligne standard, souvent avec une attente de plus d'une heure, ou vous pouvez obtenir un FastPass qui vous permet de revenir pendant une période spécifiée (généralement quelques heures plus tard) et d'attendre seulement 10 minutes ou moins. Vous ne pouvez «attendre» qu'un trajet à la fois avec un FastPass.
J'ai essayé de comprendre la théorie de la file d'attente derrière ce concept, mais la seule explication que j'ai trouvée est qu'il est conçu pour sortir les gens des files d'attente et faire des choses qui apporteront des revenus supplémentaires (achats, repas, etc.).
Est-ce la raison pour laquelle FastPass a été implémenté, ou y a-t-il un réel problème d'efficacité des visiteurs qu'il résout? Existe-t-il des applications logicielles qui ont appliqué une logique similaire? Existe-t-il des applications logicielles qui devraient appliquer une logique similaire?
Une partie du problème que je vois avec la mise en œuvre de quelque chose de similaire dans un logiciel est que cela est basé sur les utilisateurs qui choisissent leur file d'attente. En ce qui concerne les cycles d'attente plus rapides dans les logiciels, je pense qu'une bonne application de cette théorie exigerait que l'application soit suffisamment intelligente pour savoir dans quelles files d'attente placer les personnes en fonction de leurs besoins sans nécessiter le choix de l'utilisateur final.
la source
Réponses:
La ligne de passage rapide n'augmentera évidemment pas le débit total sur une file d'attente de trajet donnée, mais elle aide à la planification des ressources et à l'affectation des ressources où les personnes et les trajets sont les ressources.
Comme je l'ai dit, vous n'allez pas créer plus de débit total pour ledit trajet, mais il se peut que certains manèges soient sous-utilisés ailleurs. Si vous êtes maintenant en mesure de faire ces manèges ainsi que les manèges que vous devez attendre, vous pouvez augmenter l'efficacité globale du parc. Ce que je veux dire par là, c'est minimiser le nombre de trajets en dessous de la capacité passagers.
Si vous avez des ressources informatiques inactives, attendant d'exécuter une tâche qui peut prendre beaucoup de temps, il est logique d'utiliser cette ressource pour autre chose dans l'intervalle, n'est-ce pas? C'est simple de ce point de vue.
la source
C'est une question d'accumulation, pas d'efficacité de la file d'attente.
Fastpass fonctionne car il rend les éléments individuels de la file d'attente plus efficaces pour «consommer» quelque chose. Ce n'est pas tant une file d'attente comme un processeur qui attend des instructions à exécuter que des gens qui font la queue pour de la nourriture.
Dans le cas des gens à Disneyland, cela leur permet de maximiser leur plaisir .
Pensez à un processeur qui accepte les instructions. Chaque instruction attend d'être exécutée dans la file d'attente, pour effectuer sa tâche. Maintenant, changez-le - imaginez que chaque instruction attend en ligne non pas pour exécuter une instruction, mais pour obtenir quelque chose du processeur - chaque fois qu'elle frappe un processeur, elle est récompensée par une étoile d'or, et son travail consiste à en accumuler autant. que possible.
Fastpass, c'est comme permettre à l'instruction d'aller ailleurs, vers un processeur différent, pour y obtenir une étoile d'or, avant de revenir au processeur principal pour en extraire l'étoile d'or.
Dans le cas des utilisateurs de Disneyland, ils souhaitent s'amuser - accumuler des expériences de conduite. Le Fastpass permet une maximisation en permettant à l'utilisateur de trouver un trajet différent avec une ligne plus courte, afin qu'il puisse accumuler plus en un temps plus court.
la source
J'ai essayé FastPass, et voici comment je le vois:
Disons que vous allez faire un tour avec 1h d'attente prévue, si vous allez à FastPass, vous obtiendrez une période de temps assignée où vous êtes assuré d'une entrée immédiate. C'est généralement après plus d'une heure.
Nous avons obtenu des FastPasses pour les manèges populaires, et pendant ce temps, nous avons fait la queue dans des files d'attente de 10 à 15 m nous permettant de faire la queue et d'aller à 3 manèges tout en étant dans la file d'attente virtuelle FastPass. Ils nous ont également donné des FastPasses supplémentaires innombrables pour des manèges très impopulaires.Si nous les utilisions, nous retirerions une partie des manèges les plus populaires et comblerions les plus impopulaires.
Voici un graphique comparant le temps que nous avons passé à l'option non-fastpass:
Cela me semble être une théorie de file d'attente valide, elle permet d'exécuter des ressources avec moins de temps d'attente attendus tout en retardant encore plus une ressource avec un temps d'attente prévu plus élevé.
la source
Le FastPass implémente essentiellement les visiteurs non bloquants avec une sorte de file d'attente prioritaire. Ils ne bloquent pas, ils ne dorment pas, ils dépensent de l'argent. Cela fonctionne parce que John l'utilise à 11h00, Joe l'utilise à 11h15 (ou 11h01). Maintenant, si tout le monde avait un laissez-passer rapide, la ligne régulière serait beaucoup plus rapide tandis que la plupart des visiteurs dépensaient plus d'argent en nourriture et en cadeaux. Pour Disney, c'est l'effet souhaité, dans une certaine mesure.
La passe fait certaines hypothèses et présente certaines limites. Il suppose que les détenteurs de fastpass sont la minorité ... si cela changeait, ils devraient faire fonctionner le pass sur plusieurs trajets, ou les détenteurs de fastpass dépenseraient de l'argent en voyant très peu de gens dans la ligne régulière ... contre-productif. Étant donné qu'un seul trajet est pris en charge, deux détenteurs de passe rapide ne demanderont pas le même trajet à la fois.
Maintenant, étant donné que Joe pourrait quitter le parc avant de prendre son tour, vous devriez trouver une sorte de «futex» pour les visiteurs pour rendre le système efficace. Si Joe partait et que John arrivait tôt, John pourrait monter. De plus, John se demanderait pourquoi sa passe rapide ne l'avertissait pas qu'il pouvait rouler nn minutes plus tôt. C'est là que ça devient vraiment amusant, et si Joe partait juste pour récupérer de la crème solaire dans la voiture et revenait? Après tout, son tour est à deux heures de route, à moins que 200 autres personnes avant lui n'aient quitté le parc pendant qu'il bloquait (tout en obtenant un écran solaire), une tâche qui ne peut être interrompue. Donc, dans ce cas, nous mettons Joe dans une sorte de sommeil de disque, ou de sommeil qui ne peut pas être interrompu ou tué. Il ne reçoit aucun signal, il n'interroge rien, il est hors du parc.
C'est le genre de théorie qui guide la programmation pratique sans verrouillage. C'est aussi intéressant que le problème des philosophes de la cuisine , en fait plus.
En ce qui concerne Disney, ce n'est pas un bug, c'est une particularité, les gens sont moins enclins à quitter le parc tout en étant plus enclins à dépenser de l'argent.
la source
Dans une file d'attente ordinaire, vous ne pouvez pas vraiment estimer à quelle vitesse vous obtenez votre trajet. Vous êtes nerveux et pensez parfois à laisser tomber l'idée.
Avec FastPass, vous «savez» que le trajet se déroulera dans une période de temps définie avec précision. Vous êtes «sûr» du moment où cela se produit et pensez à arrêter moins souvent. Vous allez faire du shopping et manger et revenez quand vous en avez besoin. Vous êtes susceptible de revenir car vous avez demandé le trajet à l'avance et ressentez un engagement. Joel Spolsky décrit une idée d'engagement similaire utilisée dans les files d'attente Starbucks .
Le FastPass est donc une sorte de commodité pour le parc et les visiteurs. Les visiteurs sont plus ravis et le parc peut les vendre davantage en attendant.
Juste un exemple de bonne ingénierie sociale.
la source
Je pense que d'une certaine manière, vous pourriez comparer cela avec un modèle de programmation asynchrone .
Vous demandez au système d'exécuter une action et vous reviendrez plus tard pour le résultat.
La grande différence est que vous spécifiez l'événement / rappel à appeler une fois terminé ou que vous devez entrer l'attente à un moment où vous êtes prêt à attendre. Je n'ai pas vu de mécanisme qui vous dirait de revenir plus tard et de vous garantir des délais d'attente plus courts.
la source
Pour moi, cela semble être une file d'attente prioritaire .
Lors de la première prise d'un SpeedPass, on obtient une priorité plus élevée. Ensuite, lorsque vous sortez,
general line queue
le SpeedPass a une plus grande priorité dans la file d'attente.Et si nous sommes d'accord pour dire qu'il s'agit d'une file d'attente prioritaire, la mise en œuvre logicielle la plus évidente est la planification du système d'exploitation
Modifié à partir de l'article du wiki de planification:
la source
L'idée FastPass me ressemble à une solution pour les systèmes où je dois effectuer les tâches 1 à N et basée sur certaines connaissances que j'ai sur moi-même (chez Disney, je sais peut-être que mes enfants seraient très heureux de rouler sur Test Track en attendant le Tranche de temps Soarin 'FastPass pour arriver) Je pourrais me programmer pour aller dans la file d'attente' FastPass 'pour la tâche N et aussi entrer dans la file d'attente standard pour la tâche M. Cela fonctionnerait là où l'ordre des tâches n'est pas nécessairement important et où le temps d'attente était connu et je pouvais estimer combien de temps il faudrait pour effectuer la tâche M ou N. Je ne suis pas sûr d'avoir un bon exemple de programmation dans le monde réel - une grande partie de notre réflexion est de nature linéaire et nos flux de travail ont donc tendance à être de cette façon .
la source
FastPass vous permet d'attendre sur plusieurs lignes en même temps. Cela vous permet d'éviter d'attendre, mais augmente le temps d'attente moyen car les files d'attente s'allongent effectivement.
Mais la plupart des gens ne passent pas tout leur temps à faire des manèges. Certains événements, comme les défilés, n'ont pas vraiment de temps d'attente. En utilisant un laissez-passer rapide, vous pouvez assister à plus de ces événements sans ligne ou sur courte ligne sans sacrifier autant de courses de longue ligne.
la source
Il y a deux endroits qui me viennent à l'esprit qui ont un comportement similaire dans le développement logiciel pour moi. Cependant, aucune analogie n'est exacte, puisqu'elles nécessitent toutes deux
Le premier est la programmation asynchrone. Comme mentionné précédemment , il existe certaines différences entre le modèle asynchrone et le modèle fastpass, en ce qui concerne l'attente. Cependant, certains autres modèles de programmation (tels que l' interface de transmission de messages ) vous offrent d'autres options, qui se rapprochent probablement un peu plus du modèle FastPass.
En particulier, je pensais aux méthodes MPI_Gather dans MPI - elles utilisent un modèle probablement un peu plus proche. Chaque fonction est transmise autour du cluster, puis vous pouvez appeler rassembler à partir de la racine pour obtenir les données actuellement traitées. Le but est le même (garder tout le monde moins d'attente [ne pas bloquer l'utilisateur] et se promener, dépenser [ou traiter des données]).
L'autre endroit où je peux voir une similitude est dans les modèles de programmation threadés avancés, tels que le nouveau planificateur dans le TPL . L'un des principaux avantages du TPL à venir dans C # 4 est que le planificateur permettra le vol de travail, ce qui me semble être une implémentation claire dans un logiciel consistant à essayer de déplacer les lignes de manière dynamique - ce qui renvoie à FastPass. L'un des avantages du Fastpass est que vous vous asseyez moins en ligne, que vous roulez plus et que vous vous déplacez plus. Avec TPL, il y a (espérons-le) moins de blocage et d'attente, car un thread qui a terminé sa file d'attente peut voler des tâches à d'autres files d'attente.
la source
Un aspect intéressant de FastPass est qu'il introduit un canal de rétroaction pour Disney. En ayant une seule ligne qui attend presque toujours que l'attraction soit disponible, vous ne pouvez pas faire grand-chose sauf mesurer la longueur de la ligne à des intervalles de temps fixes pendant la journée. En utilisant FastPass, Disney collecte les données de demande et de trafic par attraction en temps réel et déjà numérisées - elles devraient être immédiatement envoyées à leur entrepôt de données pour l'extraction.
J'ai tendance à convenir que ceux qui qualifient FastPass de système d'allocation de ressources plus que de système de mise en file d'attente de ressources. Une autre analogie serait de traiter chaque client Disney comme un processus de système d'exploitation à un seul thread jusqu'à ce qu'un client récupère un FastPass. Cela fait du client un processus à 2 threads qui continue à parcourir le parc comme avant et exécute un autre thread qui attend son tour pour la ressource désignée (attraction FastPass). Autoriser plusieurs FastPasses aux utilisateurs (processus) rendra ces processus plus multithread. La synchronisation des threads a lieu lorsque le client accède enfin à l'attraction FastPass pour en profiter.
la source
La seule analogie logicielle que je peux voir est que cette méthode évite de déborder de la mémoire tampon de la file d'attente - si de nombreux clients essaient tous d'ajouter à une file d'attente à peu près au même moment, elle pourrait rapidement remplir cette file d'attente. Si les clients sont invités à attendre un laps de temps donné, ils doivent mettre en mémoire tampon leur (relativement) moins d'éléments localement avant de les ajouter à la file d'attente.
Dans la plupart des autres cas, cependant, cela conduit à un débit moins efficace, car cela pourrait entraîner la famine de la file d'attente si les temps d'attente sont mal choisis.
Essayez d'écrire une application de test qui utilise la mise en file d'attente avec et sans «FastPass» sous diverses métriques et comparez les résultats - et faites-nous savoir si vous trouvez quelque chose d'intéressant! :)
la source
Je ne sais pas comment cela serait appliqué dans les logiciels. Mais le système a définitivement ses avantages pour les visiteurs: vous pouvez avoir un Fastpass pour un trajet, et entre-temps aller à un autre trajet dont la file d'attente n'est pas aussi longue (ou, comme vous le dites, faire du shopping, manger, etc.). C'était vraiment la bouée de sauvetage lorsque ma famille et moi étions là-bas (même si, certes, c'était la basse saison).
la source
Étant donné qu'il est exploité , vous devez faire confiance aux utilisateurs de la file d'attente ;-)
la source
De mon cours sur la chaîne d'approvisionnement, l'aspect de la file d'attente qui m'est venu immédiatement est qu'il réduit votre temps d'attente perçu, de sorte que les gens ne craignent pas du tout d'attendre. Je ne pense pas que cela raccourcit les lignes principales, mais cela atténue l'anxiété de quelqu'un à propos d'attendre dans la file régulière, car ils savent que dès qu'ils sortent du trajet, ils peuvent revenir une seconde fois (si leur passe rapide le temps est écoulé, de toute façon).
Je sais que je pense que je peux faire beaucoup plus de manèges avec le fastpass, même si je ne sais pas si c'est réellement le cas ou s'il s'agit simplement d'un recadrage intelligent de mon temps d'attente.
la source
Je pense que vous avez touché le point principal là-bas, mais vous le faites paraître plus malfaisant que cela ne le mérite peut-être. Je préfère certainement «faire la queue virtuellement» en faisant les courses et en mangeant plutôt que de faire la queue physiquement.
Théoriquement, FastPass pourrait essayer de programmer plus de personnes à des moments où la demande naturelle était plus faible; c'est ce que vous feriez pour augmenter le débit d'une vraie file d'attente planifiée. Mais dans la pratique, je soupçonne que les manèges fonctionnent à peu près à pleine capacité pendant la majeure partie de la journée, donc il y a peu de productivité à en tirer.
la source
Il s'agit de la planification des ressources pour les manèges populaires ainsi que d'un moyen de générer des revenus supplémentaires en vendant des marchandises. Si vous attendez en ligne, cela signifie que vous n'avez pas la possibilité de dépenser plus d'argent.
la source
Il est dans l'intérêt de Disney de satisfaire ses clients. Alors que le merchandising est certainement un chiffre d'affaires important, obtenir des clients réguliers est bien plus précieux.
Si je paie 150 $ pour un billet d'une journée pour le parc et que je ne peux faire que 10 trajets parce que les files d'attente sont si longues, je me demanderais si ces manèges valent vraiment 15 dollars l'unité. Si, cependant, il y a un moyen pour moi de faire 30 manèges, j'aurai une meilleure expérience, je serai moins susceptible de remettre en question la valeur de cette expérience et je serai plus susceptible de revenir et de donner à Disneyland 150 $ + nourriture + marchandise.
Avant FastPass, le seul facteur de différenciation entre mes 10 manèges et 30 manèges était la densité du parc. Il s'agit d'un problème courant que d'autres attractions souhaitables ont tenté de résoudre par d'autres moyens. Par exemple, la station de ski Northstar à Tahoe limitera le nombre de billets de remontée qu'ils vendent un jour donné (ou du moins ils le faisaient auparavant). Cela résout également le problème, mais d'une manière qui a un impact plus négatif sur les revenus.
Dans le logiciel, un paradigme similaire serait de charger une page Web. Dans les temps anciens, ce processus était mono-thread: obtenir tout le contenu, rendre tout le contenu et afficher la page. À mesure que le trafic et les données augmentaient (en particulier l'incorporation d'images), ce modèle était confronté au même problème que Disneyland. S'il y avait beaucoup d'images sur la page et que le chargement prenait beaucoup de temps, je n'attendrais pas le contenu et je ne prendrais peut-être jamais la peine de revenir sur ce site.
Aujourd'hui, les pages Web sont chargées différemment. Le contenu est chargé, rendu et affiché en premier pendant qu'un autre thread charge, rend et affiche les images. Cela améliore considérablement l'expérience utilisateur et, à condition qu'il y ait un contenu souhaitable, je continuerai à revenir sur le site et cela peut transformer mes pages vues répétées en $$$.
la source
Cela ressemble à un système d'exploitation en temps réel à certains égards.
Certains processus ont une passe rapide et sont marqués en temps réel.
Ils ont la garantie d'obtenir la ressource dans un certain laps de temps. Ils ne peuvent pas sauter la file d'attente, mais ils peuvent entrer! Tant qu'ils n'utilisent pas le trajet, d'autres invités non en temps réel peuvent l'utiliser.
-Alex
la source
C'est super. Disney fait essentiellement deux files d'attente, avec des tarifs de service linéairement inférieurs en fonction du nombre de FASTpass distribués.
La courte file d'attente FASTpass peut être modélisée comme une file d'attente toujours en équilibre pendant une courte attente. Garder la file d'attente courte minimise les retours entre les deux files d'attente - ce qui est bon pour la modélisation stochastique. L'autre file d'attente est une file d'attente typique, avec un taux de service plus lent.
Bien sûr, si le quota FASTpass devenait trop important, un retour entre les deux files d'attente s'ensuivrait, rendant le système chaotique et minimisant l'effet des modèles de file d'attente pour décrire les résultats.
Une autre stratégie consiste à minimiser les temps d'attente des utilisateurs serait de planifier strictement les trajets sur rendez-vous, auquel cas il s'agit d'une file d'attente de lots pure et facile à optimiser. Je ne pense pas que cela fonctionnerait aux États-Unis. :-)
la source
Vous ne faites plus de manèges. Les files d'attente pour les lignes impopulaires sont plus longues maintenant, car de plus en plus de gens leur font perdre du temps en attendant que leurs laissez-passer populaires arrivent à maturité. La capacité est la capacité.
"Twitter est actuellement très occupé. Veuillez revenir entre 15h00 et 15h15 et nous vous garantissons de vous recevoir vos tweets en 5 secondes ou moins."
la source