Algorithms and computation (Berlin Springer-Verlag, 2006)