Automated Timetable Generation Using Optimization Algorithms