An Overview and Categorization of Approaches for Train Timetable Generation