Lift Controller

Project Proposal by Martin Stacey


Lift Controller

Software

Serious OO language such as Java or C++ or Smalltalk, or functional language such as LISP, or maybe Prolog

Covers

Algorithm design, simulation building, artificial intelligence

Skills Required

Programming, some interest in artificial intelligence

Challenge

Conceptual ??? Technical ?? Programming ????

Brief Description

If you have a building with one lift and low levels of demand for it, then the lift can simply go where it's called. But in larger buildings the situation can be more complicated - there can be several lifts; they may not all stop at every floor; they may be in use nearly all the time in peak periods; and sending an empty lift to the next job may not be the most efficient thing to do. So how can you control a set of lifts so that they speed all their passengers to their destinations as quickly as possible? Lift installations for big buildings are controlled by very complicated algorithms - these used to be implemented in big banks of relays.

Your goal in this project is to develop an intelligent controller for a set of lifts in a large building, that applies AI techniques to deciding which lifts should stop where.

In addition to the lift controller itself, you need to build a testbed for it, that provides the inputs to the lift system, runs simulations of the performance of the lift system in which passenger journeys and calls are randomly generated according to parameter values supplied by the user, and logs information about how long the passengers took to get to their destinations. You will need the simulator to see if your controller does what you think it should, see what the consequences of changes really are, and demonstrate your results.

Extensions

The lift controller would be more powerful and impressive if it were designed to handle a wide range of different building and demand parameters, and then be customised to cope with particular situations.

A system that can learn situation-specific rules and/or parameter values, to control lifts efficiently in particular configurations with particular load profiles.

You might like to think about how to display the behaviour of lift simulations, or illustrate the performance of your lift controller.


Back to