Elevator Pitch For Buttonless Elevators
For the last few weeks, I’ve been on vacation. My husband and I are spending some time in the lovely city of San Francisco and getting some much-needed sun. I’ll admit I haven't been coding much and being a developer is not the priority this month. However, I’m here. Writing this blog. Because I simply can't escape it and my curiosity got the better of me.
This time, it was elevators. I went to visit a friend and she lives in a tall building near downtown San Francisco. I walked up to the elevators and had a rather confusing experience. I followed someone into an open elevator and realized there were no buttons to select the floor! I left the elevator and then noticed a keypad where I could press the floor. It then sent an elevator that was only going to that specific floor and once inside I had no option to change the floor.
This was my first experience with what are called destination elevators. I was intrigued immediately. It's probably the civil engineer in me but anything about smart buildings and urban technology will pique my interest. But the software engineer in me started thinking about elevator algorithms. What makes this style of elevators more efficient? At first, I was frustrated. Why can’t I just pick my own floor? What if I want to change my mind? I was feeling a lack of control. So it was time to do some research.
Uses Grouping- Eliminates Bunching
Turns out this technology isn't that new and has been around since the early 90s and there is more than one elevator company that has this technology (Schindler and Thyssenkrump for example).
The companies claim they are faster and can reduce wait times (in tall buildings). This can result in significant energy savings as well. Schindler claims it can improve elevator traffic management in buildings by up to 50%. They do this by utilizing a computer with an advanced algorithm to determine the most efficient trip for the elevator and optimize the flow of traffic.
Destination dispatch technology distributes people more evenly and eliminates bunching. Since you have to input the floor you want to go to beforehand, and so does everyone else, the computer can group passengers with similar destinations together. This grouping then limits the number of stops or floors each elevator has to go to.
We’ve all been there. It's rush hour and the elevators are packed. You try to squeeze into the first one you can and then see that the elevator has most of the floor buttons lit up and you are in for a loooong ride. Especially if you are going to the top floor. But now, the elevator can do some math for you beforehand and group you into an elevator. For example, instead of all three elevators having to make a stop on the 15th floor, one elevator can put everyone going to the 15th floor in it.
Standard Elevator Algorithm
Let's get into the algorithms a little more. Firstly, let's look at how a traditional elevator determines how the elevators move. When you ask for an elevator (by pressing the up or down button) the computer will determine the closest one to you, based on direction and speed, and sends it to you. Then the elevator goes to the floors you select. The elevator will otherwise the elevator will continue in its current direction until there is demand in the opposite direction. It then stops and waits for the next person to call the elevator.
At the time of sending you the elevator, the computer has no idea where you want to go or whether you are with your friend who will go to a completely different floor. The algorithm is optimized for the ETA (Estimated Time of Arrival) or to simply send you an elevator as quickly as possible.
Getting an elevator as quickly as possible is great. It reduces wait times. We like that. But let's be real. Getting the elevator quickly is not your priority. After all, you are using the elevator to get somewhere… You actually want to optimize the time taken to get to your floor. And that's how destination-based algorithms work!
Destination-based algorithms optimize not the ETA but the ETD (Estimated Time to Destination). This means the total time, waiting for the elevator, and the journey time. This requires taking account of the passengers’ origin and destination floors as well as the time it will take for the elevator to reach the floor. It also has to take into account this journey will have on the other passengers waiting for an elevator as well. Sometimes, this means longer wait times, since you don't get into the first elevator that shows us, but rather the one that will travel to your floor with the fewest stops.
By shifting the focus from fast arrival to fast destinations, we create a more efficient system.
For more details on the algorithm: ETD Algorithm with Destination Dispatch and Booster Options
More Info -> Better Solution
Researching the algorithm on how destination elevators are more efficient really seems to come down to one thing for me. The more information you can have right away the better your solution. By having more details on where people are headed, the computer algorithms can send the right elevator to the right floor. Waiting for the elevator to arrive before knowing the floor it's going to, removed the opportunity for this kind of optimization.
And this can be expanded even further, the more information the better! Some smart elevators can gain more information on the riders, for example, if they have a wheelchair, fewer people could be assigned to their elevators to ensure space. Smart elevators can also calculate the weight of the passengers to overloading.
I now understand these new elevators do create a more efficient system. However, it will take me a bit of time to get used to it. That's how tech improvements happen though, it changes and it takes time to adjust. I'm sure people had complained about the elevator attendants going away as well.
- Buttonless elevators have their ups and downs
- Smart elevators make up and down buttons obsolete
- Construction Explained — Elevator Destination Dispatch
- ETD Algorithm with Destination Dispatch and Booster Options — Peters Research
- The smart elevator scheduling algorithm: An illustration of computational intelligence