Я использую OptaPlanner для расчета смен (то есть времени начала, времени окончания и необходимой квалификации) из набора задач, которые необходимо обрабатывать в течение дня.
Я использую директора оценки слюни и установил ряд правил, чтобы назначать задачи сменам, сохраняя при этом такие ограничения, как:
- никогда не назначайте перекрывающиеся задачи одной и той же смене
- никогда не назначать две задачи одной и той же смене, если это приведет к нарушению максимальной продолжительности смены
- никогда не выполняйте две задачи в одну смену, если нет возможного набора квалификаций, соответствующих необходимой квалификации для обеих задач и т. д.
Пока что получаю довольно приличные результаты. Однако осталась одна оптимизация. Должна быть возможность иметь смены разной продолжительности (например, 8-часовые, 6-часовые и 4-часовые смены), и существует порог, при котором смена считается продуктивной (например, если 60% времени покрываются задачами). Так что было бы лучше иметь больше, более коротких, но продуктивных смен, чем длительных непродуктивных.
Мне, как правило, трудно дать определение чему-то подобному. Проблема, на мой взгляд, в том, что это своего рода свойство сдвига. Однако сдвиг является фактом моего планирования и поэтому не может изменить его состояние во время расчета.
Ты хоть представляешь, как я могу решить эту проблему?
Заранее спасибо, С уважением, Хендрик