One Cool Day Job: Building Algorithms For Elevators
McGruber writes "The Wall Street Journal has an article about Theresa Christy, a mathematician who develops algorithms for Otis Elevator Company, the world's largest manufacturer and maintainer of people-moving products including elevators, escalators and moving walkways. As an Otis research fellow, Ms. Christy writes strings of code that allow elevators to do essentially the greatest good for the most people — including the building's owner, who has to allocate considerable space for the concrete shafts that house the cars. Her work often involves watching computer simulation programs that replay elevator decision-making. 'I feel like I get paid to play videogames. I watch the simulation, and I see what happens, and I try to improve the score I am getting,' she says."
News flash: State machines don't crash.
She probably just writes the logic part not the code that realizes that logic. The actual code will be a finite state machine with certified logic blocks. Those dont crash.
Each elevator has its own controller, which is relatively simple. When there's more than one elevator, there's also a group controller, which makes the decisions about which elevator responds to which call. All the smarts are in the group controller.
Many elevators have a key switch for "independent service", which disconnects them from the group controller. Then they only respond to the buttons in the car. The group controller isn't necessary to basic elevator operation.
I designed the hardware and wrote the code for a much smaller elevator company for 25 years... All written in assembly language running on an 8085 CPU with 256 bytes (Yes, bytes) if RAM and 8K bytes of EPROM. It doesn't take much to handle the basics when you're using assembly language. I've done up to 26 stops in a multi-car group with that setup. Each elevator is independent and can run on its own, but they communicate with each other to handle dispatching so multiple cars coordinate their activity.
Optimizing is worthwhile, but adds a lot of complexity. You have to take into account for car locations, direction, speed, where car and hall calls are locatedand have to figure in such things as door times to calculate which car can service a hall call soonest.
As the author says, it's a set of interesting problems and I've had fun with it. Yes, the equipment I designed and wrote the software for is obsolete now, but there's a lot of it out there so I'm anticipating writing updates for a while longer as I head toward eventual retirement.
"Do the Right Thing. It will gratify some people and astound the rest." - Mark Twain
I sure wish cities would hire guys like you to work on their traffic lights.
I highly question whether or not anyone pays any attention at all to the timings of these things; It seems that they would have more luck getting anyone who has ever milked a cow to design one, as they would have some inner sense as to how timing results in smooth flow. Improperly time your efforts and you get no milk and infuriate the cow.
( You can tell where I was raised here ).
"Prove all things; hold fast that which is good." [KJV: I Thessalonians 5:21]
I'm not sure about that, but the original Sim City *was* based on Will Wight's previous project, Raid on Bungeling Bay. Or rather, how his Bungeling Bay map editor was as much fun as the end game.