The scenario
Timetabler encodes a timetable as a chromosome and evolves it: hard constraints (no clashes, room capacity) and soft ones (no back-to-back labs, teacher preferences) become a fitness score. A small web UI lets you edit constraints and export the result.
System architecture
01 Inputs Courses, rooms, teachers
02 Population Random timetables
03 Evolve Select · cross · mutate
04 Best timetable Export
High-level flow of Timetabler, from input to output.
What you will learn
- Genetic algorithms from scratch
- Encoding constraints as fitness
- Performance tuning in Python
What you will build
- GA engine
- Constraint editor
- Export to PDF/Excel
Build plan
- Data model
- Fitness function
- GA loop
- UI
- Export