Member 14960716 Ответов: 1

Как мне создать генератор школьного расписания ?


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

Проблема в том, что я новичок в python, MySql и сделал очень мало проектов с минимальным опытом и совершенно без опыта решения эвристических алгоритмов.

Программа должна выводить файлы Excel, содержащие расписания для 10 классов с уникальными предметами, и все 10 классов имеют 100 предметов. Он также генерирует такие расписания для данного числа учителей. Таким образом, жесткие и мягкие ограничения здесь растут экспоненциально.

может ли кто-нибудь подсказать мне, с чего начать? Насколько это будет сложно? или обратитесь к аналогичному проекту?

Что я уже пробовал:

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

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

Спасибо...

1 Ответов

Рейтинг:
0

OriginalGriff

Если у вас вообще возникли проблемы с началом работы, то это может помочь: Как написать код для решения проблемы, руководство для начинающих[^]

Подумайте о том, что именно вы хотите создать, и напишите "функциональную спецификацию" для системы, которую вы хотите создать: Функциональная спецификация - Википедия[^]
Это "укрепляет" требования, которые вы имеете выше, и начинает давать всей системе "форму".
Оттуда - учитывая, что это не маленькая и не простая задача - вы можете счесть, что стоит подготовить подробный проектный документ из FS вместе со спецификацией теста, чтобы вы могли быть уверены, когда он будет завершен!

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

Удачи вам!


Member 14960716

Thanks a lot!, i understand it is a little difficult, and i am ready to learn... but what should i learn to solve this? can this be solved using simple OOP concepts? or will it require higher skills like Machine learning and advanced Algorithms?, also, i have made a few games and large projects using C++ and Python before. So i can make code, the methods, then classes and the implementation, but i still do not know if this can even be solved by those things. So if someone experiences like you can tell me if that's possible, then ill spend all the time trying to draft a functional specification. A more apt question i think would be, to ask you how you would solve this...

OriginalGriff

Да, это возможно - их там много, и они были с тех пор, как появились компьютеры, но нет никакого тривиального алгоритма:
https://scholar.google.co.uk/scholar?q=timetable+scheduling+algorithm&hl=en&as_sdt=0&as_vis=1&oi=scholart

Это сложная задача, но она выполнима.

Как бы я это сделал? Покупайте в упаковке! :смеяться:
Напишу ли я свою собственную? Нет. У меня нет на это свободного времени, потому что оно мне и не нужно. У меня уже достаточно проектов на ходу и сидит в куче "делать, когда у меня есть время".