Алгоритмы штатного учёта
Мы начинаем некоторые исследования и разработки для системы учета персонала, и я знаю, что есть некоторые предлагаемые алгоритмы, такие как меметический алгоритм и т. Д., Но я не могу найти никакой дополнительной информации в Интернете.
Кто-нибудь знает какие-нибудь исследовательские журналы или псевдокод, который лучше объясняет эти алгоритмы?
Спасибо деван
5 ответов
Вот полезный документ:
Меметические Алгоритмы для Ростеринга Медсестры (pdf)
Он содержит немного теории и псевдокода.
Задача планирования является NP-сложной и обычно решается с использованием генетических алгоритмов (GA).
Вы можете начать изучать GA из статьи Википедии
Вы также можете посмотреть на метод, называемый "имитация отжига". Как и генетические алгоритмы, здесь используется функция оценки для определения качества возможных решений, но генерация кандидатов, как правило, проще. Каждый тип алгоритма дает лучшие результаты в определенных обстоятельствах - из краткого опроса Google кажется, что генетический имеет преимущество, но отжиг будет быстрее осуществить.
Вот документ для сравнения (для другого домена, без планирования): http://www.ee.utulsa.edu/~tmanikas/Pubs/gasa-TR-96-101.pdf
Мы использовали имитацию отжига в большом приложении планирования, и оно работало хорошо.
Честно говоря, если численность персонала составляет менее 40, я бы порекомендовал дать визуальное представление реестра и позволить пользователю завершить график. Возможно, вы будете использовать алгоритм для создания расписания кандидатов, а затем позволить пользователю поиграть с ним. Вы все еще можете использовать функцию оценки, чтобы проверить работу пользователя и дать отзыв о том, насколько хорошо его решение.
Существует много много вопросов, которые необходимо учитывать при настройке расписания, поэтому совет Аку о генетических алгоритмах - лучший.
Вам нужна хорошая функция оценки для определения качества реестра для такого алгоритма, и вы можете и должны учитывать такие вещи, как следующие (но не ограничиваясь ими):
- Вы решили проблему рабочей нагрузки с этим списком? (т.е. у вас всегда достаточно людей на работе?)
- если нет, можете ли вы жить с последствиями? (для больниц вам, возможно, придется отложить обед на 15 минут на один день, чтобы было достаточно людей, или просто немного затянуть его вовремя)
- Является ли реестр хорошим, учитывая такие вещи, как стабильность смены для каждого человека, его выходные дни, независимо от того, выходят ли они на выходные с некоторой регулярностью
- законный список? принимая во внимание такие вещи, как местные правила, которые регулируют такие вещи, как, сколько времени должно проходить между одной сменой и другой (время простоя), сколько человек может работать в течение определенного интервала (день, неделя, месяц)
Я читаю газету с альгоистами этих парней некоторое время назад.