Solving a multi-objective job shop scheduling problem using a hybrid genetic algorithm