Optimal and heuristic solution methods for a multiprocessor machine scheduling problem