已知库存的最优包装算法

时间:2016-08-19 07:54:38

标签: algorithm dynamic-programming linear-programming

医院正在改变他们对设备进行消毒的方式。此前,当地的外科医生保留了所有自己的设备并制作了自己的手术托盘。现在他们必须限制在全国范围内。他们想知道他们可以用现有库存制造多少新托盘,以及他们需要购买多少新设备。

医疗设备清单如下:

http://pastebin.com/rstWSurU

每家医院都有各种医疗设备的代码,然后是相应项目的数量

3个手术托盘及其相应的项目显示在这本词典中。

http://pastebin.com/bUAZhanK

共有144个不同的操作托盘

医院将被告知他们需要25个托盘x,30个托盘y等...

他们希望最大化他们可以用当前库存完成的托盘数量。他们还想知道他们需要购买哪些设备才能完成剩余的托盘。

我考虑过两种可能的解决方案,一种是将问题表示为线性规划问题。另一个解决问题的方法是通过循环蛮力解决问题的前90%,并通过多次随机算法解决剩余的10%,然后选择那些尝试的最佳解决方案。

我很想知道是否有人知道如何解决这个问题的聪明方法!

1 个答案:

答案 0 :(得分:2)

如果我理解正确,我们可以分别针对每家医院进行优化。我的猜测是,以下是MIP(混合整数规划)模型的良好开端:

enter image description here

我使用以下索引:i是项目,t是托盘。 x(t,i)表示我们为每种托盘类型分配的项目数。 y(t)计算我们可以使用可用项目撰写的每种类型的托盘数量。从解决方案中我们可以计算出我们需要订购的短缺。

当然,我们只是最大化我们可以制作的托盘数量。没有考虑平衡(一种类型的许多托盘和另一种类型的很少或零)。我通过不允许创建比所需更多的托盘来缓解一点(如果我们有更多的东西需要去其他类型的托盘)。此要求被制定为y(t)的上限。

对于大问题,我们可以将(t,i)组合限制为可能的组合。这将使模型更小。使用精确的数学符号时:

enter image description here

进一步的优化是替换变量x(t,i)

将运输剩余物品添加到其他医院会使模型更加困难。在这种情况下,我们最终可能会得到一个需要同时查看所有医院的模型。对于某种分解方法可能是一个有趣的案例。