Design an algorithm for an elevator during COVID-19.
- Hannah Borges
- CLARIFY:
- Is there a specific type of elevator you want me to focus on (ex. passenger, food, service, etc.)? Focus on elevator carrying people but otherwise your choice.
- Is there a specific type of environment I need to design for (office, apartment, etc.)? Your choice.
- Are there limitations, like budget? No.
- USERS OF PASSENGER ELEVATORS: I’d like to focus on elevators in an apartment building setting. There are two main types of elevators: front elevators and back / service elevators with the user groups below. I’d like to focus on the front elevators mainly used by everyday passengers because extra consideration must be considered for COVID given the question. Front elevators will receive more traffic / have a higher likelihood of seeing groups of people.
- Everyday Passengers: People living in apartments or visitors (family, friends, etc.). Will generally only use the front elevator.
- Servicemen: Delivery, construction, housekeeping, etc. Will only use the back / service elvator.
- Doorman: Consistently at the building. Will generally use the back / service elevator but may also use the front one.
- USER JOURNEY:
- User pushes button on floor to go up or down.
- Elevator arrives.
- User checks if elevator is at capacity / if there is enough space to socially distance. (New part of the journey due to COVID.)
- User enters elevator assuming there is enough space.
- User pushes destination floor button.
- Elevator goes to floor.
- User gets off.
- PAINPOINTS: Because of the COVID aspect of the question, I’d like to focus on #3: the elevator has too many people / user cannot socially distance.
- Long waiting time for the elevator to arrive.
- Elevator is full / at capacity due to space constraints (non-COVID related).
- Elevator isn’t full but there are too many people in it (due to COVID / social distancing reasons).
- Elevator gets stuck.
- Elevator is slow / makes too many stops.
- SOLUTIONS: Below are high level solutions to solve the capacity problem. I’d like to design an algorith with an elevator that enforces social distancing automatically. A combination of these solutions will be used in the algorithm.
- HEAT SENSOR: Elevator scans individuals and checks to see if the elevator is at capacity (set # of people in cart). Dogs don’t trigger the sensor because the heat sensor doesn’t count beings with 4 legs. (Note, special parameters could be added for dogs with 3 legs or dogs with 2 legs / wheelchairs, but these cases are rare.) Babies don’t trigger the sensor because of size capacities (ex. living creatures under 2 ft).
- SKIP FLOOR: Elevator skips newly requested floor (i.e. if the floor was requested by someone outside of the elevator) if it is at capacity.
- WON’T MOVE: Elevator won’t move if it is too full.
- ELEVATOR ANNOUNCEMENTS: Elevator tells people to get out of the elevator at a floor if it is too full.
- DETAILED SOLUTION / ALGORITHM: I am using outside floor request to mean a request to arrive from a user outside the elevator and inside floor request to mean a request to go to a certain floor from inside the elevator.
- Elevator receives outside floor request and logs it it in its queue.
- Elevator checks if the outside floor request is up or down – i.e. the direction it is currently moving in.
- If the outside floor request is in the direction the elevator is moving in, the elevator checks whether the outside floor request floor is on its way to the next floor in the queue or if it is past the next floor in the queue. (Ex. elevator is going to floor 10 and the outside floor request is floor 8 or floor 11).
- If the outside floor request is past the next floor request, the elevator logs it behind the next floor it is going to.
- If the outside floor request is before the next floor it is going to, the elevator moves that request in front of the next floor it had originally planned on going to. (Ex. instead of going to floor 10, it goes to floor 8 first if moving up.)
- If the outside floor request is in the opposite direction the elevator is moving in, the elevator logs it behind all the floor requests in its current direction (i.e. the elevator will go to the floor when it turns around).
- If the outside floor request is in the direction the elevator is moving in, the elevator checks whether the outside floor request floor is on its way to the next floor in the queue or if it is past the next floor in the queue. (Ex. elevator is going to floor 10 and the outside floor request is floor 8 or floor 11).
- Elevator scans capacity with heat sensor to check if elevator is at capacity.
- If the elevator is at capacity, the elevator goes to the next inside floor request to allow people to exit the elevator.
- If the elevator is not at capacity and the outside floor request is on the way to the inside floor request (ex. elevator is going to floor 10 and the outside floor request is floor 8), elevator arrives at that floor.
- Each time someone enters the elevator, the elevator scans the elevator to see if it is at capacity.
- If the elevator is on a floor and too many people try to enter the elevator, it announces that the elevator is full / wait for the next elevator.
- If people ignore the elevator request and cram into the elevator, the elevator makes the announcement again and tells the users it won’t move until the elevator capacity is reduced.
- Elevator won’t move until the capacity is reduced.
- Once people exit the elevator / capacity is OK for a social distancing requirement, elevator reminds people to maintain distance (ex. 6 feet – assuming that works with the preset capacity constraints) and begins to move and follows the steps.

Google