An efficient algorithm for solving the machine chaining problem in cellular manufacturing