We have a single elevator servicing an 8 level residential building. What might be the optimal elevator positioning algorithm to optimize user experience (primarily, wait time)?
I was thinking along these lines:
Most calls are likely to come from the Ground Level. So after servicing every call elevator heads back to ground level.
Option #1 might impose excessively high penalties on people summoning from, say, 7th level. So might returning to wait on, say, the 4th level minimising average response times?
Just wait wherever it last went to! (This is the current default)
Wondering what people think? (I've seen elevator scheduling articles but most tackle the multiple elevators servicing a commercial building test case)
Of course, in a more complex situation it is also likely that usage on some floors might be higher than the rest. An algorithm that "learns" this might be even smarter, but I've no clue how it might exploit this.
PS. A single elevator servicing a 8 level building is odd. Would probably be a code violation now. But has been grandfathered in as this is an older building.
PPS. If optimizing energy usage was a criterion would Algorithm #3 be the natural best? Or could one do better?
Answer
Any problem like this involves a matrix of priorities that you need to decide on before you can have a solution. For example, do you care more about people waiting on the ground floor than any of the other floors? Do you care about energy consumption? Is there a particular floor that is more important than others?
Once you've decided on these, you can build a simple discrete model (in something like Arena) and test your various algorithms.
I had a problem very much like this one at university to model and solve, where we allocated equal value to people waiting regardless of what floor it was on; assumed the same distribution of use on each floor (other than the first floor, with first being what americans would call second floor); and we included the energy consumption and wear and tear costs on the elevator as factors.
Then you need to remember that an elevator has more than one stationary state: Doors open waiting, and doors closed waiting. If an elevator is waiting with it's doors closed, it can respond much faster than if it has to first close its doors.
Our end result was that if the elevator stopped on any floor less than half way between the top and the ground floor, it was best for it to wait there (with doors closed) until the next call. If it stopped at anywhere in the top half of the floors, it should move down to the middle floor and wait there with doors closed.
As it turns out, this is also the algorithm used by a building that I lived in which had 9 floors.
No comments:
Post a Comment