A Genetic Algorithm for Job Shop Scheduling Problems: A state-of-the-art and perspective