Optimization approaches for solving production scheduling problem: a brief overview and a case study for hybrid flow shop using genetic algorithms