Why didn't the scheduler generate a candidate that matches the schedule I made by hand?
If you've already made this school year's schedule by hand, and you're comparing it to what the scheduling engine created for you, you might be curious why the scheduling engine didn't generate a schedule that matched the one you made by hand.
There's always a chance that you made a mistake with your by-hand schedule, or forgot to accommodate a student's special here or there. However, for the purposes of this question, let's assume that you did everything right. Why didn't the scheduling engine duplicate your by-hand schedule?
For most caseloads and constraints, there are trillions upon trillions of potential schedules. The only way for the scheduler to find THE #1 ideal schedule for any given caseload is to try ALL of them. That's computationally infeasible, even with the world's biggest supercomputers. (For more info, see Why does it take so long to generate a schedule?.)
Of those trillions upon trillions, only a very small percentage of them (let's say, thousands) ever match your constraints. The job of the scheduling engine is to find 5 among the best optimized schedules available, scored according to your chosen set of preferences. These aren't guaranteed to be the 5 top highest scores, but 5 among those with the highest scores.
The trick is that the algorithm used by the engine is probabilistic, which means that you'll most likely get different results even if you run it twice in a row on the same exact caseload. (This is intentional, to give you multiple options every time you run it.)
For these reasons, it's statistically unlikely that any generated schedule would ever match one you created by hand.
Note: The numbers used above are (obviously) vague, since everyone's schedule is different. Different SLPs have different numbers of students in their caseload, as well as different constraints. This means that there are different numbers of possible schedules for every caseload, but the numbers are always astronomical. :)
Customer support service by UserEcho