Applying Topological Constraint Optimization Techniques to Periodic Train Scheduling