所以我有一个我正在尝试优化的场景。这纯粹是轶事,我需要帮助解决问题的理论和考虑方面的指导:
假设我们有4家公司(A-D)为一家更大的公司提供劳动力。每家公司对可用劳动力的生产率进行独立评分,范围从1到100 (公司A的得分为60,公司B的得分可能为30,依此类推)。每家公司还提供独立于生产率得分的人工费率(该列表中可能有高成本、低生产率的工人,反之亦然)。
这家大公司的问题是,它想要制定一个多年计划,从4个名单中挑选员工。他们必须最小化预算中的误差(允许一些超支/欠支,但不能太多),最大限度地提高生产率(首先选择生产较高的工人),并最小化公司之间的差异(所有公司支付的金额接近相等)。一旦选择了某个工人,它就会从列表中删除。
这读起来像是一个非线性优化问题,但我不确定可以用来解决这个问题的具体理论、算法等。任何类型的方向或起点都将受到极大的赞赏。
发布于 2020-05-26 14:11:08
我认为这可以用线性混合整数规划(MIP)模型来表示。
这是我的模型:

连续变量是非负的。
让我们用一些数据来尝试一下。
---- 34 PARAMETER cost rate
A B C D
p1 58.587 92.163 77.519 65.057
p2 64.611 61.203 67.492 92.814
p3 53.356 75.011 99.906 78.937
p4 99.557 88.113 56.535 81.986
p5 57.976 62.504 83.446 71.768
p6 67.985 67.572 56.575 57.505
p7 79.456 91.545 61.541 83.287
p8 88.793 65.183 55.525 75.119
p9 58.009 93.623 63.256 64.291
p10 79.698 86.136 81.412 73.190
p11 70.665 55.885 65.711 52.328
p12 66.928 59.105 82.286 78.037
p13 88.498 64.890 83.055 87.791
p14 81.372 64.193 54.321
p15 55.126 82.063 77.265
p16 51.576 89.618
p17 53.638 58.783
p18 76.282
---- 34 PARAMETER budget = 2500.000 available budget
PARAMETER w1 = 1.000 weight for budget error
PARAMETER w2 = 2.000 weight for range in amounts我在这里假设人员p是按生产力排序的: p1是最有生产力的。
当我求解该模型时,结果如下所示:
---- 89 PARAMETER costreport
A B C D cost
p1 58.587 92.163 77.519 65.057
p2 64.611 61.203 67.492 92.814
p3 53.356 75.011 99.906 78.937
p4 99.557 88.113 56.535 81.986
p5 57.976 62.504 83.446 71.768
p6 67.985 67.572 56.575 57.505
p7 79.456 91.545 61.541 83.287
p8 88.793 65.183 55.525 75.119
p9 58.009 63.256
total 628.328 603.293 621.793 606.472 2459.886
budget 2500.000
budgeterr 40.114
min 603.293
max 628.328
range 25.036我们可以看到总成本是2459.886,这意味着与预算的偏差约为40%。每个公司花费的金额范围是25 (范围是最大值减去最小值)。此外,请注意,人员是根据他们的顺序进行选择的(请记住,我们是按生产力递减对用户进行排序的)。
这是一个简单的MIP模型,可以用任何MIP解算器求解。
https://stackoverflow.com/questions/61959277
复制相似问题