Какой алгоритм использовать для системы динамического планирования? - PullRequest
3 голосов
/ 21 января 2011

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

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

Ответы [ 4 ]

1 голос
/ 03 февраля 2011

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

1 голос
/ 22 января 2011

Вот некоторые общие замечания:

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

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

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

1 голос
/ 21 января 2011

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

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

0 голосов
/ 21 января 2011

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

...