 |
|
|
В программе "Расписание" алгоритмы,
которые автоматически выполняют те или иные действия по составлению расписания
вынесены во внешнюю библиотеку. На сегодняшний день она содержит следующие алгоритмы:
|
Алгоритм "Расстановка уроков" расставляет уроки так, что нет форточек у классов.
Форточки преподавателей при этом игнорируются (поэтому впоследствии следует запускать алгоритм
"Оптимизация форточек").
При расстановке уроков алгоритм учитывает:
- наложенные запреты и ограничения;
- метод постановки уроков для каждого преподавателя;
- возможную разницу в количестве уроков в разные дни;
- групповые занятия.
Алгоритм не учитывает:
- целесообразное распределение уроков преподавателя по доступным дням;
- соблюдение последовательности уроков в параллелях;
- потоковые занятия.
|
Алгоритм "Расстановка преподавателей" расставляет уроки выбранных преподавателей.
На первых этапах, когда уроков поставлено мало, алгоритм расставляет занятия преподавателям
без форточек. По мере того, как сетка заполняется, алгоритм начинает делать у
преподавателей форточки. Некоторые занятия, если не найдено простого решения,
он просто не ставит.
При расстановке уроков алгоритм учитывает:
- целесообразное распределение уроков преподавателя по доступным дням;
- порядок расстановки занятий по предметам;
- возможный приоритет предметов или классов для языковедов;
- соблюдение последовательности уроков в параллелях.
|
Алгоритм "Удаление форточки у класса" помогает найти способы устранения форточки у класса,
производя перестановку уроков в соответствии с одним из выбранных способов:
- в пределах одного класса (переставляются уроки одного класса, форточку которого
требуется удалить);
- в пределах одного дня.
Алгоритм облегчает доводку расписания на финальной стадии.
|
Алгоритм "Оптимизация форточек" пытается уменьшить количество форточек у преподавателей,
не меняя схему расстановки уроков у классов (уроки у классов меняются местами, новые ячейки
при этом не занимаются). Процесс оптимизации иногда позволяет устранить более 95% форточек.
Для алгоритма могут быть определены преподаватели, чьи уроки не могут быть переставлены.
Кроме этого в процессе работы алгоритм не переставляет потоковые занятия и пары.
|
|
|
 |