Learning heuristics for repetitive combinatorial optimization problems: With an application in train scheduling