I always wonder if these sort of
problems are best solved via
genetic algorithms.
Take for example m_turner's excellent description of a possible algorithm above. It seems efficient in it's simplicity, which is easy for us humans to follow, but it is probably missing a lot of potential for improvment. It doesn't adapt to discover which parts of the disk are accessed most often, what is the fastest way to get to points A, B, C, and D (sort of a radial travelling salesman problem), and where errors are likely to occur least/most often, probability guesstimates for the next access. A genetic algorithm would eventually find all of these (and other things you probably would never think of) if it were run long enough on the model.
Elevators themselves also present some interesting problems. An efficient elevator system is actually very complicated, and was the basis of the game
Sim Tower by
Maxis (the
manual mentions some of this). There are special considerations with elevator systems that go beyond the simple
elevator algorithm, such as the arrangment of express elevators, number of elevators present, peak usage and
off-peak usage patterns, etc.