Weekly Class Scheduler
Description
Weekly Class Scheduler is a Python-based program designed to automatically and efficiently generate weekly class schedules using a local search optimization approach. The system is built to assign each course to an appropriate time slot and classroom without causing scheduling conflicts or exceeding room capacities.
Each solution is represented as a mapping between course meetings, time slots, and classrooms. The scheduling process begins with an initial random schedule, which is then gradually refined to reach a more optimal configuration. Each modification is evaluated using an objective function that accounts for several key constraints:
- Conflicts between courses taken by the same student.
- Overlaps between courses using the same room and time slot.
- Mismatch between the number of enrolled students and room capacity.
- Conflicts between courses taught by the same lecturer.
The program implements several local search-based algorithms, including:
- Hill Climbing, with four variants: Steepest Ascent, Sideways Move, Stochastic, and Random Restart.
- Simulated Annealing, which utilizes a temperature-based mechanism to escape local optima.
- Genetic Algorithm, which employs evolutionary concepts such as selection, crossover, and mutation to iteratively improve solutions.
Each algorithm can be executed through a terminal-based interface, producing different scheduling outcomes depending on the chosen approach. In addition to displaying the final schedule in a table format within the terminal, the system can also generate PDF reports that include the weekly schedule for each classroom and detailed algorithm evaluation metrics, neatly formatted for easy interpretation.
Contributors
| NIM | Name | Contribution |
|---|---|---|
| 13523043 | Najwa Kahani Fatima | Implementasi Genetic Algorithm, Laporan |
| 13523079 | Nayla Zahira | Implementasi Hill Climbing (Steepest Ascent, Sideways Move, Random Restart, Stochastic), Laporan |
| 13523091 | Carlo Angkisan | Implementasi Simulated Annealing, program utama dan visualisasi hasil (pdf dan plot), Laporan |
