Modeling and Solving Linear Programming with R book には、セクション 3.7 にシフトの計画に関する良い例があります。Rで解決できません。また、本で提供されている解決策も明確ではありません。
問題
ある会社に 24 時間体制の救急センターがあります。以下の表では、1 日が分割された 4 時間の 6 つのシフトのそれぞれについて、従業員の最低限の必要性が詳述されています。
Shift Employees
00:00 - 04:00 5
04:00 - 08:00 7
08:00 - 12:00 18
12:00 - 16:00 12
16:00 - 20:00 15
20:00 - 00:00 10
R ソリューション
上記を解決するために以下を使用しました。
library(lpSolve)
obj.fun <- c(1,1,1,1,1,1)
constr <- c(1,1,0,0,0,0,
0,1,1,0,0,0,
0,0,1,1,0,0,
0,0,0,1,1,0,
0,0,0,0,1,1,
1,0,0,0,0,1)
constr.dir <- rep(">=",6)
constr.val <-c (12,25,30,27,25,15)
day.shift <- lp("min",obj.fun,constr,constr.dir,constr.val,compute.sens = TRUE)
そして、次の結果が得られます。
> day.shift$objval
[1] 1.666667
> day.shift$solution
[1] 0.000000 1.666667 0.000000 0.000000 0.000000 0.000000
これは、本で言及されている数値解法にはほど遠いものです。
数値解法
数値解によって必要な解の総数は です38
。ただし、問題は、各期間に定義された最小従業員数があると述べているため、このソリューションはどのように有効でしょうか?
s1 5
s2 6
s3 12
s4 0
s5 15
s6 0