LPSolver的输出不是最佳结果

时间:2019-05-30 09:38:31

标签: r optimization lpsolve

由于我需要创建一个自动班次计划工具,因此我打算使用R lpSolve。但是,我无法通过如下所示的代码获得最佳输出。输出(通过累积所有可用班次的小时供应)无法满足需求。例如一个小时的需求量为46,但供应量仅为25,这意味着无法满足21个需求单位。

背景:

  • 目标

    1. 使总供给和总需求之间的差异最小化。
    2. 最大程度地减少每小时的供需差异。
  • 约束

    1. 班次限制-每小时可能有几个班次可供分配。
    2. 最大容量-我有供应上限。每小时的总班次总和不能超过上限。 (在此示例中,上限为46)。

constr矩阵中,从上午7点开始24行代表24小时,而第9列表示否。我有班次。

constr.val表示每小时需求。

请让我知道是否有任何不清楚的地方。谢谢!

library(lpSolve)

obj.fun<-c(1,1,1,1,1,1,1,1,1)
constr<-matrix(c(
1,  0,  0,  0,  0,  0,  0,  0,  0,
1,  0,  0,  0,  0,  0,  0,  0,  0,
1,  0,  0,  0,  0,  0,  0,  0,  0,
1,  0,  0,  1,  0,  0,  0,  0,  0,
1,  0,  0,  1,  0,  1,  0,  0,  0,
1,  0,  0,  1,  0,  1,  0,  1,  0,
1,  0,  0,  1,  0,  1,  0,  1,  0,
1,  0,  0,  1,  0,  1,  0,  1,  0,
0,  1,  0,  1,  0,  1,  0,  1,  0,
0,  1,  0,  1,  0,  1,  0,  1,  0,
0,  1,  0,  1,  0,  1,  0,  1,  0,
0,  1,  0,  0,  1,  1,  0,  1,  0,
0,  1,  0,  0,  1,  0,  1,  1,  0,
0,  1,  0,  0,  1,  0,  1,  0,  1,
0,  1,  0,  0,  1,  0,  1,  0,  1,
0,  1,  0,  0,  1,  0,  1,  0,  1,
0,  0,  1,  0,  1,  0,  1,  0,  1,
0,  0,  1,  0,  1,  0,  1,  0,  1,
0,  0,  1,  0,  1,  0,  1,  0,  1,
0,  0,  1,  0,  0,  0,  1,  0,  1,
0,  0,  1,  0,  0,  0,  0,  0,  1,
0,  0,  1,  0,  0,  0,  0,  0,  0,
0,  0,  1,  0,  0,  0,  0,  0,  0,
0,  0,  1,  0,  0,  0,  0,  0,  0), nrow = 24, byrow = TRUE)
constr.dir <- rep("<=", 24)
constr.val <- c(24, 20, 21, 22, 26, 34, 40, 44, 
                46, 46, 46, 46, 46, 46, 46, 46, 
                46, 46, 46, 46, 46, 46, 41, 27)
day.shift <- lp("max", obj.fun, constr, constr.dir, 
                constr.val, compute.sens = TRUE)


day.shift$solution

0 个答案:

没有答案