Going Up?

Nadav Aharony & Peter McMahan

Introduction

In deciding how to model elevator behavior, we chose to concentrate on the question of queue formation in a generic centralized transport system. Rather than tracking individuals throughout their stay in the building, we chose to focus on the central issues of demand (arrival of passengers) and supply (elevator speed, location, and capacity) in the system. For this reason, we believe our model is easily extensible not only to other centralized transport systems like trains and busses, but also to systems as diverse as fashion and politics.

Additionally, we used this question as an opportunity to experiment with collaborating using different programming languages. The underlying logic of the model is written in python, while the stochastic, graphical and statistical elements are written in R, in an attempt to utilize the strong features each platform offers.

 

Assumptions

Following are assumptions related to the current version of the model:

   There is no fee to use the elevator

   Floors are  arranged in linear array (although they can go below ground)

   People press elevator call button as soon as they arrive on a floor

   Each floor has up/down buttons that signal the desired direction.

   All floors but a single ‘lobby’ are homogenous

   There is only one elevator (or multiple non-communicating elevators)

   Elevators go to all floors

   Elevators do not fail

   People are points — capacity limits are enforced by count only

   People board/exit in an orderly manner (FIFO)  In addition, people on the elevator get a chance to exit first, before newcomers enter.
(Note: this assumption would not hold in New York city)

   Entering/exiting the elevator takes time (1 tick)

   Elevator has speed (currently 1 tick/floor)

   Passengers can arrive as parties of size greater than one, all travelling to the same floor.

 

Model

Our program is completely object-oriented, with elevator requests (passengers), the elevator, the floors and the building itself each implemented as an independent model agent. We treat the number of arriving passengers as a floor-by-floor random draw from a Poisson distribution, and choose destination floors by weighted sampling using floor-specific probabilities. This implementation allows us to dynamically model different traffic patterns (morning rush, quiet period, evacuation etc) without needing to keep track of individual passengers as they spend time in the building. In most of our simulations so far we model the lobby floor with significantly higher probability to generate new passengers as well as to be the destination of passengers from the other floors. The elevator agent is built in a way that allows different types of behavior to be implemented and tested. Each behavior algorithm could be exposed to different parameters from the system’s state.

The following illustration depicts the parts of our model:

                   

 

 The initial algorithm is quite simple, mimicking the behavior of a typical elevator. The state of the elevator is described by:

   Trajectory (up/down/idle)

   People inside (reqs)

   Floor calls (up/down), boolean

   Door open/closed

   In transition? , boolean

If the elevator is idle, a trajectory is picked in the direction of the majority of calls. If the elevator has a trajectory (not idle), then it will stop to drop off passengers or to pick up passengers that match the current trajectory. If there are no requests, it will enter an idle state and remain at the floor on which it dropped off its last passenger. In this model, the elevator is aware of button presses on each floor and the button directions (up/down). For passengers that boarded, it knows their destination floor.

The following animation shows an example of the simulation in progress:

                    

 

Future Extensions

There are a number of interesting extensions to this model that could be implemented in the future. Most of these enhancements should be relatively easy to realize in our object-oriented architecture. First, the elevator algorithm described above could be modified or replaced. Elevators that skip floors when crowded, prioritize certain passengers, or even learn and anticipate agent behavior could be added. Similarly, the passengers could be given some adaptability through the addition of a ‘take the stairs’ option with dynamic moods and strategies based on current queue. More involved extensions could be undertaken as well, including multiple lobbies (simulating other floors that have high passenger traffic), multiple coordinated elevators, or even moving the elevator itself off of it's linear track and onto a grid or network: Since each floor is an independent object, we could modify the linear linkage of the floors to a more elaborate network, allowing testing new and interesting transportation scenarios.

 

Discussion

Overall, we found that the elevator metaphor contains some interesting features that make it potentially more broadly applicable. In particular, partially revealed information plays a key role — passengers communicate only part of their request (direction) to the elevator while waiting in the queue. An elevator with access to additional information, such as sensors that count the number of waiting passengers on each floor, could cause  a much different behavior to emerge. Furthermore, the initial state and full information of those passengers is very easily extensible to more complex and dynamic scenarios. These features, combined with the customizable algorithm of the elevator itself, lend themselves to some intriguing applications.

The natural extension is to more elaborate simulations of transportation scenarios, from regular busses and trains to new types of public transportation like on-demand busses and distributedly managed, agent-based traffic systems.

However there are much more interesting social scenarios that could be cast upon this model.For instance, recasting the elevator as a political office and passengers as candidates could utilize the metaphors of location and partially-revealed request in an electoral setting.  Participants  or candidates who are outside of the political system have a limited effect, as well as expose limited information about themselves. Once entering office, they gain abilities to control the trajectory of the system, but their opinions and actions are much more exposed to the public. In the political world, the elevator and its trajectory could be used to model the shift between the left and the right wing, and we could model the effect of newcomers and their placement on the political scale in comparison to the current trajectory of the system.

Another example might be modeling of directors in corporate firms, who are in a similar position. Passengers on board the elevator also have the power to decide whether to exit it or stay inside, thus preventing newcomers to enter.

Alternately, fashion and trends could be approached thought the trajectory attribute of the elevator, with individuals acting differently if they are ‘riding’ the trend or not. This sort of scenario could be used to model products and business trajectories.

As can be seen, the elevator model, despite its seeming simplicity and mundaneness, may be well suited to capture novel aspects of various social and political dynamics.