datatracker
datatracker copied to clipboard
automatic schedule generator won't even try if there are more sessions than timeslots
ietf/manage.py generate_schedule -m 115 -b base -n auto_gen_one
Running automatic schedule layout for meeting IETF 115 Applying schedule [email protected]/base as base schedule
CommandError: More sessions (120) than timeslots (116)
It should be modified to try, recognizing that unscheduled sessions will have a lot of badness.
It would also be useful to add flags to have the tool consider only sessions and timeslots of a particular purpose.
Or it should learn that shrinking sessions is possible but bad.
That wouldn't help? It doesn't do combined sessions, and it doesn't modify the timeslots...
Starting to look at what's involved here. My initial musing is that it might be most straightforward to create some phony non-persisted TimeSlot
instances with a flag to indicate that they're unscheduled. The cost computations can then be updated to penalize assignments to these. This may let the scheduling algorithm operate without having to be taught what to do with sessions not assigned to a timeslot.
I'm a little worried with how these will interact with other constraints, though. Not having enough slots is a fixed cost - there's always going to be the same number of unscheduled sessions. Without some way to distinguish the badness of not scheduling different sessions, I suspect the algorithm will just not schedule sessions with lots of constraints. (When unscheduled, they'll cost only the badness of not being scheduled. When scheduled, they'll contribute their constraint violation badness plus you'll get the unscheduled badness from whatever session got displaced.)
Splitting the request in https://github.com/ietf-tools/datatracker/issues/4533#issuecomment-1263906274 to its own ticket (#4921)