HN in RSCserver-reason-react
top.mdnew.mdbest.mdask.mdshow.mdjobs.md
← Back to stories

Show HN: Elevators

1680 pointsby Jrh0203 54 days ago415 comments

Discussion

Loading discussion
  • shadeslayer_ · 54 days ago

    This article gives me war flashbacks about a particularly irritating OO design interview from 5 years ago.

  • sambaumann · 54 days ago

    This reminds me of elevator saga ( https://play.elevatorsaga.com/ ) - little programming game where you have to program elevator schedules.

  • orliesaurus · 54 days ago

    Oh my god, every time I'm waiting for the elevator, I think of how annoying it must be to be someone who's building the algorithm to make sure that you minimize the amount of wait times between picking up people and taking them to their destination. Then I also wonder if the people who apply the logic and program the logic into the elevators are actually evil sadists that are doing it on purpose to make us wait longer enough and suffer a little extra.

    • neutronicus · 54 days ago

      They might have other objective functions like wear-and-tear on the elevators, total energy usage, or something

      • dbcurtis · 54 days ago

        It's pretty much throughput. The cap-ex of a single cab swamps any other cost, so the only way to reduce total number of cabs is optimizing for throughput.

      • cyberax · 54 days ago

        Modern elevators have regen braking, so they can recover most of the energy spent on going down. Older elevators used braking resistors for that. (BTW, going _down_ while empty is typically more energy-consuming for the elevators because they are counterweighted) Edit: that's also why you shouldn't use elevators in a fire. If the brakes in the elevator machine room fail, the cab won't crash down. It will go _up_, possibly dragging you into the fire. Many firefighters died because of that.

        • fragmede · 54 days ago

          Interesting! It's counterbalanced though, so why does it go up if the brakes fail in a fire? That's counterintuitive.

          • ImPostingOnHN · 54 days ago

            Maybe it needs to be counterbalanced at maximum approved elevator+load weight?

    • dbcurtis · 54 days ago

      I have done several third-party elevator integrations (software that talks to the elevator controller) for coordinating other equipment with the elevator. One thing that always struck me once I had full visibility into the location and motion of all the elevator cabs is how busily they are scheduled. Waiting in the elevator lobby for a cab seems to take forever, but viewed from the dispatch side, it is a flurry of activity and cabs are rarely idle during any hours the building is normally occupied. It is easy to nerd out just watching the status panel. Another thing I learned: If an elevator mechanic says: "I'll meet you first thing in the morning." He means something like 4:00AM. They want to get in and out before people start arriving to start their day.

      • paradox460 · 54 days ago

        Some older buildings in SF have the old school elevator panels in the lobby, with big vertical displays of all the floors, and a moving needle for each cab, and lights where there were calls. Big beautiful brass monster, polished to a shine. I think it was the flood building. Used to love watching it on my way up

    • dbcurtis · 54 days ago

      One other thing to add: It isn't the elevator scheduling software being obtuse, that software gets a huge amount of thought. But elevators are expensive, and building owners do not over-spend on a whim. Typically, they have just enough cabs (if that) to handle the expected load.

      • cruffle_duffle · 54 days ago

        Not only that but different countries have code regimes that make more elevators especially expensive. See how building codes in the US basically ensure there are only two real manufacturers in the market vs a healthy ecosystem in others: https://youtu.be/Or1_qVdekYM

    • StableAlkyne · 54 days ago

      > minimize the amount of wait times between picking up people and taking them to their destination I wish elevators accounted for load. I've been to a couple of larger conferences where on the Monday morning after, the hotel elevator was just hammered. Everyone wanted to go down, and the elevator would dutifully stop on every single floor no matter how full it was. If you were mobility disabled on the 2nd floor, you were basically fucked if you had a flight to catch. One would think that, if it's a 10 person elevator and it's already stopped on 10 floors requesting it, that it could save an extra 5 minutes by just going directly to the ground floor, instead of stopping on every floor with the same conversation of "Oof, can't fit in there. I'll get the next one!"

      • BenjiWiebe · 54 days ago

        In that case, would it pay to call for an elevator going up, and then remain on it until it's being called down?

      • Quinner · 54 days ago

        The article describes the RSR algo which takes load into account.

      • vova_hn2 · 54 days ago

        > If you were mobility disabled In one of the buildings where I worked, "fancy Destination Dispatch kiosk" had a separate button with a wheelchair pictogram that would ensure that the elevator has enough space for a wheelchair.

      • Rebelgecko · 54 days ago

        Some elevators have sensors that'll bypass pickups after a certain point. Super helpful for furry conventions

  • clarkmoody · 54 days ago

    One of the most frustrating assignments[1] (2011) in my computer science education was trying to build a better mousetrap for elevator control. [1]: https://clarkmoody.com/Moody_AgentBasedElevatorControl.pdf

    • SoftTalker · 54 days ago

      Disk drive read/write algorithms have a lot in common with elevator algorithms. At least they did in the days of physical heads moving across a platter.

      • NetMageSCW · 51 days ago

        Those days aren’t gone - they’ve just moved to enterprise systems.

  • brandonpelfrey · 54 days ago

    For folks that have never seen elevator scheduling the game: https://play.elevatorsaga.com/ Enjoy this rabbit hole :D

    • grep_it · 54 days ago

      I always come back to this game whenever I'm at a hotel for a conference waiting for the elevator.

    • perryprog · 54 days ago

      Wow, I just came here to comment that I've always wondered if a game where you have to program an elevator scheduler would be any fun. I thought surely no-one's thought to make that before, too! Glad to be proven wrong.

    • alanwreath · 54 days ago

      I wish there were more games like this. It’s such a simple premise but so satisfyingly difficult after each level. And it even has a bit of randomish failure which makes for even more challenge.

      • john_strinlai · 54 days ago

        at a quick glance, it reminds me of "the farmer was replaced", if you havent seen/heard of that one

        • NooneAtAll3 · 54 days ago

          https://store.steampowered.com/app/2060160/The_Farmer_Was_Re... I remember this one, it deserves all sorts of praise

          • ivolimmen · 54 days ago

            I can also recommend https://store.steampowered.com/app/375820/Human_Resource_Mac...

            • NooneAtAll3 · 54 days ago

              and its sequel is also worth a mention https://store.steampowered.com/app/792100/7_Billion_Humans/ but imo, unlike farmer, these games reaaaaly lack the ability to make functions/subroutines manually doing all the goto loops becomes tiring

      • darkvertex · 54 days ago

        If you buy the adorable monochrome console called the "Playdate" https://play.date it comes with a bunch of games included, including a cute elevator game where you help penguins to different floors while controlling the elevators yourself using the crank: https://play.date/games/flipper-lifter/

      • ivanjermakov · 54 days ago

        You will like https://www.zachtronics.com/

        • inigyou · 54 days ago

          That's the guy who created Infiniminer, which was essentially 3D multiplayer Motherlode (a game everyone was playing at school lunch and I never figured out why) and inspired Minecraft.

      • ftmch · 54 days ago

        I had the idea to build something like it but for traffic lights. Never got around to actually do it. I have a feeling it probably exists.

        • zengineer · 54 days ago

          same :) Although, I wonder if building it is more fun than actually playing it then

    • emmanueloga_ · 54 days ago

      looks very well made, but I still prefer https://en.wikipedia.org/wiki/Elevator_Action !

    • CobrastanJorji · 54 days ago

      This is great, but to me, the definitive elevator scheduling game was SimTower.

      • genericone · 54 days ago

        Sid Meier's Elevator Manager was such a great game... so much nostalgia.

        • CobrastanJorji · 54 days ago

          Yoot Saito, actually, although it does really feel like a Sid Meier or a Will Wright game.

          • iqihs · 54 days ago

            Yoot Tower has been on my bucketlist of games to play for a while now

            • jcranmer · 54 days ago

              Waiting for Don Hopkins to jump into this thread, saying how he's going to release the source code soon... ( https://github.com/YootTowerManagement/YootTower if you haven't seen one of his messages on the topic before)

        • AndrewHart · 53 days ago

          The only result I get in Google for this is... this post

          • fragmede · 53 days ago

            Sid Meier wasn't involved with SimTower, GP is mistaken.

      • somat · 54 days ago

        I never really "got" sim tower growing up, I liked sim city but bounced off tower. It only clicked years later when I read that it was an elevator simulator that got fleshed out a bit, Knowing this I enjoy it quite a bit more today than younger me who I guess was expecting a vertical simcity.

      • bentcorner · 54 days ago

        > People don't usually remember the average amount of time they wait. They fixate on those times when the elevator took FOREVER, the p90 case. I would always get a chuckle out of seeing some poor soul waiting 3 hours to go down a few floors after work, only because I failed to add stairs to the lobby.

    • inkkin · 54 days ago

      Omg! <3

    • vova_hn2 · 54 days ago

      Very fun indeed! Can't believe, that this [0] solution to Challenge #5 actually worked, lol Challenge #6 is "Transport 40 people using 60 elevator moves or less". Unfortunately docs don't make it clear what exactly counts as a "move". [0] https://gist.github.com/vovanz/66e4396934ac656a8f8c32fcee43d...

      • fragmede · 53 days ago

        bogosort!

    • lmazgon · 54 days ago

      A few years back I made a CLI game in Go where you have to schedule elevators - https://github.com/lovromazgon/elecrash

    • LordOmlette · 50 days ago

      This is what I immediately thought of when I saw > How do you actually measure how good an elevator algorithm is?

  • gosub100 · 54 days ago

    Maybe I missed it, but the algorithm should also redistribute empty elevators that stop too closely to each other.

  • jmyeet · 54 days ago

    This is a good article. It reminds me of a story. At a previous employer we had heteregenous elevators. In one bank, some went to the lower half of floors only while others went to all and the company installed a "smart" elevator system. I kind of became known because I was constantly yelling about this system in the feedback group because I hate "smart" elevators and and (IMHO) they just don't work. What actually works is express elevators and sky lobbies. This article covers one of the deficiencies this system had: full elevators. For example, you'd want to go down and an elevator would skip your floor because another had already been assigned. That one would show up full and you couldn't go down. Down wasn't so bad because the stairs weren't a bad option but up was terrible. Going up a few floors was fine. Going up 20 was... a bigger issue. Back in the day we had elevator operators and people in the lobby during the morning rush who would shepherd people into particular elevators. I actually think this system works way better than anything technology has come up with. Even if you nail the implementation (and I've never experienced elevators that have), people don't read and will just get into elevators anyway. Anyway the article says that generally speaking on smaller banks simple up and down buttons work best. I absolutely agree. There's a deeper issue here though and that is solutions looking for a problem. Nobody is making money from up and down buttons. They are fromn selling smart elevator solutions. And you see this everywhere in life. It basically devolves into rent-seeking behavior. Salespeople wine and dine a couple of people responsible for making decisions and then make bank on selling something nobody wants or needs as well as the constant maintenance and updates.

    • marcosdumay · 54 days ago

      > people in the lobby during the morning rush who would shepherd people into particular elevators That's what the no-button elevators with the kiosk does.

    • socalgal2 · 54 days ago

      According do this video, some of it is I guess regulatory capture? (my memory of that video might be bad) https://www.youtube.com/watch?v=Or1_qVdekYM

  • jihadjihad · 54 days ago

    In a similar vein, there was an interesting discussion [0] a while back about elevator buttons [1] and how timing for door close/open works, along with a bit of the history and regulations that go into them. 0: https://news.ycombinator.com/item?id=35152341 1: https://computer.rip/2023-03-13-the-door-close-button.html

    • urbnspacecowboy · 54 days ago

      And there's still no adequate explanation for what "Korean lunch mode" is!

  • Waterluvian · 54 days ago

    Makes me want to play Sim Tower again. There’s something so satisfying about watching a machine just dutifully work through queued tasks like this.

    • b3lvedere · 54 days ago

      I had another game in mind. https://archive.org/details/elevator_nes

    • Sohcahtoa82 · 54 days ago

      If you liked SimTower, Project Highrise is worth taking a look into. https://store.steampowered.com/app/423580/Project_Highrise/

      • stackskipton · 54 days ago

        Project Highrise doesn't have elevator simulation. Elevator is just portal that teleports the sim to proper floor.

        • jcranmer · 54 days ago

          Yeah, the fact that Project Highrise doesn't handle the transportation part of the game means that it never scratched the same itch SimTower did.

          • Sohcahtoa82 · 54 days ago

            Yeah, maybe that's what was it. Tbh, while I bring up Project Highrise whenever someone mentions SimTower, I did always feel like it was missing something. Something always felt slightly soulless about Project Highrise.

            • Waterluvian · 54 days ago

              For me the issue is that it doesn’t look and sound like Sim Tower. Which I’m sure is mainly just nostalgia but that’s still a valid reason why I probably love it so.

    • wlesieutre · 54 days ago

      A fun tidbit about Sim Tower: > After my lecture, a Maxis employee who shall remain nameless buttonholed me. "You guessed right," she said. "Sim Tower was built around a real elevator simulation program we bought from a Japanese guy." https://web.archive.org/web/20090916193335/http://www.gamasu...

      • Waterluvian · 54 days ago

        Would that be Yoot Saito? I remember his name on the box.

  • jp191919 · 54 days ago

    Reminds of something I haven't thought about in a very long time... SimTower

    • dillutedfixer · 54 days ago

      If you want a trip down memory lane, go to InfiniteMac.org, spin up a System 7.5 emulator, go to the InfiniteHD/Games folder and launch SimTower!! Such a fun blast of nostalgia. I loved the game as a kid and can still very much enjoy it as a mid-40 year old.

  • itunpredictable · 54 days ago

    I didn't realize that neal.fun had some competition.

  • geephroh · 54 days ago

    Slightly OT, but this reminded me of Colson Whitehead's _The Intuitionist_[1], an amazing speculative mystery novel about two dueling schools of elevator inspection philosophies: the Empiricists and the Intuitionists. 1. https://en.wikipedia.org/wiki/The_Intuitionist

  • paxys · 54 days ago

    My biggest pet peeve is elevator banks where they don’t make some number of idle elevators automatically come back to the lobby. Half your traffic is over there! Everyone coming in has to wait an extra minute or two because all your elevators were chilling on the 35th floor and above.

    • mapmeld · 54 days ago

      My apartment building is replacing the elevators, and someone on staff revealed that the first renovated elevator is intended to pick up only from the lobby (i.e. if you summon an elevator from the 10th floor, one of the others will come). This has caused some grumbling or calling it an "express elevator". In an apartment it really is mostly trips to many floors from the lobby. The only time this maybe would be inconvenient might be in the morning commute, when fewer people are re-entering.

      • cruffle_duffle · 54 days ago

        You should observe if it is the same elevator all the time and the building people just don’t understand it. Our building elevators (bank of 2) always seems to try to keep one in the lobby. About 75% of the time you get an elevator right away when you call it from the lobby. But it definitely isn’t the same elevator! Allocating an exclusive single elevator to that function would seem to be strictly worse from many angles. Like if you modeled having an algorithm like “elevator 2 only services calls from the lobby” you’d find it would be very inefficient and not every effective. But I can see having one in the bank always returning to lobby right away making sense. My guess is whoever hinted at that didn’t fully understand what they were taking about.

  • teepo · 54 days ago

    I've never really liked Destination Dispatch elevators. Besides struggling to find the car I've been assigned to, sometimes you really have to hustle across the lobby to catch it. Then you also run into visitors that assume it's a normal car and can hit a floor button when the get in, only to realize they've walked into a car without buttons.

    • quietsegfault · 54 days ago

      What makes me more peeved about destination dispatch elevators are people who aren't used to them, and all pile into an elevator without hitting a floor, thinking one input is enough for everyone. Then, a totally full elevator stops at intermediate floors to pick up callers, but there's no room to get in. If everyone put the floor in as they arrive to the elevator lobby, then the elevator would know how many people are in the elevator and won't overfill them.

      • avidiax · 54 days ago

        The elevators I've seen have a "group call" feature slightly hidden in the menu.

        • quietsegfault · 54 days ago

          That’s awesome! I haven’t really played with them, only silently seethed when the elevator is crowded.

    • why_at · 54 days ago

      >Then you also run into visitors that assume it's a normal car and can hit a floor button when the get in, only to realize they've walked into a car without buttons. I work in a building with Destination Dispatch elevators so I'm used to them. I have the opposite problem where I'll get into a normal elevator and just stand there without pushing anything.

  • zatkin · 54 days ago

    I think a small improvement that could be made is to have the dot representing the person be colored the same as a dot on each floor, which would obviate the destination floor for each individual.

    • soupspaces · 54 days ago

      Yes the visualization is great but overused and could also use a stop button. I would have also liked to see different kinds of plots.

  • olex · 54 days ago

    The biggest problem I always have with elevators is not the algorithm, it's the people seemingly being unable to grasp the concept of pressing either the up or the down request button, depending on where they want to go. Almost always I find someone will press both, because "then the elevator comes faster". Completely ignoring the fact that they end up going the wrong way first half the time, and adding an unnecessary halt for everyone already in there. How hard can it be to understand?..

    • Georgelemental · 54 days ago

      I don't think I've ever seen someone do that

      • summermusic · 54 days ago

        I haven't ever seen anyone do this in the United States, but I saw it in China and Italy.

        • esperent · 54 days ago

          I've never seen anyone do this anywhere in the world including Italy. I've never been to China but wouldn't you learn quickly after getting in an elevator going the wrong way not to do that again? The only exception I can see if there's way more people than elevators and you just need to get spot at all costs.

          • the_af · 54 days ago

            My wife always randomly hits the up or down button, then gets upset if I explain why she should only pick the one she really wants. She forgets the next time. I think some people never really understand how elevators work. See also: the keep open / close doors button. I had one building administrator explain to me we should add a delay of 10 seconds to the "quickly shut door" button because otherwise she kept getting her arm hit by the door. When I asked why we would add a delay to the button that's meant to reduce delays (why not simply wait for the door to close on its own, then?), and whether we should fix the sensor that prevents doors from closing if there's an obstacle instead, she just kept staring blankly at me. I don't think she understood me at all. Again, some people simply don't grasp how elevators work.

            • superhuzza · 54 days ago

              I fear in both cases, its not a lack of understanding of elevators but of common sense...

              • contingencies · 54 days ago

                For these people, replace the buttons entirely with a voice-activated destination request on proximity.

                • superhuzza · 54 days ago

                  Full circle back to elevator operators!

                  • chuckadams · 54 days ago

                    More like Star Trek turbolifts. Make them grab the handle first for that TOS feel.

                  • contingencies · 54 days ago

                    Primarily this fixes the bug in the interface which is allowing the user to input data that does not match their declared destination. However, a second benefit is that you can then obtain per-user destination information, which is useful in capacity planning and currently lost in shared direction-only button pressing. Finally, you could usefully use non-floor specifications, ie. 'Ladies underwear', 'ACME Co.', etc.

            • brookst · 53 days ago

              This reminds me of my partner, who always sets car air conditioning to 50F (the min) or heat to 90F (the max) because she thinks it makes it get cold or hot faster. And of course a few minutes later we’re freezing or roasting. She sees the temps setting as controlling intensity of cold/hot rather than just, you know, the temperature you want.

      • tamimio · 54 days ago

        Because most buildings now they just put one button so people stop clicking both

        • what · 54 days ago

          What? I’ve never seen that. The elevator needs to know which way you want to go.

          • allannienhuis · 54 days ago

            On the ground/lowest floor, there's only one button as there's only one way to go.

            • tamimio · 54 days ago

              And the top floor too

            • what · 54 days ago

              That’s not what they meant…

          • cozzyd · 54 days ago

            i just saw this for the first time today in Romania...

          • userbinator · 54 days ago

            It doesn't; it just needs to know it was called. You make your selection once it arrives. Look up the early history of elevators and you'll see a progression from fully manual in-car up/down controls (often with a dedicated human operator); various semi-automatic systems with minor improvements like automatic leveling and door control; and then operatorless systems that started with nondirectional calls: https://liftescalatorlibrary.org/paper_indexing/papers/00000...

          • Ekaros · 53 days ago

            It is reasonable if you either have low load say a residential building where lift is often idle. Or low number of floors where travel times in either case are short.

        • rsanek · 54 days ago

          That has not been my experience, and logically it doesn't really make much sense. If you do so, you are making the problem strictly worse.

        • userbinator · 54 days ago

          Nondirectional calls are mostly found in very early (pre-war) or small building (3-4 floors) installations.

          • userbinator · 54 days ago

            Please see: https://liftescalatorlibrary.org/paper_indexing/papers/00000... "2.3 Non-directional collective Non-directive collective control provides a single pushbutton at each landing. This pushbutton is pressed by passengers to register a landing call irrespective of the desired direction of travel. Thus, a lift travelling upwards, for example, and detecting a landing call in its path stops to answer the call, although it may happen that the person waiting at the landing wishes to go down. This type of control is only acceptable for short travel lifts."

    • trivo · 54 days ago

      And then when the elevator door opens, they ask the people inside: "Are you going up or down?" There's an arrow showing that, for Christ's sake.

      • themaninthedark · 54 days ago

        True but sometimes someone hits a button on the inside by mistake. Or someone was going to get off then decides not to.

        • SoMomentary · 54 days ago

          Sometimes I think "stupid" questions like these are just a way to break the ice, something that gets used to kindly acknowledge the momentary existence of others in our lives before we continue down our separate paths.

        • deathanatos · 54 days ago

          … and the elevator is still going the way it is going, and that way is still indicated by the illuminated arrow.

      • wpm · 54 days ago

        Yeah and you can flail your head around looking for the arrow or you can just ask. Especially on a busy elevator lobby there might be multiple cars opening at the same time so you cant even tell from the ding/ding-ding

        • ImPostingOnHN · 54 days ago

          or just point your eyes a few degrees away to look at the dedicated arrows next to each elevator, built for this exact use case, which indicate whether that specific elevator is going up or down? I have to assume this is a cultural difference and you just don't have those indicators where you live, rather than "slightly moving my eyes is too hard, better make my problem into somebody else's problem"

      • gabrieledarrigo · 54 days ago

        "Questions are never indiscreet. Answers sometimes are."

        • GurnBlandston · 54 days ago

          "Have you stopped urinating in public?"

        • NetMageSCW · 51 days ago

          When did you stop beating your wife?

      • ButlerianJihad · 54 days ago

        The direction is also indicated by the chime sound, which only blind people and YouTube viewers seem to know. As for button pressing: https://en.wikipedia.org/wiki/Cargo_cult#As_a_metaphor

        • shmeeed · 53 days ago

          TIL! I need to keep an ear open for this.

    • davnicwil · 54 days ago

      In situations like this the answer usually comes by flipping it and assuming they do understand, and asking why it makes sense now. It's probably just the old 'fake loader' psychology, to be honest. Waiting without knowing when the elevator will arrive is boring/frustrating, where getting into an elevator that moves, even if the wrong direction, feels like progress. Things are happening, and even if it takes longer ultimately that's a less frustrating state to be in.

    • ivanjermakov · 54 days ago

      Elevator algorithm I'm used to always goes up from lobby and always goes down from any other floor. Meaning that it goes all the way to the highest order and picks orders top-down until reaching lobby. Only exception is going to underground parking floors which is relatively rare in my housing complex.

    • gene91 · 54 days ago

      In some places, I see people do that. It’s not stupidity. I learned the logical reason after observations. During busy hours in some busy buildings, there isn’t enough elevator capacity. Therefore, if you want to go down to the ground floor, taking a trip up and then down might be better (a less-bad worst case outcome, or even a better average outcome) than waiting for a non-full downward elevator. In such case, it’s logical to press both up and down.

    • vel0city · 54 days ago

      When you're at a lower floor and you're trying to go down, but its a time period where traffic is trying to leave you can end up in a situation where nearly every elevator going down is already full. So you call for down, cab arrives but is already full, it goes, you call again, another comes, its already full, rinse/repeat. Sometimes there's not much up traffic during that time, so it can be a legit strategy to just go ahead and call on the up and ride it all the way instead of waiting and hoping for space coming down. Although I guess that's not quite what you're talking about.

    • qurren · 54 days ago

      I often enter it in the wrong direction. Like let's say elevator is at 5, I am at 1 wanting to go to 3, and before I arrive there is already someone else at 1 wanting to go to -1. I'll get in with them going DOWN so that it doesn't have to stop a 2nd time on the way up. There are also other situations where I'll press it in the wrong direction if I think it's already likely to stop on the way down (due to me being on a popular floor) to save an extra stop on the way back up.

      • kccqzy · 54 days ago

        That’s great, but a lot of buildings don’t tell you where the elevator currently is when you are about to press the button.

    • donalhunt · 54 days ago

      I live in Ireland. 10+ years ago I used to the travel to the US quite a bit (5-10 trips a year). The majority of the time I would fly via a major EU hub like AMS or CDG even if there was a direct flight from Ireland. The reason? Other factors that were important to me! Examples: - cost optimisation. I could fly business within company budget rules. - flight time. I highly valued longer flight times between Europe and the US west coast so I got a proper night's sleep when flying east-bound. Doing connections on the east coast often meant quite short transatlantic flights that arrived very early in the morning. Much harder to manage the jetlag. - Product offering. Some of the routes from AMS and CDG had much newer planes and cabins. - Airline alliance loyalty. Given the travel pattern it meant sense to pick an alliance that delivered some value. Irish airlines didn't have much to offer and were much more expensive for a worse end to end product.

      • ericpauley · 53 days ago

        The difference is nobody is getting loyalty status on their elevator.

    • dsego · 54 days ago

      Yes, same here, in croatia people believe that you need to press the opposite direction to "summon" the elevator, if the elevator is on lower floor they will press the "up" arrow to bring it up to their floor. And then of course when the doors open they will ask "going up or down?", which is ridiculous. When I point out that the ground floor only has the "up" button they just ignore it (hard to unlearn ingrained beliefs).

      • nubg · 53 days ago

        > in croatia people believe that you need to press the opposite direction to "summon" the elevator, if the elevator is on lower floor they will press the "up" arrow to bring it up to their floor this is hilarious

    • newtwentysix · 53 days ago

      OMG ! This is a huge problem in India. Frustrating.

  • moralestapia · 54 days ago

    >All this technology just to underperform the S&P My takeaway is that the benefit of using a much more complex algorithm is marginal.

  • proee · 54 days ago

    Don't forget the executive elevator algorithm (EEA), which uses a priority interrupt to take passengers directly to the top floor.

    • mekdoonggi · 54 days ago

      Also need to make sure you increase the speed going past floors 4 and 13 to avoid bad luck.

  • quietsegfault · 54 days ago

    I love elevator simulations.

  • hermanschaaf · 54 days ago

    Hah, I thought a lot about this problem while developing Sky Lobby, a mobile game (iOS / Android) about controlling and automating elevators. In the game, some of the elevators are automated, and I wanted to choose an algorithm that best aligned with what players would expect an elevator to do. I ended up going with something close to LOOK, which (as the article states) is mostly what people expect. Except in case of ambiguity, I had it prioritise floors that have been waiting longer, to improve the p90, which is important in the game. But now, add in these challenges: - double-deck cabs (where attached cabs cover two floors at once) - transfer floors between shafts - express shafts and the best (or at least, most expected) algorithm becomes much less obvious! I'll leave it as an exercise for the reader to figure out the best one. Luckily I was in charge of a game, not a real elevator system, so I just had to find a heuristic that was good-enough, and could tweak the rules to let players manually override the elevator's plan if they don't like where it's going. This seems to have satisfied most players.

    • jamies · 54 days ago

      Thanks for sharing this. I was just commenting about the challenge of making a fun elevator sim game. This looks great -- can't wait to play with it this weekend!

      • hermanschaaf · 54 days ago

        Thanks! Would love to hear your thoughts if you get a chance to play it. I'm currently working on adding a few more towers and challenges. After that maybe I'll deep-dive into the "best" automated scheduling algorithm for all this :)

  • OJFord · 54 days ago

    I think this comparison is also assuming the distribution of request & requested floor is uniform? When actually near pairs are less likely (I'll just take the stairs) than bottom to top, so even analysing it is more complex than at first glance.

  • mito88 · 54 days ago

    did he factor in the lifting speed?

  • jamies · 54 days ago

    This is absolute catnip to me. Fantastic job to the author! It really scratches the itch of wanting to understand elevator dispatch algos! I want something similar for advanced sensor stop lights... I've long toyed with creating an elevator simulator game, but every time I build a prototype I realize it's not that fun to manually dispatch elevators, and playing with algos only goes so far! Elevator Saga is great for the programming side: https://play.elevatorsaga.com/

  • coop57 · 54 days ago

    You have no idea how excited I was to see this article today. I've long been fascinated with elevators and the algorithms that control them. Thank you!

  • cubefox · 54 days ago

    > Everyone has shared the frustration of waiting for an elevator that never seems to arrive. Really? Maybe I'm lucky I never had to deal a lot with elevators.

    • KomoD · 54 days ago

      I can’t say I have. The only two times I’ve been frustrated with an elevator were when I was inside one and the doors wouldn’t close, and when someone had pressed the emergency stop, so I couldn’t use it.

  • realaccfromPL · 54 days ago

    I absolutely adore this, I am always trying to guess whichever elevator will come in first in large crowded buildings. Thanks for this article.

  • tgsovlerkhgsel · 54 days ago

    Is there a comprehensive overview of a) multi-bank elevator algorithms that are out there, b) the config parameters that the elevator tech/company can set on an elevator system? For example, some elevators allow adjusting the door closing/opening speeds etc., I'd be curious what other things can be adjusted.

  • niklasrde · 54 days ago

    I wonder how a TWIN system with 2 cars per shaft factors in here: https://www.tkelevator.com/us-en/products/elevators/all-elev... That will need planning and assignment I guess? But at what load figures does it become more efficient?

  • reader9274 · 54 days ago

    I feel like most cases of wait times are due to elevators "waiting" empty in the wrong floor. They either all wait in the bottom floor, or all wait where they were last left at. Would be better if their waiting floors were distributed throughout the floors so that first response is fast.

    • Sohcahtoa82 · 54 days ago

      In the middle or end of the day, yes. In the morning, waiting on the bottom floor is the best. Unless you're a hotel. Then the timing is flipped: Wait in a distributed manner in the morning/mid-day, gather on the floor in the evening.

      • cruffle_duffle · 54 days ago

        The problem is that in the morning the “last stop” for the elevator might be the lobby not a mid floor. And so it would have to move itself back up without any passengers or calls to upper floors. Basically “optimistically” moving itself back up. And I wonder if some (most?) control systems don’t do that because of… well I dunno. Lots of elevators have pretty old or basic control systems in them. Maybe predate caring about energy and many also probably aren’t strictly smart enough to be concerned about wear factors and stuff. It could also be that you and I simply aren’t privy to what is actually happening “the instant” you are waiting for the elevator. …which makes me wonder how often the firmware in these get updated. Assuming it’s not just a pile of ancient relays and stuff. And if, when they do get updated, the algorithms get improved. Or if the algorithm is something that gets sold to the building and “upgrading” is an actual purchase. Anyway, I could get a little LLM buddy to look it all up but where is the fun in that?

    • rubslopes · 54 days ago

      Yes! I always thought that, when unused, elevators should distribute themselves along the floors, weighted by the floors that use them the most.

    • dbcurtis · 54 days ago

      Most systems to that. Empty-cab strategy is a programming option in the controller. If all cabs are idle (very rare) they are typically spread out.

  • heironimus · 54 days ago

    No mention of an algorithm/sensor for checking capacity of the car. It's a pain when your elevator car shows, it's full, and your request is canceled, meaning you have to press again. Better if the car was full and just moved on. I can see how that could be challenging when people get off on intermediate floors, making a full car available again, changing status. And, if 3 people are waiting and there is room for 1, should it stop or not? Etc. My favorite takeaway from this is how simplicity often beats complexity.

    • barrkel · 54 days ago

      Load penalty is part of the Otis RSR algorithm, it's in the article.

  • pseudosudoer · 54 days ago

    This is commonly referred to as the "dial-a-ride" problem, which is an optimization problem with a multi-variate cost. Back in college for my senior design project we built a multi-axis closed loop servo system which would emulate a slide guitar. The dial-a-ride problem is identical to optimizing travel for a string of notes/chords.

    • NetMageSCW · 51 days ago

      Except it doesn’t really work if you play the notes in a different order.

  • tamimio · 54 days ago

    As someone who lives in a penthouse, elevator’s frustrations are real struggle especially in rush hours, because the elevator has to travel dedicated to you rather than you piggy backing on one that is already going up or down.

  • cruffle_duffle · 54 days ago

    If you like elevator hacking don’t forget the seminal DEF CON talk by Deviant Ollam and Howard Payne: https://youtu.be/oHf1vD5_b5I I watch it like once a year because it always tickles some part of me. Like all the different modes you can get an elevator into. The most fancy one people might encounter is when moving into or out of a building. The front office can give you a key to give exclusive control over an elevator so your movers aren’t waiting around on elevators. Put it in that mode and it will stop responding to calls from other floors. Only the person with the key can control the elevator. You get on, select the floor, door closes elevator goes, and then just chills there with the door open waiting for you. Annoying for the rest if the building (the building is down an elevator when in that mode) but is amazing for the person using it! But there are way, way more depending on the installation and function. Fun fact: most elevator shafts are sealed at the top as tight as possible to prevent them from becoming a giant chimney in a fire. It never even occurred to me until I was in a mechanical room wondering “where is the hatch to look down the shaft?” The answer is “there is none, and it’s a feature not a bug.” You want to block all airflow so fire doesn’t chase up the shaft into neighboring floors. Who knew!

  • efavdb · 54 days ago

    I recently wrote an article about this problem, and detail one reasonable algo for minimizing wait time. (Doesn’t consider concept of cars being full though, interesting addition) https://jslandy.com/elevators/

  • bob1029 · 54 days ago

    Parking is a big factor too. Where you put the elevator when it is not being used can mean the difference between the doors opening instantly and worst case scenario.

  • dperfect · 54 days ago

    Destination dispatch should be no worse than standard up/down buttons, right (at least in theory)? It provides additional information about the destination, but it should be possible for that information to be interpreted as if it were just an up/down button press, so RSR could still be used. I have a feeling a better algorithm could in fact make destination dispatch slightly better than RSR... or am I missing something? Of course, user error is also a factor, so this isn't accounting for people not understanding how to use it and making things worse that way.

    • brd529 · 54 days ago

      As the article says, the problem with destination dispatch is that it 'locks in' an elevator. The passenger gets told at call time what elevator to go to, and it can't change that mid flight. RSR has the advantage that the passenger has no idea which elevator will come, and so RSR can change the elevator they will get in real-time as conditions change. This was an insight I had not considered before reading the article.

      • dperfect · 54 days ago

        That sounds like two separate things then. Could you not have people select a destination without locking in an elevator? (I've never encountered destination dispatch myself, so I'm not really sure how it works in practice)

        • hypersoar · 54 days ago

          The way I've seen it work is that there's a touch screen in the elevator lobby. You tap a floor, and then screen will say "Car C" (along with an audible message). The problem is that then the system can't reassign you to a different car after that. You'll typically have a bunch of different people going to a bunch of different floors, and there would be no reliable way to communicate to each individual their new assignment. Each car will also typically display which floors it's going to when it arrives. I suppose that, rather than assigning a car immediately, you could have passengers check cars as they arrive to see if they're going to their desired floor. Then the system could do reassignment, but people would be scrambling to check every car to see if it's the right one for them, and that's assuming that they understood the system. It would be way too chaotic in practice.

          • dperfect · 54 days ago

            Thanks for the context. That makes sense.

          • JoshTriplett · 54 days ago

            Display a set of floors on a big overhead screen (in floor order so they're easy to find), have the "elevator" column blank until the elevator is assigned, and let them watch the column that's going to show them which elevator to use. But yes, this seems like a case of "unfortunately, people".

          • nicwolff · 54 days ago

            Little extra "fun" anecdote: my building has two banks of eight elevators, each servicing 20 or so floors, and has six destination dispatch kiosks: one at each end and the middle of each bank. The kiosks originally had nice metal buttons for each floor and you could easily tap yours as you walked by. Sometime during Covid, the metal buttons were replaced with glass touch screens – which are totally unreadable on sunny days, because in our stunning glass-ceilinged atrium mezzanine they sit directly in sunbeams[0]. So now you have to walk up to the kiosk, shade it with your body, and squint at the screen to make out where to touch it. [0] http://www.angel.net/~nic/photos/elevators.jpg

          • namibj · 54 days ago

            You could give each one a diceware-eff-wordlist-like "ID" when they input where they want to go, perhaps have a "group" and "single" button/column per destination in the menu as well to inform the elevator if it's a group traveling together, and importantly have a fast-food-pickup-counter style dispatch screen up top visible from the waiting "hall", that assigns you a cab with an appropriate notice/heads-up period so you can make your way over to the assigned cab.

          • hypercube33 · 54 days ago

            After visiting a hospital with like 5 floors and 2 elevators people were having a hell of a time with just 'going up ' or down arrows

      • fellowniusmonk · 54 days ago

        I think the problem with simulations like this is that it doesn't include the chaos of innatentive humans. Forcing functions that dump people into well defined funnels can have such a high net positive effect it more than makes up for theoretical losses. It's like narrow, hard road bike tires losing performance because of deflection from rough road surfaces and how long it took designers to factor that in to real bikes.

        • lefra · 54 days ago

          Kind of like airplane boarding. The ideal algorithm would be to make people board from back to front, and from window to aisle. However, people are not disciplined enough to strictly sort themselves, they won't all take the same time to sit, and some people want to board together (family with children for example). Apparently, the fastest known way to fill up a plane in real-life conditions is to let people board in random order, without pre-assigning a seat.

      • joshjob42 · 54 days ago

        Seems like the obvious solution is to put a bank of floor numbers above each elevator and when one arrives the floors it has been assigned to go to light up and the people going to them get in that one. So each person only needs to quickly to see if it's going to their floor or not, much like they need to look to see if it's going up or down. Then you can dynamically dispatch elevators right up until 5s or so before it arrives at a floor, with full knowledge of not just up/down but also destination. (And hell make 'em say how many people are in their party too so you also know how many people are traveling and where.)

  • omoikane · 54 days ago

    > Destination Dispatch [...] are in general worse I wonder if this is an artifact of how the author used random destinations. I worked in a building that used Destination Dispatch, and the common travel pattern seemed to be: - Everyone who is not on the ground floor generally want to go to the ground floor. - People who are on the ground floor generally travel in large groups to the same destination. This happens because people who worked on the same floor often leave for lunch at the same time, and return at the same time to the same floor. Destination Dispatch helps in this case because it's batching large groups of people with the same destination.

    • taftster · 54 days ago

      Yes, it's definitely more likely for an individual already in an upper floor to return to ground than a stop above or below. The people queuing up in simulations don't seemingly get this right all the time. Also the group of people going to or returning from lunch is real as well. The grouping factor happens more at the middle of the day and less at the morning or evening. Primarily because of lunch.

    • acomjean · 54 days ago

      Is it because the criteria is wait time not travel time? Destination dispatch would avoid some extra stops on the trip. I just visited a new building with destination dispatch, so it seems to be still around. My EE roommate in college had to build an elevator circuit as a final problem. It was on a bread board and had a bunch of call buttons and had a motor and a clear disk with black squares so it could figure out where it was…. I think it was the simple algorithm…

      • vova_hn2 · 54 days ago

        > Is it because the criteria is wait time not travel time? Yeah, it doesn't make any sense to optimize wait time instead of total time from pressing the button to reaching destination.

        • kadoban · 54 days ago

          Human psychology might allow other reasonable criteria even if perfectly rational choice is just total time to destination.

        • esikich · 54 days ago

          It very well could be the case that people get more upset about waiting for the car than total travel time when they are already in the car. Ie, pick them up sooner even if travel time is longer. In fact, I would bet that this is the case.

          • donalhunt · 54 days ago

            Having chatted with friends who have gotten stuck in elevators, you definitely should care about total travel time. In one case, the building was still being commissioned and it took a while for anyone to even realize they were stuck (could spawn a whole discussion about launch processes in itself).

            • esikich · 54 days ago

              Obviously. I'm talking about waiting for the elevator for 30 seconds, total trip is 2 minutes vs 1 minute 30 sec wait and total trip is 1m45s.

          • Gabrys1 · 53 days ago

            It should be both, I think. Same goes for queuing in the restaurant. Waiting for the table for 5 minutes, then 5 minutes for the waiter, then 10 minutes for the drink, then 25 for the food is better than waiting for the table for 25 and then getting your full order in another 5. Basically you have an irrational sense of progress even if things get delayed

      • Ekaros · 53 days ago

        The criteria might also be throughput. That is moving maximum number of passengers in which case total travel time is likely much better metric than wait time.

    • ApolloFortyNine · 54 days ago

      Surely there's a dataset out there with elevator calls for an office building you could test on, instead of the poor random destination case. Surprisingly, claude failed to find a good one. Also, part of destination dispatch (I'm guessing based on experience) removes the 'stopping on every floor problem', so the real test would be total time including wait at that point I think.

      • Ekaros · 53 days ago

        I think most of these sort of data sets are considered trade secrets. They are certainly recorded and even stored. But as they could give competitive edge between manufacturers they are not publicly shared. And access to them would mean building maintenance or managers giving access to their occupants information which some of the occupants would not like.

    • darkwater · 54 days ago

      Yeah, and definitely is not the right story for hotels. His premise of "morning traffic mostly from lobby to floors" is completely false in an hotel where you get it both ways due to people going down for breakfast and going back up and the down once again. I see hotels with the kiosk model changing the UI depending on breakfast rush hour

      • whartung · 54 days ago

        Most interesting hotel elevator system I’ve seen was in Washington DC. Instead of hitting the call button, you started the request with your floor. Then the system would assign you an elevator (there were 6 cars as I recall). I assume this gave the system more accurate routing data to make it more efficient for everyone.

        • nkjoep · 54 days ago

          It’s explained in the article

      • icosian · 54 days ago

        > Yeah, and definitely is not the right story for hotels. The first time I encountered Destination Dispatch was in a London hotel, maybe 15 years ago. Anyone unfamiliar with the system would naturally sprint towards an open elevator and end up in an elevator with no buttons, totally bewildered. It's not the right system for a transient population.

        • donalhunt · 54 days ago

          Maybe they were embracing YOLO - who knows the possibilities of putting your trust in others' decisions / destinations. Or should it be YORO? You only ride once?

    • alexpotato · 54 days ago

      > - People who are on the ground floor generally travel in large groups to the same destination. I also thought that this is one of the biggest reasons destination dispatch was better. There are even articles about switching to destination dispatch in office buildings or hotels lead to dramatic reductions in wait time.

    • dawnerd · 54 days ago

      Cruise ships that use destination dispatch have been much nicer too. Ships that use the older algorithms are a pain to wait during peak times. Guess plus side you’ll use the stairs more.

    • pimlottc · 54 days ago

      This is case where you need to make sure your test data reflects real-world usage or you end up optimizing for the wrong thing. Ideally a new elevator installation would have a trial period where they record usage and then run it through a simulator like this to determine the optimal strategy for that particular building. And you'd want to re-run it every once in a while as the building tenants/usage changes. I wonder if this actually happens, though.

      • shepherdjerred · 54 days ago

        I wonder if we'll see LLM elevator scheduling

        • fragmede · 54 days ago

          IBM's Watson has been used for elevator scheduling.

        • noisy_boy · 54 days ago

          I apologize for bringing you to the 29th floor instead of the 3rd floor as you requested. That's on me. I will do better next time.

          • brookst · 53 days ago

            I want to own something here: this is the fourth time in a row I’ve brought you to the 29th floor when you asked for the third. I am creating a memory to always go to the 3rd floor instead of the 29th, which should prevent this from happening again.

            • breakingcups · 52 days ago

              Small wrinkle: the existing documentation indicates that the 29th floor is in fact the 3rd floor.

          • ufmace · 53 days ago

            Sorry, I forgot that this building only has 18 floors, it's on me that your elevator is now airborne.

            • ArekDymalski · 53 days ago

              Would you like to learn more? If you meant an aircraft elevator or a building elevator malfunction, tell me more so I can give you the right facts.

        • Terr_ · 54 days ago

          Then it'll be time to make an entirely new software accreditation system, simply so that anyone building such a thing can be disbarred/excommunicated.

        • swiftcoder · 54 days ago

          https://www.youtube.com/watch?v=MNuFcIRlwdc

        • Ekaros · 53 days ago

          Most likely not. I think all the big players have been using more traditional ML approaches for years. Then again someone new might go there and fail miserably.

          • swiftcoder · 53 days ago

            This is an industry that evolves extremely slowly. A decade back one of the big players in this space was still using a software emulation of their original hardware relay logic, because it was cheaper than retraining all the technicians...

            • Ekaros · 53 days ago

              It is just the reality that LLMs are not superior for this purpose. They are most likely very much inferior. There is no need to use language models for something that involve no language. I feel weirded each time LLMs are suggested for anything as some sort of holy solution for every single problem. Robot surgery let LLM control it. Robots cooking LLMs. Nuclear power plants and oil refineries LLMs... Industry has find a sledge hammer and now everything is a nail...

        • omoikane · 53 days ago

          It sounds like you are looking for Happy Vertical People Transporters with Genuine People Personalities.

          • fuzzfactor · 53 days ago

            No thanks, I'll take the alleviator :)

          • bkleinwort · 47 days ago

            As long as they're not afraid of the future!

      • _kb · 54 days ago

        The data is already there. This also gets more interesting when you expand the scope from just elevators to general building occupancy and movement. In the simplest sense, I've seen this tied into security gates so as people badge on when entering the building there's already suitable elevator movement to meet demand by time the foot traffic reaches the lift lobby. That can then also feed into destination dispatch if you move from just people counts to identity (and known/most likely work floor). From there you can move into wifi trilateration and have a live and quite accurate view of both how and who interacts with a physical space. This can feed into HVAC load shedding, JIT bookings for meeting rooms or workspaces, and a lot of very good things from a sustainability and general optimisation perspective. The flip side is it also has the potential to be an absolute dystopian privacy nightmare.

        • TeMPOraL · 53 days ago

          > (...) and a lot of very good things from a sustainability and general optimisation perspective. The flip side is it also has the potential to be an absolute dystopian privacy nightmare. Privacy is an illusion for most people, and in office spaces, it's also a red herring. Wifi trilateration doesn't make things worse when you have a CCTV camera on every corner, badge reader at every other door, and presence sensing in conference rooms. Dystopia does not materialize without a severe regime shift. Nah, my main worry is precisely sustainability and optimization , i.e. cost-cutting, because the more tools you give a business to optimize, and the more bullshit excuses ("sustainability! saving the planet!") you give a business, the worse the outcome is for users (here: employees). And a lot of that is doubly annoying, because it's counter-productive. So what you have smart sensors in every room, and combine it with badge readers and wifi trilat and what not, and have smart auto-routing/rebooking algorithm: half the week, all conference rooms are always booked full, and yet somehow when you physically go and check, a good half sits empty, and it's apparently an impossible problem to solve. So what the bathroom wall says, "with water-saving fixtures, we're using much less water in this building", and "we're now saving 2L water per flush". It's all bullshit, because those eco inventions mean I need to flush 3 times instead of once, and it means that I spend a minute washing my hands instead of 10 seconds - especially because both the soap and the dispenser are also optimized, so it takes 20 seconds to get enough soap on your hands, and then extra 20 seconds to get it off afterwards, because unlike normal people soap, it leaves your hands slippery for some reason. And then they say "scientists said you can dry your hands with just 2 paper towels". At that point I'm getting red, because yes, I saw that TED talk 15 years ago too, and yes, it's total bullshit . Maybe it was true then, but the industry and the beancounters have value-optimized paper towels 15 times since that. The generalization and summary of this rant is: slack is good . Happiness lives in slack. There is such thing as optimizing too much. Also the small, isolated systems under optimization, are in reality neither small nor isolated.

          • ben_w · 53 days ago

            > The generalization and summary of this rant is: slack is good. Happiness lives in slack. There is such thing as optimizing too much. Also the small, isolated systems under optimization, are in reality neither small nor isolated. Indeed, the Boimler Effect, amongst other things. I see an analogy, Food : Malthusian catastrophe :: Money : No room for profit in an economy.