Skip to content

6 Experiments

becauselol edited this page Dec 11, 2023 · 3 revisions

Experiment Settings

For each combination of idle floor configurations and group controller policies, we ran the simulation for a duration of 72000 units of time.

Using the data points from the simulations, we then calculated the expected average wait time per passenger as well as the percentage of idle time per elevator.

This data is then used to decide the best combination of idle floor combinations and group controller policy

System Configs

params = {
        "seed": 1,
        "num_floors": 6,
        "num_elevators": 3,
        "simulation_duration": 72000
        }
  • Seed: set to 1 at the start of all simulations
  • Number of Floors: 6 floors
  • Number of Elevators: 3
  • Simulation Duration: 72000 units of time

Controller Configs

For the other controllers, the policies is as described in [Section 4](4 - Input Variables.md) Only the zoning controller has configurations.

Zoning Controller

zones = {
        1: [1, 2],
        2: [3, 4],
        3: [5, 6]
    }

This means that:

  • Elevator 1 will only respond to calls from Floor 1 and 2
  • Elevator 2 will only respond to calls from Floor 3 and 4
  • Elevator 3 will only respond to calls from Floor 5 and 6

Arrival Pattern Configs

For the Arrival Patterns, the overall arrival rate of passengers into the system is set at 0.6 persons per unit of time.

The probabilities of each passenger going from floor i to floor j is as shown in the tables below for the different Arrival Patterns

Uniform Arrival Pattern

arrival_args = {
        "num_floors": params["num_floors"],
        "total_arrival_rate": 0.6
        }
1 2 3 4 5 6 Total
1 0 $\frac{1}{30}$ $\frac{1}{30}$ $\frac{1}{30}$ $\frac{1}{30}$ $\frac{1}{30}$ $\frac{1}{6}$
2 $\frac{1}{30}$ 0 $\frac{1}{30}$ $\frac{1}{30}$ $\frac{1}{30}$ $\frac{1}{30}$ $\frac{1}{6}$
3 $\frac{1}{30}$ $\frac{1}{30}$ 0 $\frac{1}{30}$ $\frac{1}{30}$ $\frac{1}{30}$ $\frac{1}{6}$
4 $\frac{1}{30}$ $\frac{1}{30}$ $\frac{1}{30}$ 0 $\frac{1}{30}$ $\frac{1}{30}$ $\frac{1}{6}$
5 $\frac{1}{30}$ $\frac{1}{30}$ $\frac{1}{30}$ $\frac{1}{30}$ 0 $\frac{1}{30}$ $\frac{1}{6}$
6 $\frac{1}{30}$ $\frac{1}{30}$ $\frac{1}{30}$ $\frac{1}{30}$ $\frac{1}{30}$ 0 $\frac{1}{6}$
Total $\frac{1}{6}$ $\frac{1}{6}$ $\frac{1}{6}$ $\frac{1}{6}$ $\frac{1}{6}$ $\frac{1}{6}$

Ground Floor Heavy Pattern

The fixed proportion of people arriving and leaving floor 1 is set to 0.35 of the total arrival rate.

arrival_args = {
        "num_floors": params["num_floors"],
        "total_arrival_rate": 0.6,
        "ground_percentage": 0.35
        }
1 2 3 4 5 6 Total
1 0 $0.07$ $0.07$ $0.07$ $0.07$ $0.07$ $0.35$
2 $0.07$ 0 $0.015$ $0.015$ $0.015$ $0.015$ $0.13$
3 $0.07$ $0.015$ 0 $0.015$ $0.015$ $0.015$ $0.13$
4 $0.07$ $0.015$ $0.015$ 0 $0.015$ $0.015$ $0.13$
5 $0.07$ $0.015$ $0.015$ $0.015$ 0 $0.015$ $0.13$
6 $0.07$ $0.015$ $0.015$ $0.015$ $0.015$ 0 $0.13$
Total $0.35$ $0.13$ $0.13$ $0.13$ $0.13$ $0.13$

Clone this wiki locally