Обновить

Как я создал СуперЗавуч — программу для генерации расписаний занятий

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели60K
Всего голосов 27: ↑27 и ↓0+36
Комментарии22

Комментарии 22

Стой, подождите, то есть компьютеры в массовом обиходе лет так 20, а эту задачу никто до этого нормально не решил? Вау. Подозреваю что есть какие то причины, которые мешают внедрению таких решений.

Учителям всегда платили немного, поэтому автоматизация им не по карману...

Ну вот у нас в ВУЗе автоматизировали по воле вышестоящего начальства. Такую фигню составляет по сравнению с ручным...

Трудно учесть все факторы, плюс неизбежные конфликты интересов, да ещё заполировать это сверху неизбежной пачкой переносов.

Компьютеры-то решили, просто алгоритм не умеет учитывать коньяк директору за удобный методический день. Живой завуч балансирует хотелки коллектива, а бездушная сетка переругает всех учителей за одну четверть)

Всё существовало. В 2005 году точно помню, что подобное уже было. Другое дело, что опытные завучи и до этого как-то составляли расписание и для них это не было особой проблемой, а главное это и была их работа.

Основная проблема не в алгоритме, а в исходных данных и оценочных функциях. Вот, некоторые из них:

  • Изменения должны вводиться с минимальным правками по сравнению с предыдущей версией. Уход преподавателя не должен приводить к полной перетасовке всего расписания.

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

  • Есть специализированные аудитории, аудитории закреплённые за преподавателем и просто предпочтительные.

  • Есть корпуса, между которыми нужно успеть добежать за время перерыва.

  • Есть "любимчики", которым надо дать расписание удобнее и, иногда, нельзя оставлять следы в исходных данных об этих предпочтениях.

И таких условий десятки, если не сотни. И это я ещё не говорю про "мигалки", замены, сдвоенные уроки, разделение на подгруппы и прочее.

Проблема не только в том, чтобы создать базу данных и интерфейсы для всех этих правил, но и в том, чтобы убедить завуча, ввести все это в программу, когда "да я быстрее на миллиметровке все раскидаю"

Компьютеры в массовом обиходе лет так 50. Основная масса людей ходят на работу, приняв правила и устои созданные до них, как константу. И лишь единицы принимают решение "покончить с этим дерьмом".😀🫶

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

В свое время я баловался как раз отжигом, правда, не металла, но не суть - проблемы очень похожие. В итоге вывел несложную аналитичеую формулу, дающую приближенное, но вполне работающее решение. И то, что до этого требовало часов счета, атсло считаться за секунды (просчитать один конкретный режим и сразу, в один проход, получить второй, оптималтный). Вполне вероятно, такое решение существует и здесь.

Да, это требует решения математической задачи. Но как раз с этим современные ИИшки справляются весьма неплохо, если их конкретно попросить. Критически важно - правильно сформулировать задачу и понимать, насколько хорошо то или иное решение. Если Вы делаете это для своей собственной работы, то такое понимание, предполагаю, у Вас есть. Хотя если оно и так работает хорошо, то и менчть незачем.

Успехов!

Какие еще пробовали алгоритмы и почему не подошли?

Из наиболее удачных это был температурный отжиг без графов, что не очень эфективно из-за большого кол-ва структур. Сейчас в основе лежит двудольный граф между учителями и классами, что позволяет быстро обращаться и к классу относительно учителя, и к учителю относительно класса.

Спасибо, а неудачных?

Я пытался написать разные решения в лоб, но всё сводилось либо к перебору либо к рандомайзеру.

А как отжиг справляется, если в процессе учебного года увольняется учитель физики и часы раскидывают на троих оставшихся?

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

Хотел поделиться ссылкой на сайт со знакомой завучем. Да и в родную школу отправить. А сайт не открывается, видать КВН нужен. Капец. Для кого эта разработка? Для себя самого? Учителям у нас, в основном, уже "за" годов. А то и "за-за". Ими ссылка на Гитхаб в принципе не нужна. Нельзя сделать сайт в доступном домене и с понятным названием, а не крокозябрами?...

Я тут прочитал, что хостинг, на котором я выкладывал сайт не так давно заблокировали в России. Разместил пока что тут: https://request.tail1af8d9.ts.net/

Спасибо!

История Белорусскии реально сложнее физики, химии и английского языка?)

по итогу работы в колледже, непосредственно сталкивался с подобного рода программами, если ответить на вопросы выше, нормального решения нет, так как крупные колледжи и вузы идут 2 путями, либо автоматизировали все на 1с либо разработали свою систему, которая оптимизирует не только расписание, но и кучу других образовательных процессов. Мелкие же колледжи не могу себе позволить нормальное ПО и на выходе получаются забагованные и устаревшие программы, которые продаются за копейки. как вариант развития системы, добавь в функционал возможность создания в ПО простого веб-сервер с расписанием, желательно с фильтрацией, один из студентов написал к нашему ПО такую штуку, оказалось очень удобным как для студентов так и для педагогов, например найти свободный кабинет или найти преподавателя которому тебе надо сдать долги.

не открывается программа

Здраствуйте, я нашёл 3 возможные причины:
1. путь к файлу содержит пробелы
2. путь к файлу содержит кириллицу
3. не установлен https://aka.ms/vs/17/release/vc_redist.x64.exe (очень врятле, но возможно)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации