Skip to content

citec-spbu/timetable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CP-SAT timetable optimizer

Программа строит семестровое учебное расписание по Excel-формату и сохраняет результат в файл timetable_output.xlsx

Запуск

  1. Установка зависимостей
pip install -r requirements.txt
  1. Файл input.xlsx наполнить входными данными
  2. Запуск программы
python main.py

После завершения работы результат будет сохранен в timetable_output.xlsx

Формат входного файла

Файл input.xlsx должен содержать листы

  • Registry — учебный реестр — course_name, work_type, teacher, hours, program, admission_year, course_year
  • Groups — группы — program, admission_year, course_year, group_id
  • Lecture_Streams — лекционные потоки — program, admission_year, course_year, stream_id, group_ids
  • Course_Blocks — элективные и кафедральные блоки — block_id, program, course_year, block_no, block_type, course_name
  • Rooms — аудитории —room_id, room_type, is_active

В Rooms.room_type используются значения lecture и regular

Настройка параметров

Основные параметры находятся в src/config.py

  • SEMESTER_WEEKS — число недель семестра
  • DAY_NAMES — учебные дни
  • PERIODS_PER_DAY — число пар в день
  • SOLVER_TIME_LIMIT_SECONDS — лимит времени для недельного шаблона
  • RESIDUAL_SOLVER_TIME_LIMIT_SECONDS — лимит времени для остаточных пар
  • WEIGHT_GROUP_GAP, WEIGHT_LONELY_DAY, WEIGHT_LAST_PERIOD, WEIGHT_DAILY_OVERLOAD, WEIGHT_TEACHER_GAP — веса мягких ограничений, должны быть целочисленными

Формат выходного файла

timetable_output.xlsx Содержит листы с различными представлениями расписания и листы с метриками

  • Summary
  • Weekly_Template
  • Semester_Schedule
  • By_Group
  • By_Teacher
  • Expanded_Base_Events
  • Residual_Requested
  • Rooms
  • Quality_Metrics
  • Quality_By_Group
  • Quality_By_Teacher
  • Quality_By_Slot
  • Отдельные листы с расписанием для каждой из групп

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages