Optimization of Elevator Dispatching by Using Genetic Algorithm in Python


Your author says programming language can reduce waiting and service times for passengers.

This article presents a developed simulation of elevator dispatching by the Python programing language. It models vertical transportation (VT), specifically elevators, in a building with respect to the number of floors, number of elevators and relevant elevator parameters. A control system algorithm is defined to select a specific elevator to service landing calls in a group system. The elevator dispatching system is optimized by means of the genetic algorithm (GA) method. The result offers a suitable condition for passengers with less waiting and     service times.


Reducing waiting time in high-rise and commercial buildings is one of the most important aspects in elevator operation. Elevator dispatching plays a critical role in satisfying VT demands. Optimized group control of elevators enhances the quality of vertical trips, as it not only minimizes waiting time, but also increases mental comfort of passengers. This means less waiting time, which leads to more satisfaction. So, developing elevator dispatching has always been considered an important area of research. In this research, a group of six elevators is studied with realistic parameters and constraints to optimize dispatching of the group aimed at obtaining minimum waiting time and power costs.

In this article, a VT simulation tool is developed in Python to evaluate conditions of access to any floor in high-rise buildings with a group of elevators. Realistic parameters are used to animate elevators’ motions as accurately as possible.[1 & 4] Then, by using GA in Python, an optimization is performed to make more convenient VT conditions.

Simulation Parameters

To increase the accuracy of the simulation, it is important to calculate and consider realistic parameters of elevators’ motions, such as the arrival model, nearest car calculation and elevator kinematics.[1 & 5] Furthermore, other important parameters of elevators, including speed, time and travel height, are discussed.[6]

Arrival Model

One of the most important parameters in elevator simulation is the arrival model. Both arrival models — individual and batch Poisson arrival — are discussed in this research.[7] As shown in Figure 1, up-peak traffic is considered in the morning and after lunchtime, when the tendency of passengers is going up. Distribution of the arrival follows a batch Poisson arrival, in which the passengers go for lunch in groups. Batch arrival rate

() is calculated by Eq. (1).[6]


where  is the collected arrival rate, and is the half-value of batch.

Nearest Car

The selection of which car should serve which landing call is another important controller task. In fact, traffic analysis is directly affected by this selection. The nearest car (NC) control system is one of the most common processes in the elevator industry, used by the controller to select the appropriate elevator to handle passengers in the waiting area.[5]

Figure 1
Figure 1: Arrival passenger group size[6]

The elevator position, passenger requested destination and recognition of elevator upward or downward travel are considerable parameters applied in this process. Figure of suitability (FS) is a function of these parameters, and the position of elevators in the group is quantified for the controller. Thus, the controller selects the elevator with a higher FS value to serve the landing call. To calculate the FS value, there are four rules[6].

  • When the car is going toward the waiting area with similar direction of passenger destination, FS = (N + 2) − d.
  • When the car is going toward the waiting area with opposite direction of passenger destination, FS = (N + 1) − d.
  • When the car is stopped (idle), FS = (N + 1) − d.
  1. When the car is going away from the waiting area, FS = 1. where d is number of floors between the waiting area and the current position of the car, and N is the building’s floors.[6]

Figure 2 illustrates the process of the elevator-selecting procedure with FS calculation in a seven-floor building and five operational elevators.

Figure 2: Method of FS calculation to find the nearest car[6]

For instance, a passenger on the fifth floor desires the traveling to the ground floor. The FS values in the fifth row of Figure 2 are calculated based on the descending landing call for each elevator. As mentioned before, in a group elevator control, the car with the maximum FS number is selected to handle the passenger in the waiting area. In this example, the first elevator will be selected for this landing call. So, the FS values of this example are:

  • Elevator 1: Rule 1 is used as the car goes downward (with similar direction) toward the waiting area:d = 1 floor, thus, FS = (6 + 2) − 1 = 7.
  • Elevator 2: Rule 4 is used as the car goes downward (with similar direction) away from the waiting area:Thus, FS=1.
  • Elevator 3: Rule 3 is used as the car stopped (idle):d = 5 floors, thus, FS = (6 + 1) − 5 = 2.
  • Elevator 4: Rule 2 is used as the car goes upward (with opposite direction) toward the waiting area:d = 1 floor, thus, FS = (6 + 1) − 1 = 6.
  • Elevator 5: Rule 2 is used as the car goes upward (with opposite direction) toward the waiting area:d = 4 floors, thus, FS = (6 + 1) − 4 = 3.

Hence, the first car has the maximum value of figure of suitability, FS = 7. In this regard, the controller selects the first car in the group of elevators to serve the passenger in the waiting area.

Elevator Kinematics

Kinematics data of elevators are used to simulate elevator movement between floors and optimize elevator dispatching. Table 1 presents the symbols used.[6]



Traveling distance (m)


Traveling distance at time t (m)


Maximum velocity (m/s)


Velocity at time t (m/s)


Maximum acceleration (m/s2)


Acceleration at time t (m/s2)


Maximum jerk (m/s3)


Jerk at time t (m/s3)


Table 1: Introduction of elevator kinematic symbols

The selection of the values of acceleration and jerk is a compromise between minimizing travel time and maximizing comfort. Commonly used values for human comfort in elevators is 1 for acceleration, as well as jerk. However, different values — lower (around 0.5 for acceleration) by Japanese manufacturers, higher (around 1.5 for acceleration) in North America and intermediate in Europe — are used.[8] In this research, three states reached by the car are considered for elevator movement simulation, as follows:

  • Highest speed and acceleration (a)
  • Highest acceleration but not the highest speed (b)
  • Neither highest speed, nor acceleration (c)

Based on these three states, distance (d) and trip time (t) are calculated as[8]:

Figure 3 depicts the three states for jerk, acceleration, velocity and distance.[6]

Figure 3
Figure 3: The three states mentioned in the text[8]


To compare the result of the present research with the literature,[6] the three aforementioned states of the car are investigated with the same methodology. Thus:

  • Moving: the car is in motion.
  • Stopping: the car stops to load/unload passengers in four possible steps of 1) door opens; 2) passengers get out; 3) passengers get in; and 4) door closes.
  • Idle: the car is neither in motion, nor has a landing call to serve.

Three states of elevators can be connected based on the passenger’s demand (Figure 4).[6]

Figure 4
Figure 4: Three main states of the car

The simulation runs with random passengers, random arrival time and random destination-floor conditions. When the arrival time of passengers is equal to the system time, FS calculation sends the elevator status to the controller. Then, the controller decides whether to assign an elevator to serve the passenger’s request. Afterward, the car FS is changed based on the current position of the car, and the controller selects the next car to handle passengers at the waiting area.[6]

Result and Discussion

Table 2 presents the value of simulation parameters: the elevator group control system is simulated for a commercial building with 20 floors and six elevators. Individual Poisson distributed as upward traffic and simulated elevator dispatching for 1 h are investigated. Elevators’ animated movement is shown in Figure 5, depicting a similar operation in which cars take the passengers from the ground floor upward in accordance with their destination floors. In this image, the green box indicates upward cars; the red box, downward cars; the yellow box, stop position of cars; and the gray box, idle state of cars.



Number of floors


Number of elevators


Floor distance (m)


Maximum velocity (m/s)


Maximum acceleration (m/s2)


Maximum jerk (m/s3)


Capacity (person/elevator)


Door time (s)


Passenger time (s)


Table 2: Parameter values of simulated elevators

Waiting time, service time and total time (waiting time + service time) are investigated by simulating the elevator group control system.

Figure 5
Figure 5: The elevators’ movement animation

Figure 6 shows that waiting time and service time have direct connection with arrival rate. However, the service time stabilizes after a specific range of arrival rates. An average waiting time of less than 25 s leads to suitable elevator service.[9] So, the appropriate arrival rate is 0.2 passengers/s (720 passengers/hour).[6] The total time with an arrival rate of 0.2 passengers/s is around 70 s.

Figure 6
Figure 6: Passenger travel times in the elevator dispatching process

Optimization By Using the GA Method in Python

