Я работаю над простым приложением, которое будет генерировать расписание (ежедневник) для школ. Я прочитал основы алгоритмов, но не понял, с чего начать.
Проблема:
Назначайте учителей на занятия, принимая во внимание множество ограничений, таких как:
1) Тема
2) Экспертиза учителя
3) Не более 2 классов непрерывно .. и т. Д.
Само собой разумеется, что не должно быть перекрытия. В основном мне нужно назначить N учителей в M классах с фиксированным количеством рабочих часов каждый день (8).
Входы:
1) Общее количество классов
2) Учителя вместе с предметной экспертизой
3) Предметы / Курсы для каждого класса
4) Количество лекций в классе в день
5) Другие гибкие ограничения, такие как минимальное / максимальное рабочее время учителя в день, общее рабочее время учителя в неделю и т. Д.
Мои вопросы:
1) Правильно ли смотреть на это как на проблему назначения с несколькими ограничениями?
2) Какой алгоритм мне использовать? (Венгерский алгоритм?)
3) Должен ли я начать с получения всего набора ограничений за один раз, а затем сгенерировать таблицу, или это нужно сделать на промежуточных этапах?
Я новичок в изучении / реализации алгоритмов, поэтому любая помощь, чтобы указать мне правильное направление, приветствуется! Спасибо.