Solving employee timetabling problems by generalized local search