Clique-based crossover for solving the timetabling problem with GAs