Bilevel genetic algorithm for the flexible job-shop scheduling problem