Следует ли использовать решатели для случаев оптимизации, требующих создания данных?

Я работаю над решением проблемы оптимизации, основанной на списках сотрудников. Проблема в:

  1. У меня есть штатное расписание (количество сотрудников, необходимых в конкретный час, и это на весь день, т.е. 24 столбца).
  2. У меня есть правила рабочего времени, определенные законами штата и предпочтениями работника.

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

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

Теперь я думаю о том, зачем реализовывать весь алгоритм ветвей и цен и использовать то, что уже существует, решатели, такие как Gurobi или Optaplanner. Решатели, скорее всего, работают с фиксированными фактами и пытаются сопоставить лучшее из них с переменной (сотрудником в данном случае), но они не имеют характера для генерирования фактов (в данном случае сдвиги).

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

0 ответов

Другие вопросы по тегам