Department of Computing, Department of Electrical and Electronic Engineering, Imperial College of Science Technology and Medicine, 180 Queen's Gate, London SW7 2BZ, UK