This includes a number of interrelated improvements to the schedule generator:
Improved room assignment to account for the fact that sessions created later receive fewer votes. (In the past, popular sessions created at the last minute got assigned to rooms that were too small.)
Improved schedule scoring to better account for the preferences of people who expressed interest in a large number of sessions.
Refactored scheduler code to improve readability. Parts of it even verge on being comprehensible now.
Improved interpretation of the app:generate_schedule task’s quality setting.
Switched to annealer gem (which was originally pulled out of this code, but has been improved since).
I'd like to include these improvements when generating this year’s schedule, especially the first. This is a big PR; however, almost all of the changes are isolated to the scheduler task (which we run manually), so I believe it’s reasonably safe.
Coverage decreased (-1.1%) to 91.33% when pulling 3b7306226dd05e586ba3a9af047be928e4a5b529 on annealer-update into 8eb3bbb6c28b9edb78c00cb3be555feaedd29b98 on master.
This includes a number of interrelated improvements to the schedule generator:
app:generate_schedule
task’squality
setting.I'd like to include these improvements when generating this year’s schedule, especially the first. This is a big PR; however, almost all of the changes are isolated to the scheduler task (which we run manually), so I believe it’s reasonably safe.
Resolves issue #38