Моделирование типов смен в планировании персонала с помощью линейного программирования - PullRequest
0 голосов
/ 13 июня 2019

Итак, я хочу решить проблему, которая выглядит как планирование медсестры. Проблема в том, что есть 2 типа работников, которые должны работать минимум 40 часов в неделю, другой тип должен работать минимум 10 часов в неделю.Чтобы решить эту проблему с симплексом, я должен определить смены (типы смен).смены в день должны быть минимум 3 часа и максимум 9 часов.эта фотография - то, что я пробовал до сих пор Смены

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

1 Ответ

0 голосов
/ 13 июня 2019

У вас есть пример медсестры на CPLEX_Studio129\opl\examples\opl\nurses.

Чтобы сделать то, что вам нужно, вам нужно изменить

//global max worked time
 forall(n in Nurses)
   ctNurseMaxTimeConstraints: 
     NurseWorkTime[n] <= MaxWorkTime;

в

 forall(n in Nurses)
   ctNurseMaxTimeConstraints: 
     NurseWorkTime[n] <= n.MaxWorkTime;

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

...