Programme data
Faculty
Availability rules come from the scheduling note; caps are limits the solver must respect.
Rooms
From the room-allocation sheet. Capacity is not stated in the source files.
Cohorts
Sections are combined differently for different subjects, so a cohort is the set of students who actually sit together. Overlapping cohorts may not be scheduled at the same time.
Subjects
Each subject carries the day, period, half-day and room rules taken from the notes.
The teaching week
Hard constraints
Never violated. After every run the timetable is re-checked against all of these independently of the search.
Soft constraints
Traded off against each other. The faculty patterns the note asks for — one full free day, two mornings and two afternoons — sit here: as hard rules they would make most real instances unsolvable.
Generate the timetable
Backtracking search with most-constrained-session-first ordering and randomised restarts, then local search on the soft score.
SEARCH LOG
WHAT BLOCKED PLACEMENTS
SOFT SCORE BREAKDOWN
Generate a timetable first.
Faculty workload
Weekly periods against each cap, free days, and the morning/afternoon split the note asks to balance.
Generate a timetable first.
Room utilisation
Generate a timetable first.
Where these rules come from
Every constraint in this app is transcribed from the two scheduling notes and the room-allocation sheet. Nothing below was invented.
Conflicts in the source files
The room-allocation sheet and the schedule grid disagree about who owns these rooms. The allocation sheet is treated as authoritative.
Still needed before this can produce a real timetable
These are gaps in the source files, not in the software. Anything marked assumed in the data is a placeholder.