Планирование медсестры с ограничениями компетенции - PullRequest
0 голосов
/ 24 декабря 2018

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

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

1 Ответ

0 голосов
/ 24 декабря 2018

Сначала посмотрите на shift_scheduling_sat.py пример.Адаптация к ограничениям навыков должна быть легкой.

Теперь об истечении срока действия.

Первый шаг - отметить смены, когда медсестра изучает навык.

Для каждой смены, длякаждой медсестре, создайте bool var, если медсестра работает в паре с кем-то, кто обладает компетенцией.Прибавьте к выводу, что у медсестры есть расписание в эту смену, а у квалифицированного специалиста в ту же смену -> медсестра имеет право на эту компетенцию в эту смену.

Теперь для всех других смен, требующих этой компетенции,

вызнать время каждой смены.Для данной смены соберите все потенциальные предыдущие смены достаточно близко (без истечения срока действия) и добавьте работы медсестры, для которых эта смена подразумевает Or (медсестра приобрела эту смену за одну совместимую предыдущую смену - включая эту).

...