Я создаю веб-сайт для побочного проекта в школе, где ученики посещают занятия, которые им нужно посещать, в какие дни они хотят или не хотят посещать занятия, а также когда они не могут или не хотят посещать занятия. Основы в том, что есть классы, и каждый класс имеет много разделов в разное время с разными профессорами, из которых студент может выбирать. С классами уровня новичка может быть более 30 различных разделов для каждого класса. У меня есть классы и разделы в базе данных mysql, и я пишу в php.
Пока у меня это работает, но я хочу сделать это быстрее. Я читал о других проблемах с расписанием, но я ищу особенности того, что я делаю. Это не делает графики с нуля. Он составляет графики из доступных разделов и ранжирует их на основе того, что учащиеся вводят. В настоящее время для нескольких возможных разделов он работает быстро. Но когда количество возможных графиков достигает 300 000, на сравнение и ранжирование уходит около 30 секунд. Я улучшил это, изменив, как графики генерируются, но я хочу быстрее. Я перешел от генерации грубой силы к использованию метода на основе дерева.
Я не прошу помощи в выполнении домашних заданий или для того, чтобы кто-то сделал это для меня. Я просто хочу указать правильное направление с уже существующими проблемами и алгоритмами, о которых я могу узнать.