To obtain better service from group elevators and reduce the total time (waiting time plus service time), an optimization method is developed by using a GA in Python. A control process is defined and then FS is calculated based on the four rules to determine which elevator should be selected in a group control to serve passengers in the waiting area. To optimize FS values, unknown coefficients are allocated through the four rules, as seen in Eq. (3):

  • Rule 1: FS = a1 N + c1 − b1 d.
  • Rule 2: FS = a2 N + c2 − b2 d.                               (3)
  • Rule 3: FS = a3 N + c3 − b3 d.
  • Rule 4: FS = a4 N + c4 − b4 d.

Then, by the tournament selection method in GA, the optimized coefficients are identified as:

So, by using the identified coefficients, FS values are optimized to select a better option for serving the landing calls by elevator group control systems. This optimization method results in a significant reduction in the elevator’s trip total time (Figure 7). This is an important principle in the elevator industry.

Figure 7
Figure 7: Passenger travel times after using optimized FS gained by GA

In Figure 8, the calculated total time from the Python simulation by increasing the arrival rate using conventional FS and optimized FS is depicted. So, for comparison in the 0.5 passengers/s arrival rate, the total time related to conventional FS and optimized FS are around 114.69 and 52.38 s, respectively. As shown, this result is a considerable reduction in total time.

Figure 8
Figure 8: Comparison of total time of conventional and optimized FS


The development of an optimization method by using GA in Python for group elevator dispatching is investigated in this article. A control system of an elevator group in a high-rise building is simulated with realistic parameters of elevators, including arrival rate, selection of the nearest car and elevator kinematics to obtain accurate results. Moreover, elevator dispatching is animated to provide better visual investigation.

The results show that applying the optimized coefficients in FS calculation leads to considerable reduction in the total time, which is a combination of waiting time and service time. Thus, arriving passengers experience more convenient vertical trips.


Your author is grateful to ASCEND Co. and Iceland University for sharing required technical data for this research project and thanks the information technology experts who offered guidance for re-coding the simulation in Python.


[1] J.R. Fernandez and P. Cortes. “A Survey of Elevator Group Control Systems for Vertical Transportation, IEEE Control Systems, Vol. 35, No. 4, p. 38-55, 2015.

[2] V.C. Galpin and S.T. Rock. “A Lift Simulation Prototype,” Wiley Online Library, 1995.

[3] R. Braun. “Need a Lift? An Elevator Queuing Problem,” United Technologies Research Center, August 14, 2003, p. 1-28.

[4] N. Pariyatdulapak. “Development of a Simulation for Vertical Transport Systems, Senior Project Report,” Chulalongkorn University, 2016.

[5] G.C. Barney. Elevator Traffic Handbook: Theory and Practice, Taylor Francis, 2003.

[6] N. Chaosangket, P. Sasithong, S. Wijayasekara, W. Asdornwised, L. Wuttisittikulkij, P. Vanichchanunt, M. Saadi. “A Simulation Tool for Vertical Transportation Systems using Python,” 5th International Conference on Business and Industrial Research, Bangkok, Thailand 2018.

[7] J. Dallas. “A Systematic Methodology for the Generation of Lift Passengers under a Poisson Batch Arrival Process” (peters-research.com), 2017.

[8] R. Peters. “Ideal Lift Kinematics” (peters-research.com/index.php/support/articles-and-papers/53-ideal-lift-kinematics), 1995.

[9] Adsimulo.com. “Lift Performance Criteria” (adsimulo.com/support/adsimulo-university/lift-performance-criteria).

Related Tags


Mohammadreza Eskafi is deputy chairman of the board and technical director of Third Millennium Elevator Co. (ASCEND), an official member of the Elevator and Escalator Industries Syndicate of Iran. He holds a Bachelor of Mechanical Engineering from Kashan University, a Master of Mechanical Engineering from Tehran University of Research Sciences and is a member and license holder at the Engineering System Organization of Tehran Province. He is a lecturer at Doros University, specializing in the elevator industry, and collaborates on writing books on the elevator industry and related safety. He has more than nine years in the elevator industry, and has supervised high-speed elevators, such as at Milad Tower, conference centers and multistory car parking facilities.

Elevator World | March 2021 Cover