Учителя
Недоступные и менее желательные уроки, предел уроков в день, предел уроков подряд, предел рабочих дней и собственный кабинет, если учитель всегда ведёт в одном месте.
Campus строит расписание решателем ограничений: доступность учителей, вместимость кабинетов, дневное окно класса и спаренные уроки взвешиваются вместе. То, что выполнить нельзя, называется поимённо — этот курс, этот учитель, этот кабинет, — а не сводится к одному числу.
Проект хранит учебную неделю: рабочие дни, уроки и перемены и несколько недельных планов, если начальная школа и старшие классы звонят по разному звонку. Всё остальное вносится поверх этого — по учителю, классу, кабинету и курсу, а где планов несколько — и по недельному плану.
Недоступные и менее желательные уроки, предел уроков в день, предел уроков подряд, предел рабочих дней и собственный кабинет, если учитель всегда ведёт в одном месте.
Закрытые уроки, минимум и максимум уроков в день и дневное окно: классу можно задать, что он не начинает раньше и не заканчивает позже определённого урока и не остаётся без занятий целый день.
Общий кабинет несёт число уроков, которые могут идти в нём одновременно. Профильный кабинет объявляет предметы, для которых он предназначен, а любой кабинет можно закрыть на урок, не убирая из плана.
Уроки в неделю и предел на один день, блоки, которые должны идти подряд, курсы, идущие параллельно в разных классах, и кабинет из списка учителя, класса, предмета или явно заданного — за вычетом тех, которые вы исключили.
Класс делится на подгруппы, поэтому язык или элективный курс берёт лишь часть класса, пока остальные в тот же урок находятся в другом месте.
У каждой сетки доступности есть второй слой: урок можно отметить как менее желательный, а не как недоступный. Решатель платит за него небольшую цену и берёт его лишь тогда, когда любая альтернатива дороже.
Восемь шагов. Прогон — это замороженная копия всего набора данных, поэтому то, что вы просматриваете, и есть решённый прогон: правки в проекте после запуска его не сдвинут.
Задайте рабочие дни и недельные планы: уроки, перемены и классы, к которым относится каждый план.
Заберите классы, учителей, кабинеты, предметы и курсы прямо из Campus или загрузите их из шаблона Excel, который сервис выдаёт для каждого из них.
Задайте доступность, предпочтения и пределы для каждого учителя, класса, кабинета и курса — сразу по всей сетке или по одной записи.
Прогон копирует классы, учителей, кабинеты и курсы в текущем виде и несёт собственные веса ограничений, поэтому два прогона могут расходиться, не затрагивая проект.
Конструктивная эвристика рассаживает все уроки, затем табу-поиск и позднее принятие продолжают улучшать результат — до часа, с досрочной остановкой, если пятнадцать минут не дают улучшения.
Улучшения сохраняются с интервалами, а не на каждом шаге, поэтому предлагаемые версии заметно отличаются друг от друга. Прогон хранит до десяти.
Читайте неделю по классу, по учителю или по кабинету либо все три вида рядом на панели, где уроки без места перечислены отдельно.
Выгрузите любой вид в Excel или запишите расписание обратно в курсы Campus, откуда оно пришло, — по одному курсу или весь прогон.
Тридцать ограничений, у каждого объявленный вес на одном из трёх уровней. Именно предпочтение, поставленное на верхний уровень, делает любое расписание невыполнимым, а сигнал выполнимости — бессмысленным, поэтому уровни разведены и означают ровно то, что заявлено.
Класс, учитель или кабинет в двух местах одновременно; урок там, где учитель или кабинет закрыт; урок, оставшийся вовсе без кабинета. Именно эти нарушения делают расписание невыполнимым.
Профильный кабинет, которого требует предмет, дневное окно класса, блок, который должен остаться цельным, дневной предел нагрузки. Они важны — и расписание, нарушившее одно из них, всё равно работает.
«Окна» в дне класса и учителя, учитель, оставленный в одном кабинете, менее желательные уроки и технические предметы, сдвинутые к началу дня, а не к концу.
У каждого ограничения есть вес по умолчанию, и прогон может его переопределить. Решатель и правила, которые он оценивает, читают одну и ту же таблицу, поэтому вес нельзя изменить в одном месте и молча проигнорировать в другом.
Список конфликтов говорит, что именно не так — этот курс, эти уроки, этот учитель, этот кабинет, — на языке читающего и с указанием затронутого класса и учителя.
При переносе урока предлагаются только те уроки, что свободны для его класса, учителя и кабинета, поэтому правка не вернёт конфликт, который прогон только что убрал.
Данные держит проект, запуски держат прогоны, и ничто не правится на месте под расписанием, которое люди уже читают.
Принесите недельный план, список классов и учителей, которых не будет в пятницу после обеда. Мы решим её вместе с вами и вместе прочитаем результат.