Диагностика неудачного формирования расписания

Формирование расписания «не удаётся», когда алгоритму не получается разместить всё: он возвращает лучшее частичное расписание из найденных, а занятия, которыми ему пришлось пожертвовать, остаются на панели стикеров, ожидающих размещения (красный баннер сообщает о блокировке). Почти всегда причина — избыток ограничений: слишком много курсов для открытых временных слотов или слишком жёсткие ограничения, которые не стыкуются друг с другом. Выход — ослабить всё, что можно ослабить; об этом и говорится на этой странице. Как алгоритм расставляет приоритеты и чем он жертвует, объясняется на странице Автоматическое формирование; каталог конфликтов уже составленного расписания см. на странице Конфликты и диагностика.

Диагностика — подсказка, а не вердикт

Когда занятие не удаётся разместить, Omniscol выделяет сущность, с которой за время попыток возникло больше всего проблем: «у этого преподавателя не хватает временных слотов», «этот класс не помещается в свою сетку». Это эвристика: названа та сущность, которая чаще всего встречается в блокировках, но не обязательно единственная причина. Ограничения пересекаются, и ослабление в другом месте может всё разблокировать. Поэтому рассматривайте сообщение как направление поиска: настоящее решение часто состоит в том, чтобы ослабить общий избыток ограничений (чуть больше временных слотов, менее строгая доступность), а не упорно заниматься только указанной сущностью.

Самые частые причины

1. Слишком жёсткая доступность

Преподаватель отметил так много промежутков как невозможные, что не остаётся достаточно временных слотов для его занятий.

Диагностика: откройте экран доступности соответствующего преподавателя. Посчитайте свободные временные слоты и сравните с его объёмом часов.

Решения:

  • смягчить часть промежутков (перевести из чёрного в красный — нежелательно, но не невозможно);
  • перераспределить курсы (передать часть другому преподавателю);
  • обсудить с преподавателем, можно ли пересмотреть его доступность.

2. Нет подходящего кабинета

Дисциплина требует специализации, для которой не создан ни один кабинет, либо все подходящие кабинеты заняты в единственные возможные временные слоты.

Решения:

  • создать недостающую специализацию для подходящего кабинета;
  • ослабить требование специализации;
  • добавить кабинет.

3. Недостаточная вместимость

Численность группы или класса превышает вместимость всех подходящих кабинетов.

Решения:

  • назначить кабинет побольше;
  • назначить несколько кабинетов одному курсу (общая вместимость равна сумме);
  • разбить класс или группу на части.

4. Структурно невозможное совмещение

Объёмы часов совмещённых групп различаются, либо у исходных классов несовместимые сетки, либо совмещённый преподаватель не может находиться в двух местах сразу.

Решения:

  • согласовать объёмы часов у совмещённых групп;
  • отменить совмещение и создать по курсу на каждый класс;
  • проверить, что у площадок совмещённых классов есть общая сетка на нужный временной слот.

5. Слишком много занятий для сетки

Когда у класса или преподавателя явно больше часов, чем открытых временных слотов, предупреждение появляется заранее (вкладка Формирование, счётчики часов и временных слотов). Коварнее другой случай: по отдельности явного переполнения нет, но накопление ограничений у преподавателей и классов — и их пересечения — в итоге перестаёт укладываться в сетку.

Решения:

  • уменьшить введённые объёмы часов;
  • расширить сетку (например, открыть вторую половину дня в среду);
  • смягчить часть отметок недоступности, выбирая промежутки, которых одновременно избегают многие сущности: их совокупность перегружает сетку.

6. Слишком много несовместимостей

Нагромождение ограничений «не X после Y» может создать систему без решения.

Решение: заменить часть несовместимостей более мягкими педагогическими весами.

7. Не хватает кабинетов (узкое место)

Очень частый случай: даже если каждый кабинет подходит, их количество не покрывает спрос в одно и то же время. Занятия скапливаются в одних и тех же временных слотах, и нехватка кабинетов становится узким местом, из-за которого всё вместе не помещается.

Решения:

  • добавить кабинеты (или сделать часть кабинетов общими для нескольких классов);
  • распределить спрос, расширив сетку;
  • ослабить ограничения, которые сосредоточивают занятия в немногих временных слотах.

8. Несколько площадок: поездки отнимают часы

Когда площадок несколько, время в пути между ними сокращает временные слоты, которыми реально может воспользоваться преподаватель (или класс): смена площадки отнимает время, которое уже нельзя использовать для занятия. Фактическая доступность сужается, и задача усложняется.

Решения:

  • собрать занятия преподавателя на одной площадке в течение дня;
  • проверить указанное время в пути между площадками;
  • ограничить поездки туда и обратно между площадками в течение одного дня.

Контрольный список перед повторным запуском формирования

  • У всех классов назначена площадка?
  • У всех классов есть дисциплины и преподаватели?
  • У всех групп, использованных в курсах, указана расчётная численность или вместимость, с которой можно работать?
  • Доступность всех преподавателей подтверждена?
  • Нет критических (красных) оповещений на вкладке Формирование?

Встроенные средства диагностики

  • Вкладка «Формирование» — заранее: статистика (курсы и часы по преподавателям, классам и площадкам) и предупреждения (часы и временные слоты, критические оповещения, которые нужно исправить до запуска).
  • Неразмещённые занятия (стикеры) — после неудачи: результат неполного формирования. Кнопка размещения (со значком канцелярской кнопки) на каждом из них показывает цветными временными слотами, почему ни одно место не подходит.
  • Обнаружение забытых групп: группы, которые определены, но не назначены ни одному курсу.

Инструкция

Диагностика неудачного формирования расписания

  1. Когда формирование не удаётся, Omniscol показывает красный баннер, оставляет на экране частичное расписание и помещает занятия, которые не удалось разместить, на панель стикеров.

  2. Прочитайте баннер: он даёт направление (эвристика, см. выше), а не вердикт.

  3. Начните с неразмещённых занятий, а не с «конфликтов». Формирование никогда не создаёт конфликтов: оно просто оставляет в стороне то, что не помещается. Возьмите занятие на панели стикеров и нажмите его кнопку размещения (значок канцелярской кнопки, Разместить в расписании).

  4. Прочитайте цветные временные слоты. Omniscol показывает все возможные временные слоты; для занятия, которое невозможно разместить, все они заблокированы. Выясните почему, проверяя три обычные причины по порядку: занят или недоступен преподаватель, занят класс (или группа), либо нет свободного подходящего кабинета. Причина показывается при наведении на временной слот.

  5. Ослабьте ограничение, которое блокирует размещение: в зависимости от случая — смягчите доступность, добавьте или освободите кабинет, согласуйте совмещение, расширьте сетку (см. причины выше) — и запустите формирование снова.

  6. Перед повторным запуском пройдитесь по контрольному списку выше (площадки назначены, дисциплины и преподаватели на месте, численность указана, доступность подтверждена, нет критических оповещений на вкладке Формирование).

См. также