In a building with many floors, the computer has to have some sort of strategy to keep the cars running as efficiently as possible. In older systems, the strategy is to avoid reversing the elevator's direction. That is, an elevator car will keep moving up as long as there are people on the floors above that want to go up. The car will only answer "down calls" after it has taken care of all the "up calls." But once it starts down, it won't pick up anybody who wants to go up until there are no more down calls on lower floors. This program does a pretty good job of getting everybody to their floor as fast as possible, but it is highly inflexible.
More advanced programs take passenger traffic patterns into account. They know which floors have the highest demand, at what time of day, and direct the elevator cars accordingly. In a multiple car system, the elevator will direct individual cars based on the location of other cars.
In one cutting-edge system, the elevator lobby works like a train station. Instead of simply pressing up or down, people waiting for an elevator can enter a request for a specific floor. Based on the location and course of all the cars, the computer tells the passengers which car will get them to their destinations the fastest.
Most systems also have a load sensor in the car floor. The load sensor tells the computer how full the car is. If the car is near capacity, the computer won't make any more pick-up stops until some people have gotten off. Load sensors are also a good safety feature. If the car is overloaded, the computer will not close the doors until some of the weight is removed.