
Elevator algorithms, which determine how elevators serve floors in a building, often have inefficiencies due to a combination of factors. Here are some reasons why many existing algorithms may not be optimized:
1. Complexity of Demand Patterns
- Variable Traffic Patterns: Elevators experience fluctuating demand throughout the day (e.g., peak hours, lunch breaks), making it difficult to create a one-size-fits-all algorithm.
- Group Dynamics: Passengers often travel in groups, and their collective behavior can be unpredictable, complicating the scheduling.
2. Algorithm Limitations
- Simple Algorithms: Many
Elevator algorithms, which determine how elevators serve floors in a building, often have inefficiencies due to a combination of factors. Here are some reasons why many existing algorithms may not be optimized:
1. Complexity of Demand Patterns
- Variable Traffic Patterns: Elevators experience fluctuating demand throughout the day (e.g., peak hours, lunch breaks), making it difficult to create a one-size-fits-all algorithm.
- Group Dynamics: Passengers often travel in groups, and their collective behavior can be unpredictable, complicating the scheduling.
2. Algorithm Limitations
- Simple Algorithms: Many systems still use basic algorithms like "First-Come, First-Served" or "Nearest Car," which do not consider future requests or overall efficiency.
- Static Decision Making: Traditional algorithms often make decisions based only on current requests without anticipating future demand, leading to inefficiencies.
3. Technical Constraints
- Hardware Limitations: Older elevator systems may not support advanced algorithms due to outdated hardware, limiting the ability to implement more efficient solutions.
- Integration Issues: Upgrading algorithms can require significant changes to the existing system, which may not be feasible in all buildings.
4. Cost and Complexity of Optimization
- Resource Allocation: Developing and implementing more sophisticated algorithms can require significant time and financial investment, which may not be justified in all cases.
- Maintenance and Upkeep: More complex systems can be harder to maintain and may require specialized knowledge for troubleshooting.
5. User Experience Considerations
- Passenger Comfort: Algorithms need to balance efficiency with user comfort. For example, minimizing wait times might lead to overcrowding in the elevator, which is undesirable.
- Perception of Wait Times: Sometimes, algorithms are designed to prioritize perceived wait times rather than actual efficiency to enhance user satisfaction.
6. Research and Development Challenges
- Limited Research: While there is ongoing research in elevator control systems, the focus on optimization may not be as commercially driven as other fields, slowing down advancements.
- Diverse Building Types: The variety of building designs and elevator configurations (e.g., single vs. multiple elevators) makes it challenging to develop universally optimized algorithms.
Conclusion
While there are more advanced algorithms, like those using machine learning or predictive analytics, widespread adoption is hampered by the factors outlined above. As technology progresses and buildings are retrofitted or newly constructed, there may be more opportunities for implementing optimized elevator control systems.
When I was younger I was at a hotel with some family. They stuck all the kids in one room, and taking advantage of this, I wandered around in the middle of the night. I took the elevator to the ground floor, pressed all the buttons and left. I came back a few seconds later, and when I pressed the button, the door opened again. Surprise, the elevator had not moved.
Elevators are smarter than you think, but they respond to concerns you don't understand. Somewhere along the way some enterprising young engineer looked at all the energy wasted by pushing this giant metal box up and down a concrete s
When I was younger I was at a hotel with some family. They stuck all the kids in one room, and taking advantage of this, I wandered around in the middle of the night. I took the elevator to the ground floor, pressed all the buttons and left. I came back a few seconds later, and when I pressed the button, the door opened again. Surprise, the elevator had not moved.
Elevators are smarter than you think, but they respond to concerns you don't understand. Somewhere along the way some enterprising young engineer looked at all the energy wasted by pushing this giant metal box up and down a concrete shaft unnecessarily, and mandated that the elevator is not going anywhere, thank you, unless someone is in it, or unless it is called to a floor specifically. This represents a demonstrated concern of the client: they want to save power. This in some (most?) cases is much more important than shaving seconds off latency for customers, which they may not notice anyway.
Some systems do solve this problem. 7 WTC in New York City actually requires that users key in the floor before they take the elevator. Knowing this data ahead of time, the elevator dispatch can optimize the floor scheduling rigorously, minimizing latency, trip length, and power consumption in one fell swoop. More concretely, you can even minimize problems like sending two different elevators to the same floor at the same time. (!!!)
(This system, of course, might have some usability problems, which is often the case when you change the user interface to something. This is important to recognize, as it contributes yet another reason why elevators aren't "optimized", but I won't detail such reasons here for brevity's sake.)
On the other hand, the "solution" the question implies is not optimal. First off, the fact that elevators must go into a huge number of different buildings, with potentially very different uses, which means effectively that an algorithm must assuredly fit every possible elevator the company intends to sell. But furthermore, the elevator is a series of embedded hardware -- it's made of systems to track where the elevator is, systems to dispatch elevators, systems to control breaks, etc. It all operates on limited and small memory, with limited power. In general, it is usually more important that the software are correct than it is that they are clever, especially since embedded devices are much more prone to compiler bugs. And if an elevator company can't even be assured that such complicated ML will noticeably affect the usefulness of the system (and I believe that it wouldn't), they have little incentive to develop it (particularly if it could lead to uncertainty in the correctness of the system). And finally, as noted above, there may be more pertinent issues than an elevator simply being well-timed. Like power consumption.
Also, and finally, the problem you speak of does not exist. That's not to say that what you've mentioned is incorrect, necessarily, but rather, it's not a visible concern to the customer who buys it, and it's hard to sell people on a solution to a problem that isn't there.
I'M NEW HERE. HELP ME IMPROVE MY ANSWERS AND MY WRITING BY ADDING COMMENTS.
I got curious one night, and I did Google myself. All the search results I found were wrong, except for this 1 site that had EVERYTHING about me.
When I typed my name into TruthFinder, it was a completely different story! It showed my social media accounts, contact details and more - and it was all accurate!
I was SHOCKED how much of my information came up! I can't say I loved it either :-/
I did see a few other sites doing something similar, but TruthFinder was the easiest and gave the most accurate information. I was able to search for nearly anyone in the United States by name, phone number, a
I got curious one night, and I did Google myself. All the search results I found were wrong, except for this 1 site that had EVERYTHING about me.
When I typed my name into TruthFinder, it was a completely different story! It showed my social media accounts, contact details and more - and it was all accurate!
I was SHOCKED how much of my information came up! I can't say I loved it either :-/
I did see a few other sites doing something similar, but TruthFinder was the easiest and gave the most accurate information. I was able to search for nearly anyone in the United States by name, phone number, address, email address.
What did TruthFinder show?
- Full Name, Address, Phone Number
- Age and DOB
- Arrest Records
- Dating Profiles, Social Media, & More!
Who knew the deep web had so much for anyone to see!?!?
I would guess there are two main reasons why the controller makes some bad decisions: 1) they do not learn patterns based on collecting usage statistics or prior knowledge, but instead are based on a set of initial or general assumptions that may fall out of date as the constituency of the building changes, and 2) they are designed to be fair to each floor, which may lead to inefficiency in the ov
I would guess there are two main reasons why the controller makes some bad decisions: 1) they do not learn patterns based on collecting usage statistics or prior knowledge, but instead are based on a set of initial or general assumptions that may fall out of date as the constituency of the building changes, and 2) they are designed to be fair to each floor, which may lead to inefficiency in the overall building.
In case 1, for example, at 6:00 there are two elevators, one at the sixth floor and one at the first floor. Someone rings the down button at the third floor. Which elevator to choose? If the sixth floor starts heading down and then someone else on the floor shows up and hits the up button, the elevator controller looks pretty stupid. But, based on no prior knowledge of how likely someone is to go up or down on the sixth floor versus the first floor around this time of day, it made at least an equally arbitrary choice (or maybe even an informed heuristic that more people are likely to show up on the first floor than any other floor) by choosing to send the sixth floor car down versus the first floor car up. If the elevator knew that traffic between the sixth and 13th floor was very likely at this time of day, it could have made a different decision.
In the second case, for example, if the 13th, second, and first floor are the most populous, it would make sense to hold the elevator for some minimum amount of time at these floors before moving them to t...
At Google's offices in London they are trying to create an intelligent algorithm for the lifts (elevators). The idea is that everyone waiting should push the button, so the system learns how many people are waiting at specific times on which floor and can prioritise at peak times. It does require every person waiting to push the call button once (8 people = 8 calls) and then, upon entering the lift, to push the required floor button the corresponding number of times (3 people want 3rd floor = 3 pushes of that button).
It seems clunky, and easy to game the system to get your floor as top priori
At Google's offices in London they are trying to create an intelligent algorithm for the lifts (elevators). The idea is that everyone waiting should push the button, so the system learns how many people are waiting at specific times on which floor and can prioritise at peak times. It does require every person waiting to push the call button once (8 people = 8 calls) and then, upon entering the lift, to push the required floor button the corresponding number of times (3 people want 3rd floor = 3 pushes of that button).
It seems clunky, and easy to game the system to get your floor as top priority, but I like the thinking.
The Marriott Marquis in Times Square was one of the first dispatching elevators I've used. You press your floor number in a keypad and then it tells you which elevator to use You key 22, it says 'F', there are no buttons in the elevator itself.
This hotel has a lot of traffic and lots of elevators, its rumored to be 55 stories and has several restaurants and meeting rooms that 1000's of people at a time need to get to quickly.
From my experience this system is VERY optimized for the users and works very well. If you are in NY, go try it... Its fun to take these glass elevators up and have
The Marriott Marquis in Times Square was one of the first dispatching elevators I've used. You press your floor number in a keypad and then it tells you which elevator to use You key 22, it says 'F', there are no buttons in the elevator itself.
This hotel has a lot of traffic and lots of elevators, its rumored to be 55 stories and has several restaurants and meeting rooms that 1000's of people at a time need to get to quickly.
From my experience this system is VERY optimized for the users and works very well. If you are in NY, go try it... Its fun to take these glass elevators up and have a drink up at the View.
As to why regular buildings don't do it, My bet is Lawyers.
Where do I start?
I’m a huge financial nerd, and have spent an embarrassing amount of time talking to people about their money habits.
Here are the biggest mistakes people are making and how to fix them:
Not having a separate high interest savings account
Having a separate account allows you to see the results of all your hard work and keep your money separate so you're less tempted to spend it.
Plus with rates above 5.00%, the interest you can earn compared to most banks really adds up.
Here is a list of the top savings accounts available today. Deposit $5 before moving on because this is one of th
Where do I start?
I’m a huge financial nerd, and have spent an embarrassing amount of time talking to people about their money habits.
Here are the biggest mistakes people are making and how to fix them:
Not having a separate high interest savings account
Having a separate account allows you to see the results of all your hard work and keep your money separate so you're less tempted to spend it.
Plus with rates above 5.00%, the interest you can earn compared to most banks really adds up.
Here is a list of the top savings accounts available today. Deposit $5 before moving on because this is one of the biggest mistakes and easiest ones to fix.
Overpaying on car insurance
You’ve heard it a million times before, but the average American family still overspends by $417/year on car insurance.
If you’ve been with the same insurer for years, chances are you are one of them.
Pull up Coverage.com, a free site that will compare prices for you, answer the questions on the page, and it will show you how much you could be saving.
That’s it. You’ll likely be saving a bunch of money. Here’s a link to give it a try.
Consistently being in debt
If you’ve got $10K+ in debt (credit cards…medical bills…anything really) you could use a debt relief program and potentially reduce by over 20%.
Here’s how to see if you qualify:
Head over to this Debt Relief comparison website here, then simply answer the questions to see if you qualify.
It’s as simple as that. You’ll likely end up paying less than you owed before and you could be debt free in as little as 2 years.
Missing out on free money to invest
It’s no secret that millionaires love investing, but for the rest of us, it can seem out of reach.
Times have changed. There are a number of investing platforms that will give you a bonus to open an account and get started. All you have to do is open the account and invest at least $25, and you could get up to $1000 in bonus.
Pretty sweet deal right? Here is a link to some of the best options.
Having bad credit
A low credit score can come back to bite you in so many ways in the future.
From that next rental application to getting approved for any type of loan or credit card, if you have a bad history with credit, the good news is you can fix it.
Head over to BankRate.com and answer a few questions to see if you qualify. It only takes a few minutes and could save you from a major upset down the line.
How to get started
Hope this helps! Here are the links to get started:
Have a separate savings account
Stop overpaying for car insurance
Finally get out of debt
Start investing with a free bonus
Fix your credit
The elevator in my office building is so frustrating. Today for example I'm waiting at level 0, there are two cars, one is at -3 and one at -2. I press the button and both cars go to level 1 without stopping at 0. Then one car goes to -4, the other to level 5. Then finally both cars arrive at level 0. I get in, press level 5, it then goes down to -2, then -4. Then starts to go up, stops again at 0 although no-one is there, and I finally arrive at level 5. Amazing
While thinking about control units in elevators, I've often wondered why the number pads are located where they are. To me, it would make much more sense to place the keypad in the middle of the back wall, ie, opposite the doors. This would have the effect of bringing people into the elevator and away from the doors, thus allowing more people to come in easily, rather than hanging around the doors as they do now to press the buttons.
Just wondered...
The best way to find the right freelancer for digital marketing is on Fiverr. The platform has an entire category of professional freelancers who provide full web creation, Shopify marketing, Dropshipping, and any other digital marketing-related services you may need. Fiverr freelancers can also do customization, BigCommerce, and Magento 2. Any digital marketing help you need just go to Fiverr.com and find what you’re looking for.
The difficulty is measuring intent before getting into the elevator. At present most systems only allow up or down in the foyer. The problem can be solved by putting the floor selection button in the elevator foyer (as well as the inside) of the elevator.
Another method would be to connect the elevators to the Internet of things. Your presence is detected when you go into the elevator, the floor you press is remembered and is used the next time you walk into the elevator foyer. Your history is remembered and your intent is assumed to be related to your previous usage of the lift.
It's an NP-hard problem. There will always be edge cases that don't work well, and your anachronistic human pattern matching software notices them disproportionally.
AI effectiveness depends on relevant, responsible and robust data to prevent costly errors, inefficiencies, and compliance issues. A solid data foundation allows AI models to deliver precise insights and ensures systems comply with regulations and protect brand reputation.
Gartner® finds that "At least 30% of generative AI (GenAI) projects will be abandoned after proof of concept by the end of 2025, due to poor data quality, inadequate risk controls, escalating costs, or unclear business value." High-quality, AI-ready data is the fuel for AI-driven advancements now and in the future.
AI effectiveness depends on relevant, responsible and robust data to prevent costly errors, inefficiencies, and compliance issues. A solid data foundation allows AI models to deliver precise insights and ensures systems comply with regulations and protect brand reputation.
Gartner® finds that "At least 30% of generative AI (GenAI) projects will be abandoned after proof of concept by the end of 2025, due to poor data quality, inadequate risk controls, escalating costs, or unclear business value." High-quality, AI-ready data is the fuel for AI-driven advancements now and in the future.
This has always been my favorite interview question for programmers. I ask them to write the steps/algorithm for elevator car movement when there are three cars and five landings, using any programming language or pseudo-code. As they explain, I ask several questions that challenge their suggestions, such as I have listed below.
It’s a great question because even the best programmers cannot provide a deterministic approach in the allotted few (say, 10) minutes of discussion. It really makes you think. I suggest that you try to come up with a solution. If you can make progress on this problem us
This has always been my favorite interview question for programmers. I ask them to write the steps/algorithm for elevator car movement when there are three cars and five landings, using any programming language or pseudo-code. As they explain, I ask several questions that challenge their suggestions, such as I have listed below.
It’s a great question because even the best programmers cannot provide a deterministic approach in the allotted few (say, 10) minutes of discussion. It really makes you think. I suggest that you try to come up with a solution. If you can make progress on this problem using sound judgement to come up with a practical approach, you would probably be an excellent programmer.
Here are some challenges to get you started:
- If a wall button is pressed on landing N, while there are cars going UP on N-3, N-2, and N+1, which should be summoned? (basic, obvious, but fundamental)
- In that same situation, if the second car is stopped for a long time with the doors held open and, meanwhile, the other two cars are at N-2 and N+2, what should be done?
- Car B is empty on landing N and somebody gets in and presses the button for landing N+1 and the doors close. But that car was already on the way to landing N-3 to pick up somebody. Should the car go down to N-3 first or should it go up to N+1 and a different car be summoned to floor N-3?
- What if there are many people getting on at landing 1 and going up, filling up every car, and there is somebody on landing 2 who is waiting to go up for a long time but cannot because the cars are always full?
- What about making the elevators aware of the day of the week and time of the day? When an elevator is idle, should it move to the entry landing that is most often used at that time slot?
- What if the elevator cars have scales so they can determine whether they are empty or not? How would this impact the movement of the cars?
That is just a small sample of the dozens of scenarios. Now that you have read this far I will give you the bad news: I do not have an answer, only an approach:
The primary thing I have discovered, when thinking about this problem, is that it seems to be a bad idea to actually summon a specific car to a landing and “lock that in as a destination.” Everything works much better if you have rules for balancing the requests and minimizing ride time, then reevaluate those rules every time there is a change in the situation, such as a car reaching a landing or a button being pressed. The decisions should involve the “movement direction” (up or down) of each car rather than the “destination landing.”
I’m not confident that this is the very best approach, mostly because it appears that real elevators don’t always work this way, although it seems that they usually do. But it is a good approach.
Greater complexity results in greater rate of failure, and you cannot afford an elevator failure in most high rise buildings that depend on them. I'm personally glad that elevators are controlled by hardware following simple, predictable logic, rather than complex software that is prone to bugs, deadlocks, hacking and which exhibits behavior I cannot predict. I would rather second guess the elevator than have it second guess me.
I've seen the control boxes that control old elevators and they are simply a bunch of electrical relays clicking along. Simple, effective and easily fixed. I also pref
Greater complexity results in greater rate of failure, and you cannot afford an elevator failure in most high rise buildings that depend on them. I'm personally glad that elevators are controlled by hardware following simple, predictable logic, rather than complex software that is prone to bugs, deadlocks, hacking and which exhibits behavior I cannot predict. I would rather second guess the elevator than have it second guess me.
I've seen the control boxes that control old elevators and they are simply a bunch of electrical relays clicking along. Simple, effective and easily fixed. I also prefer them to the 'smarter' elevators I see today which will make me wait for a moving elevator which already has 10 stops on its agenda, to a stationary one that is closer to me and could get to me sooner. Their intent is to conserve energy and keep elevators available for new arrivals. But it can be frustrating since the elevator usually arrives full and I need to make another call anyway. I prefer the older ones that don't over think it and simply send the elevator closest to you that is not moving in the opposite direction.
I understand the need for power savings, but here's an idea that can save both:
Offer a smartphone app (or other setup) that connects when the user is approaching the Elevator, pop up a question, asking if they are going up or down and dispatch the elevator. Also offer the ability to open the app and tell the elevator that you are on the way, it can use location data to know when to send the elevator.
Wow, lots of interesting information already said. I would like to add that elevators are indeed smart and efficient. The problem is people keep pressing the "hold open" button and messing with the elevator timing ;).
At times where everyone isn't leaving, resting at the ground floor is optimal. At times where everyone is leaving, they're constantly in use so the resting floor is irrelevant.
Any time you find yourself criticizing an established system, you should spend some time analyzing your criticisms first.
Elevators are not designed to take a position on usage or traffic and minimize wait/ movement times. Elevator algorithms depend on users to initiate a trip and complete it. This makes them most power efficient. Any optimization of wait/ movement times has to be very contextual (# of people, day, date, time, other elevator positions etc.) and the context changes frequently enough so that the optimization has to be done every few days.
The other problem is that an elevator can be controlled by a single user undermining the algorithm that optimizes the collective wait/ movement time of a large
Elevators are not designed to take a position on usage or traffic and minimize wait/ movement times. Elevator algorithms depend on users to initiate a trip and complete it. This makes them most power efficient. Any optimization of wait/ movement times has to be very contextual (# of people, day, date, time, other elevator positions etc.) and the context changes frequently enough so that the optimization has to be done every few days.
The other problem is that an elevator can be controlled by a single user undermining the algorithm that optimizes the collective wait/ movement time of a large set of users.
This is one of my favorite engineering problems. We learned about this in day 1 of our introduction to Systems Engineering course. Our professor posed the question to us. We generalized it to: "how does one reduce dissatisfaction caused by long wait times for the elevator?"
There are many algorithms and computational techniques one could use. Monte Carlo simulation comes to mind, as the elevator algorithms have to be tested under different types of conditions and different levels of variability come into play. Additionally, queueing theory could prove useful.
Despite all this, our professor prop
This is one of my favorite engineering problems. We learned about this in day 1 of our introduction to Systems Engineering course. Our professor posed the question to us. We generalized it to: "how does one reduce dissatisfaction caused by long wait times for the elevator?"
There are many algorithms and computational techniques one could use. Monte Carlo simulation comes to mind, as the elevator algorithms have to be tested under different types of conditions and different levels of variability come into play. Additionally, queueing theory could prove useful.
Despite all this, our professor proposed a very simple solution (that only now do I see as elegant): install mirrors near the elevators doors on each floor. That way, people can fix their hair and remain pre-occupied while they wait. You don't actually speed up the elevators, but do solve the larger problem of user dissatisfaction.
Elevator algorithm is best explained through Knuth's Elevator algorithm.
But in the simple steps, the algorithm can be followed as:
- Proceed in the same direction until the last request in that direction.
- If there is no request, stop and proceed towards other direction, if there is any request from other direction.
All of the answers I've read make logical sense. I'd just like to add the simple answer that it may be less maintenance. In other words, to have the elevator resting at the ground floor when not in use instead of constantly being suspended at a particular floor trying to predict the likelihood of someone on that floor calling the elevator may reduce wear on the systems that keep the elevator suspended. I get that the counter argument for my theory may be that it increases maintenance to have the lift going back and forth from one floor to another. To that I'd make the analogy of automobile
All of the answers I've read make logical sense. I'd just like to add the simple answer that it may be less maintenance. In other words, to have the elevator resting at the ground floor when not in use instead of constantly being suspended at a particular floor trying to predict the likelihood of someone on that floor calling the elevator may reduce wear on the systems that keep the elevator suspended. I get that the counter argument for my theory may be that it increases maintenance to have the lift going back and forth from one floor to another. To that I'd make the analogy of automobile use. Do you keep your car running all day just because you may get in it at some point between, say, arriving to work and going home or do you shut off the engine and let it rest?
There is no standard. Manufacturers tend to use slightly different algorithms and treat them as trade secrets. But in practice, their algorithms are similar, because the theoretical optimization criteria are roughly the same:
- provide even service to each floor
- minimize how long passengers wait for an elevator to arrive
- minimize how long passengers spend to get to their destination floor
- serve as many passengers as possible
The single elevator case is not very interesting, nor is the case when the passenger can't specify his direction of travel when making the call (one button per floor), so I'll
There is no standard. Manufacturers tend to use slightly different algorithms and treat them as trade secrets. But in practice, their algorithms are similar, because the theoretical optimization criteria are roughly the same:
- provide even service to each floor
- minimize how long passengers wait for an elevator to arrive
- minimize how long passengers spend to get to their destination floor
- serve as many passengers as possible
The single elevator case is not very interesting, nor is the case when the passenger can't specify his direction of travel when making the call (one button per floor), so I'll instead discuss only the case where there are multiple elevators, and two buttons on each floor.
There are several criteria to consider in elevator scheduling. For example, people have predictable behavioral patterns that must be addressed, including the uppeak and downpeak---respectively 9AM and 5PM, in many office buildings---which are when elevator efficiency matters the most. There is often a 1-2 hour two-way peak (lunchtime) to address as well. Algorithms should consider whether an elevator is full before assigning it to an elevator call. Sometimes, some blocks of floors have predictably higher interblock or intrablock traffic than other blocks. Often, calls on some floors (executive floors, for example) are given higher priority than others (basements). All of these factors increase the algorithm sophistication.
Still, they tend to be based on the four classic group traffic control algorithms.
- Nearest Car (NC): Elevator calls are assigned to the elevator best placed to answer that call according to three criteria that are used to compute a figure of suitability (FS) for each elevator. (1) If an elevator is moving towards a call, and the call is in the same direction, FS = (N + 2) - d, where N is one less than the number of floors in the building, and d is the distance in floors between the elevator and the passenger call. (2) If the elevator is moving towards the call, but the call is in the opposite direction, FS = (N + 1) - d. (3) If the elevator is moving away from the point of call, FS = 1. The elevator with the highest FS for each call is sent to answer it. The search for the "nearest car" is performed continuously until each call is serviced.
- Fixed Sectoring Common Sector System (FSO): The building is divided into as many sectors as there are elevators. Elevators in each sector prefer calls in that sector.
- Fixed Sectoring Priority Timed System (FS4): The building is divided into up sectors and down sectors, and elevators only ever treat down calls in down sectors and up calls in up sectors. Each sector has a priority level, which increases the longer the passengers wait. The rate of increase can vary from sector to sector and over time.
- Dynamic Sectoring System (DS): Floors are grouped into dynamic sectors. Each elevator is allocated to a sector in the sector definition, and the sectors change size and location based on the position of moving and idle elevators.
Modern control systems do even more than this. Some of them dynamically compute cost functions for passengers waiting on an elevator. Stochastic traffic control systems empirically compute the distribution of response times and try to make it as Gaussian as possible (wait times should be consistent; there shouldn't be some times when elevators respond instantly and others where they take a while). Some advanced techniques use fuzzy logic schedulers (Ho and Robertson 1994), genetic algorithms (Siikonen 2001, Miravete 1999), and neural networks (Barney and Imrak 2001).
Most of this information is paraphrased from UK-based lift consultant Gina Barney's book "Elevator Traffic Handbook: Theory and Practice." A most uplifting read.
Simplicity, correctness, and ease of maintenance vs performance with complicated and possibly incorrect code.
Code that is fast but incorrect is counter productive. Both development time and user time is wasted.
Code that is easy to maintain, correct, and test is preferred to complex code that is difficult to test.
Only optimized code after:
- You have a correct solution that works
- You have determined by empirical test is a major bottleneck (>50% of the time),
- You are going to run this program a lot and it is worth the protracted expense to make it faster.
Algorithms do not decide the best possible solution to a problem. People do. And people sometimes decide that a specific algorithm is the best solution to the problem.
An algorithm is just a fancy way of saying a “pattern of logic”. Any time you write a function in a language, you are writing the code version of an algorithm.
Over time, programmers have learned more efficient ways of doing things an
Algorithms do not decide the best possible solution to a problem. People do. And people sometimes decide that a specific algorithm is the best solution to the problem.
An algorithm is just a fancy way of saying a “pattern of logic”. Any time you write a function in a language, you are writing the code version of an algorithm.
Over time, programmers have learned more efficient ways of doing things and these “algorithms” have been given names over the years like “bubble sort” and “select sort” and all the different ways to sort arrays that have come after.
Developers often use these without knowing they are using them. A string library that has a sort function is probably using a popular algorithm to perform that sort. The developer doesn’t need to know that to call the function.
Other times, a developer will run into a problem such as dealing with a heirachy of interconnected requirements. Rather than puzzle something very complex out all alone, they may rely on the people that came before them that helped create some of these more famous algorithms. There may even be more than...
Elevators manufactured by the Sirius Cybernetics Corporation operate on the principal of defocused temporal perception. Through precognition the elevators “know to be on the right floor even before you knew you wanted it.”
Source: Hitchiker’s Guide to the Galaxy
Frankly there is NO “perfect elevator logic”. I say a commercial high rise office scenario, there are surely “rush time” with people generally going up (say in the morning around start time), at the end of nominal lunch times, and then the load shifts to “down” at the nominal end of lunch times and nominal end of the work day. Even then there is much at least short term performance gains to be achieved by the decisions re how long to wait before “going up? vs waiting for more people to enter the before leaving. Etc etc… All pretty analogous to the problem of how to control street level traffic
Frankly there is NO “perfect elevator logic”. I say a commercial high rise office scenario, there are surely “rush time” with people generally going up (say in the morning around start time), at the end of nominal lunch times, and then the load shifts to “down” at the nominal end of lunch times and nominal end of the work day. Even then there is much at least short term performance gains to be achieved by the decisions re how long to wait before “going up? vs waiting for more people to enter the before leaving. Etc etc… All pretty analogous to the problem of how to control street level traffic at stop lights. So LOTS of factors to consider, including in some cases, what type of “elevator traffic” if ANY should get prioirity.
The real questions are how to detect and adapt to the various “service priority concerns”. That implies “AI logic computerization” circa 2025; in “the old days” we just called it “adaptive control” and used it quite effectively if crudely in many applications, personally in regards to making “batches” of glass making ingredient formulas to feed furrnaces that ran 24x7x365 and later re the utilization of robotic pallet transports (think automated forklifts) to deliver empty bottles into an automated warehaose, then on demand to specific bottling lines when needed, and deliveing bottled goods back into the automated warehouse and/or the shipping dock when needed. All very dynamically changing work loads and varying priorities throughout the day and from day to day. The AI we used was called simply “smart adaptive control logic” - some tasks prioritized with allowance for not forgetting any need too long.
It’s NOT easy as pie, BUT doable. More easily doable perhaps with faster computer systems and better sensors.
If there’s only a single elevator, and the calls are truly random, then the best you can do is serve all the pending “up” calls in one pass up the shaft, then serve all the pending “down” calls in one pass down the shaft, and repeat. If you ever get to a point where there are no pending calls, go to the “middle” floor and wait (that gets you the lowest average time to reach any given floor when a random call comes in).
In practice, there are often multiple elevators, and certain floors (e.g. the ground floor) are far more common than others, so more sophisticated algorithms are used.
First, you have to understand that the MTA is not a single, homogeneous authority that runs its subsidiaries directly. It is more like a holding company with executive, administrative and operating redundancies. Why? The New York State Public Authorities Law demands it.
The following is a list of the legal names of the various operating authorities which are owned by the MTA: New York City Transit Authority, Manhattan & Bronx Surface Transit Authority, Staten Island Rapid Transit Operating Authority, MTA Bus Company, Long Island Rail Road, Metro North Commuter Railroad and the Triborough Bridge
First, you have to understand that the MTA is not a single, homogeneous authority that runs its subsidiaries directly. It is more like a holding company with executive, administrative and operating redundancies. Why? The New York State Public Authorities Law demands it.
The following is a list of the legal names of the various operating authorities which are owned by the MTA: New York City Transit Authority, Manhattan & Bronx Surface Transit Authority, Staten Island Rapid Transit Operating Authority, MTA Bus Company, Long Island Rail Road, Metro North Commuter Railroad and the Triborough Bridge & Tunnel Authority. Each authority, under NYSPAL, must carry its own set of financial records including budgets. While the MTA has done its best to rationalize operations, unless the State Legislature allows full reorganization into, say, four basic operating divisions (Rapid Transit, Surface Transit, Commuter Rail and Bridges & Tunnels), there is nothing the MTA can legally do to cut its structural redundancy. Most other inefficiencies stem from this basic problem.
Let’s take purchase of commuter rail cars as an example. The basic electric car purchased for the LIRR & Metro North is the M-7 model. M-7s for the LIRR must have hot shoes that make contact on top of the third rail. M-7S for the Hudson & Harlem lines must have hot shoes that make contact on bottom of the third rail. M-7s purchased for the New Haven line must not only have the underside hot shoe but also pantographs. In addition, the New Haven line is co-owned by the MTA and the Connecticut Department of Transportation. Therefore, it has to be decided how many cars will be bought and owned by the MTA and how many by CDOT. There are plenty more examples of these kinds of complexities throughout the MTA system. Remember, all operating authorities existed before the MTA, particularly the commuter railroads which were inherited from bankrupt private operators (LIRR, Penn Central & NYNH&H). The NY Subway system consisted of two privately operated companies (IRT &BRT/BMT) as well as the publicly owned IND.
This is just the tip of the iceberg but if I went into this in further detail this answer would become a book.
I don’t have an answer to reasoning the elevator problem but I do have a point of appreciation… before there were processors, video sensors, and AI there were machinists, PEOPLE, who designed and built the “brains” for fully mechanized elevator systems.
This is the analog “auto attendant synchronizer” for a 10-story 2-car elevator system from a building I used to work in on Wilshire Blvd in L.A. It’s an amazing and beautiful thing don’t you think?
It did the work after-hours when the elevator operator was off duty. I *think* but don’t know for sure that the dial with the larger set of numbers on
I don’t have an answer to reasoning the elevator problem but I do have a point of appreciation… before there were processors, video sensors, and AI there were machinists, PEOPLE, who designed and built the “brains” for fully mechanized elevator systems.
This is the analog “auto attendant synchronizer” for a 10-story 2-car elevator system from a building I used to work in on Wilshire Blvd in L.A. It’s an amazing and beautiful thing don’t you think?
It did the work after-hours when the elevator operator was off duty. I *think* but don’t know for sure that the dial with the larger set of numbers on it is reading feet and not floors.
So while pondering your high-tech answers or get stuck in one of them IOTA digital lift boxes please have some appreciation for the folks that made this intelligent hunk of metal!
The close door button needs to be there. It functions really well when the engineer key is inserted, and the door open button keeps the door open until the close button is pressed.
As for more modern features. It’s mostly about the age of elevators - they are as old as the building, and the cheapness of the system - the builders always fit the cheapest one unless otherwise specified.
The basic directives that Deepankit Shukla lays out in his answer are a good place to start, and probably the algorithm that most elevator systems rely on. However, there are a number of optimizations to layer on top. I’ll discuss two here: energy optimization and speed optimization.
Consider cases where two elevators are equidistant from the requesting floor, one above and one below. Also assume that the elevators move up and down at the same rate (not necessarily the case, but let’s assume for the sake of argument): Presumably you call the above (using spent energy rather than new energy) to
The basic directives that Deepankit Shukla lays out in his answer are a good place to start, and probably the algorithm that most elevator systems rely on. However, there are a number of optimizations to layer on top. I’ll discuss two here: energy optimization and speed optimization.
Consider cases where two elevators are equidistant from the requesting floor, one above and one below. Also assume that the elevators move up and down at the same rate (not necessarily the case, but let’s assume for the sake of argument): Presumably you call the above (using spent energy rather than new energy) to the requested floor. If there is an elevator twenty floors above and another two floors below the requesting floor, maybe you should call the below elevator, and reserve the higher elevator (with more spent/potential energy) for a higher floor request later. Let’s take this scenario: You have two elevators: one on the 3rd floor, and one on the 18th floor. Someone on the 6th floor calls an elevator. It seems that if the 18th floor is going to pick up a passenger on its way down, it will be on the 9th floor, on average. Given that your “expected” value of that elevator is 9 and you’d be spending it on a 6, you’re losing 3 units of energy. Likewise, You’d lose three units of energy traveling upward from the 3rd to the 6th floor. If you factor in convenience to the user (speed), you should call the elevator on the 3rd floor. If this is a low-population building and you only care about energy efficiency, you should still choose the elevator from the 18th floor (since the energy has already been spent). If the call were on the 5th floor, or if the lower elevator were starting off on the 4th floor, you would use the lower elevator (in these cases, it’s more energy efficient and faster).
No. The computers of yore ran at constant speed (when they weren’t halted). With recent PC’s it’s more complex: when the CPU is running at full speed that speed is lower than when it’s idle, but what is the point of a computer being able to run faster at times when it’s not running any processes?
I assume that “algorithm” means “application program”. Application programs don’t alter the speed of the hardware. The performance of the jobs a computer is running is determined by the speed of the hardware, the efficiency of the OS, and the applications. A more efficient algorithm should result in an
No. The computers of yore ran at constant speed (when they weren’t halted). With recent PC’s it’s more complex: when the CPU is running at full speed that speed is lower than when it’s idle, but what is the point of a computer being able to run faster at times when it’s not running any processes?
I assume that “algorithm” means “application program”. Application programs don’t alter the speed of the hardware. The performance of the jobs a computer is running is determined by the speed of the hardware, the efficiency of the OS, and the applications. A more efficient algorithm should result in an application taking less time to run or needing less memory.
“Do inefficient algorithms have any advantages over their more optimal counterparts?”
Run QuickSort, reputedly quite fast, on a large sorted array, say perhaps 16 billion or so objects. Wait. And wait. Then wait some more. Then use BubbleSort, SelectionSort or even InsertionSort all decidedly O(n^2) “slow” algorithms, on the same sorted dataset. Which runs better in this case? Is QuickSort REALLY optimal in this case? Say it isn't so.
Why do computers use algorithms? Aren't algorithms inefficient and limiting for computers?
An algorithm is just a way to describe a computation. Any computation follows an algorithm. So if computers didn’t use algorithms they would just be door stops.
Another thoughtful question brought to you by the Quora Prompt Generator.
One of the most effective optimizations to elevator traffic (in a big building, at least) is actually a bit of an overhaul: Replace the "up" and "down" buttons with floor buttons and remove the floor buttons in the elevators. The advantages are obvious: People moving in small increments (1 or 2 floors) can all be put on the same elevator, and an express elevator free of these hoppers takes people long distances without having to make a stop at every floor.
Unfortunately, humans don't like this system. We like to feel in control, and the shock of stepping into an elevator with no button other th
One of the most effective optimizations to elevator traffic (in a big building, at least) is actually a bit of an overhaul: Replace the "up" and "down" buttons with floor buttons and remove the floor buttons in the elevators. The advantages are obvious: People moving in small increments (1 or 2 floors) can all be put on the same elevator, and an express elevator free of these hoppers takes people long distances without having to make a stop at every floor.
Unfortunately, humans don't like this system. We like to feel in control, and the shock of stepping into an elevator with no button other than "STOP" makes us feel helpless. So nobody uses this kind of system.
The closest we can come to this, then, is just to have an algorithm that prioritizes direction first (you don't want to schedule an elevator heading up to pick someone up who wants to go down) and then just doesn't make stops if it's heading up many floors until it gets close to its destination.
Sometimes it is best to implement a straight-forward approach to an algorithm which solves a problem for sure instead of a more optimized version that may have issues on corner cases. Optimization can come later in most cases.
The name of the algorithm is cscan used in reading and writing to your disk. In fact I believe the computer guys got inspired by the elevator more than the other way around. The arm or head of the disk moves only in one direction while processing read/write requests and then moves back the opposite way. Just like the elevator moves up or down picking up people along the way. Requests in the opposite direction must wait.
en.wikipedia.org/wiki/Elevator_algorithm
Many early elevators just had a 'call' button on each floor; only when you entered the elevator could you direct it to a particular floor. Eventually, designers changed this to 'call to ascend' and 'call to descend', as this allows an elevator that is already going downwards to skip someone waiting to go upwards, for example.
I believe a sensible progression is to allow the user to select the floor they wish to go while waiting. Behind the scenes, this data could permit a more efficient routing algorithm, and even more so in multi-elevator scenarios. There are several drawbacks to this however,
Many early elevators just had a 'call' button on each floor; only when you entered the elevator could you direct it to a particular floor. Eventually, designers changed this to 'call to ascend' and 'call to descend', as this allows an elevator that is already going downwards to skip someone waiting to go upwards, for example.
I believe a sensible progression is to allow the user to select the floor they wish to go while waiting. Behind the scenes, this data could permit a more efficient routing algorithm, and even more so in multi-elevator scenarios. There are several drawbacks to this however, including the cost of the additional buttons or more sophisticated interface, the difficulty of defining the algorithm in a generic way across different buildings, etc.
Finally, concepts from machine learning could be employ to build models of the likely collection and destination floors required at certain times, since human behaviour is surprisingly regular in this regard.
Most, or all of the features you talk about are available for elevators, but they are often not purchased by the builder of the building. For example, for a good anti-nuisance feature operation, (the cancelling of excessive calls being entered for no reason) you need a load weighing device in the elevator to compare the number of calls with the number of occupants. This adds initial costs and maintenance complexity and costs to keep it calibrated.
Door open buttons are occasionally temporarily disconnected by elevator technicians who cannibalize the button parts or electronic parts to keep ot
Most, or all of the features you talk about are available for elevators, but they are often not purchased by the builder of the building. For example, for a good anti-nuisance feature operation, (the cancelling of excessive calls being entered for no reason) you need a load weighing device in the elevator to compare the number of calls with the number of occupants. This adds initial costs and maintenance complexity and costs to keep it calibrated.
Door open buttons are occasionally temporarily disconnected by elevator technicians who cannibalize the button parts or electronic parts to keep other features running.
Elevator cars take time to reach certain floors, depending on all sorts of dynamics of a given situation, including such items as:
- the distance from the beginning to the end of a trip
- the direction that a specific car is already moving when it is summoned
- the overall time-of-day elevator loading (such as lunchtime overloading)
- the trip interruptions, such as by those annoying people who want to get on or off in the middle of your own trip
- the relative health of each car (for example, if two cars in a bank of elevator cars are currently out of service for purposes of maintenance, then all of the rem
Elevator cars take time to reach certain floors, depending on all sorts of dynamics of a given situation, including such items as:
- the distance from the beginning to the end of a trip
- the direction that a specific car is already moving when it is summoned
- the overall time-of-day elevator loading (such as lunchtime overloading)
- the trip interruptions, such as by those annoying people who want to get on or off in the middle of your own trip
- the relative health of each car (for example, if two cars in a bank of elevator cars are currently out of service for purposes of maintenance, then all of the remaining cars will have sub-optimum performance due to the overload)
- unexpected glitches or unusual passenger behaviours in operations
- the overall algorithm governing the elevator system operations (for example, if the “home” location for cars is mid-height of the building, then the times to reach top or bottom would be similar, whereas bottom or top homes would result in widely different timings).
Numerous other factors could alter the observed timings. Further, it is not individual timings that are important, but average timings during peak loads, time of day, and so on.
Some algorithms can be helpful for average times. For example, during the morning rush for employee arrivals, the system could be biased so that the elevator cars tend to have a home location at the building’s ground floor lobby, whereas at the end of the day, when employees leave, the home location could be at mid building height.
So far I have only addressed business elevators. Different algorithms might be applicable for residential buildings.
Elevator system design, and especially elevator user interaction models, is one of my amateur interests during my retirement. See, for example, my book Making Products Obvious, sometimes available from online book retailers. One of the things that I advocate in that book is replacing the two buttons “Open Door” and “Close Door” by only one single button “DOOR”. That DOOR button would toggle the current state of an elevator car door: if the door is closed or closing, pressing the DOOR button would cause the door to start opening; if the door is open or opening, it would start closing. Pressing and holding the DOOR button would cause the door to remain in its current state. I advocate such a design for all elevator manufacturers, along with many other design improvements, such as double-pressing a floor button should cancel a mistaken previous selection.
I just studied it in my class that a hard disk uses an elevator algorithm(F-SCAN or C-SCAN) to accomplish all its task. So, probably, an elevator might use a hard disk algorithm. So, you can study about C-SCAN in details. A rough idea is that it takes everything in its path which is in the direction of its motion.
SCAN scheduling algo. is used in elevators. SCAN is a disk scheduling
algorithm to determine the motion of the disk's arm and
head in servicing read and write requests.
This algorithm is named after the behavior of a building
elevator , where the elevator continues to travel in its
current direction (up or down) until empty, stopping only
to let individuals off or to pick up new individuals
heading in the same direction.
From an implementation perspective, the drive maintains
a buffer of pending read/write requests, along with the
associated cylinder number of the request. Lower cylinder
numbe
SCAN scheduling algo. is used in elevators. SCAN is a disk scheduling
algorithm to determine the motion of the disk's arm and
head in servicing read and write requests.
This algorithm is named after the behavior of a building
elevator , where the elevator continues to travel in its
current direction (up or down) until empty, stopping only
to let individuals off or to pick up new individuals
heading in the same direction.
From an implementation perspective, the drive maintains
a buffer of pending read/write requests, along with the
associated cylinder number of the request. Lower cylinder
numbers indicate that the cylinder is closest to the
spindle, and higher numbers indicate the cylinder is
farther away.
Description:••
When a new request arrives while the drive is idle, the
initial arm/head movement will be in the direction of the
cylinder where the data is stored, either in or out . As
additional requests arrive, requests are serviced only in
the current direction of arm movement until the arm
reaches the edge of the disk. When this happens, the
direction of the arm reverses, and the requests that were
remaining in the opposite direction are serviced, and so
on
The NYC may be old, but it is far from unreliable. As someone who has been taking it for more than 25 years, I can tell you that it’s reliability has gotten better, not worse. If you have facts to support your contention that it’s getting worse, I’d like to see them. I’d also point out that NYC has a far better public transportation system (as far as it’s ability to get you anywhere you need to go in Manhattan and a good chunk of the other boros quickly and cheaply) than any other major US city, and operates it on a far, far greater scale.
EDIT 1/31/2018: Since originally writing this answer, I
The NYC may be old, but it is far from unreliable. As someone who has been taking it for more than 25 years, I can tell you that it’s reliability has gotten better, not worse. If you have facts to support your contention that it’s getting worse, I’d like to see them. I’d also point out that NYC has a far better public transportation system (as far as it’s ability to get you anywhere you need to go in Manhattan and a good chunk of the other boros quickly and cheaply) than any other major US city, and operates it on a far, far greater scale.
EDIT 1/31/2018: Since originally writing this answer, I’ve seen additional statistics regarding subway on-time rates and other reliability measures have been showing a clear decrease. That’s not to say the subway isn’t overall reliable, but things definitely are not going in the right direction. There are a number of reasons for this, tied up in politics, money and societal choices, which are too complex to get into here. But suffice it to say that I would amend my original answer if I were to write it today.
That depends completely on the programme. However, it is relevant to understand the objectives of the programme. Mainly, you need to consider two different notions of 'efficient', when it comes to an efficient programme. The first is bandwidth, the other is latency. The first is 'how many people per hour', the second is 'how long do people wait after pressing the button'. In a crowded office building or mall, the former is more important (if the bandwidth is insufficient, the elevator queues of people will form faster than the elevator can serve them). In a residential flat, the latter is typi
That depends completely on the programme. However, it is relevant to understand the objectives of the programme. Mainly, you need to consider two different notions of 'efficient', when it comes to an efficient programme. The first is bandwidth, the other is latency. The first is 'how many people per hour', the second is 'how long do people wait after pressing the button'. In a crowded office building or mall, the former is more important (if the bandwidth is insufficient, the elevator queues of people will form faster than the elevator can serve them). In a residential flat, the latter is typically more important (queues are unlikely to form).
Thus, different circumstances require different programmes. In fact, some elevators are programmed to have 'rush hour' and 'after hour' programmes.