An Intelligent Search Technique for Solving Train Scheduling Problems: Simulated Annealing and Constraint Satisfaction