Какой алгоритм использовать для системы динамического планирования?

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

Какой алгоритм использовать? Эвристика? Оптимизация? Любые предложения или помощь высоко ценятся!


person 123 456 789 0    schedule 21.01.2011    source источник
comment
Вам нужен алгоритм динамического планирования.   -  person Henk Holterman    schedule 21.01.2011
comment
Это немного локализовано, и на него невозможно ответить в его нынешнем виде.   -  person Aaron McIver    schedule 21.01.2011
comment
Хенк: Любые ссылки или ссылки на этот алгоритм?   -  person 123 456 789 0    schedule 21.01.2011
comment
Аарон: Что ты имеешь в виду, что это немного локализовано и на него невозможно ответить? Какую часть ты не понял   -  person 123 456 789 0    schedule 21.01.2011
comment
@inluis, да, плохая шутка. Просто посмотрите комментарий @Aaron.   -  person Henk Holterman    schedule 21.01.2011
comment
@Inluis: вы можете проверить это: schoolforge.net. Помимо этого, на sourceforge.net доступно довольно много программного обеспечения для школьного администрирования (включая планирование занятий).   -  person yasouser    schedule 21.01.2011


Ответы (4)


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

Эй, знать, что нельзя делать, может быть полезно, верно? :)

person Thomas    schedule 21.01.2011
comment
Так они провалили свой классный проект? :П - person 123 456 789 0; 21.01.2011
comment
Вероятно, они не реализовали это правильно. Мне потребовалось 2 релиза в Drools Planner, чтобы сделать это правильно. Но когда вы все сделаете правильно... это может свести на нет генетические алгоритмы, табу-поиск и т.д. См. мои тесты здесь: blog.athico.com/2010 /07/ - person Geoffrey De Smet; 03.02.2011
comment
Интересные результаты у вас получились. Может быть, их случай был сложнее, чем ваши тестовые случаи. Они довольно амбициозно попробовали это в реальном школьном расписании, наметив классы, классы, учителей, курсы... с различными дополнительными реалистичными ограничениями, такими как X не может преподавать по понедельникам, а ученики не должны иметь более одного часа свободного времени. в ряд. Несмотря на то, что их легко реализовать, они могут слишком сильно ограничить пространство поиска, что затрудняет поиск хороших решений. - person Thomas; 03.02.2011
comment
Это то, что мы планируем реализовать прямо сейчас, и у нас есть всего 3 месяца на разработку, пока у нас есть другие школьные материалы. Вздох, это странно. школу дать экспертную систему за 3 месяца действительно нереально. - person 123 456 789 0; 27.02.2011

Вот некоторые общие наблюдения:

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

2) Завершается ли когда-либо ручной процесс выводом о том, что требования в совокупности невыполнимы и что некоторые из них должны быть исключены? В этом случае ваш алгоритм должен быть достаточно прозрачным, чтобы можно было понять ошибки, или, по крайней мере, быть способным предлагать такие изменения (например, путем максимизации штрафной функции, которая позволяет получить «наименее плохое» решение, которое не удовлетворяет всем исходным ограничениям). ). Я знаю один случай, когда сложный подход, основанный на ограничениях, был заменен гораздо более простым алгоритмом, потому что сбои системы, основанной на ограничениях, не давали достаточной обратной связи с пользователем.

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

person mcdowella    schedule 22.01.2011

Взгляните на учебный курс планирование уроков, пример Drools Planner (с открытым исходным кодом, боюсь, Java) . Он использует метаэвристики, такие как simulated annealing и tabu search.

person Geoffrey De Smet    schedule 03.02.2011

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

person tbischel    schedule 21.01.2011
comment
Уже проверил, все равно спасибо. я думаю это не очень полезно - person 123 456 789 0; 21.01.2011