Genetic algorithm
Genetic algorithms are good at solving problems that include timetabling and scheduling. They have also been applied to engineering. They are often used to solve global optimization problems.