Skip to content

rosshamish/scheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 

Repository files navigation

scheduler

Quicker schedule generation for classtime.

Feature roadmap:

  • represent Section as a concrete type (see rosshamish/classtime#103)
  • represent Schedule as a concrete type
  • score schedules
    • with len(Sections)
    • with rough ports of the Python scoring functions
    • with scoring functions whose scores are bell-curved (ish)
  • get section data from course ids
    • directly from psql
    • from temporary classtime api endpoint, /api/vx/sections
    • ?
  • conflict detection
    • same course, same component
    • same time
    • course dependency not satisfied (ie LECA1->LABA2,3,4)
      • this is half-implemented, need to check the AutoEnroll component type, see the Python impl
  • gen with constraint solver (SAT solver)
  • busy-times
  • more progressive conflict detection (see rosshamish/classtime#109) SAT solver makes these unnecessary
    • is this pair of sections a known conflict? -conflict
    • are these sections on different days? -noconflict
    • do their times overlap? -conflict
  • conflict data collection
    • known conflicting section pairs per course pair
      • "do these courses fit pretty well together? Or will this schedule be a lost cause with this pair?"
      • this could lead to course suggestions based on what you've already got in your schedule
    • return schedules with 1 or 2 conflicts but are great schedules
  • caching
    • of known conflicting section pairs
    • of schedule requests
    • persistent across instances & restarts
  • electives
  • "more like this" condensing
  • expose as an API with same interface as classtime/api/vN/generate-schedules
  • redirect classtime/api/vN+1/generate-schedules requests to this API

Benchmark roadmap:

comparing against ~30s for sequentially running all cases at TestAPI.test_generate_schedules

  • running one test properly with bare minimum
  • running properly with busy-times
  • running properly with electives too it's broken in classtime right now anyway
  • running all tests properly
  • 90s
  • 45s
  • 30s
  • 15s
  • 10s
  • 5s
  • 1s

About

quicker schedule generation for rosshamish/classtime

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages