Problem statement : Meet the demand which can be met across 2 facilities each having multiple machines where several components are made.The objective is to find the most optimal solution to meet the demand with lowest utilization of machines.
在机器上生产不同的部件需要不同的时间。我们选择运行时间最少的机器来生产
每台机器都有一个完整月份的总“可用小时数”,这是该机器的总可用运行时间
在任何给定点,机器的利用率不能超过100%
如果需求如此之高,以至于超过了一台机器的利用率,我们就选择运行时间第二低的次佳机器来制造该组件
Given this information, we need to :
1. pick the machine (which can make a component) with lowest run time first.
2. see if demand is met by choosing that machine to produce that component or not. (check the available hours of a machine, subtract available hours with the total time to meet demand. the remaining time is now the updated available hours for that machine). the total time to meet demand is simply run-time*demand for that component.
3. repeat 1 & 2 for all components.
4. if a demand is so high that a machine gets completely utilized, then choose the next best machine where a component can be made(machine with 2nd lowest run-time).
4. All demand should be met(not exceeded) for all components.
5. Try to see that machines should be optimally utilized overall.
6. evaluation metric to compare results between 2 runs are :
% demand met
% utilization overall
variance between utilization across machines
我尝试过使用Google的OR-TOOLS包,但解决方案始终没有收敛。也许模型不对(Google OR-Tools : Solution unable to converge for Assignment with Task Sizes using python) 对于无法制造组件的机器,我使用了大量(10000000)作为成本的一部分
使用任何其他包/方法都可以,只要解决方案可以扩展到大型数据集。 我意识到这是箱子包装问题的一个特例,箱子大小不同,而且不是所有的箱子都允许所有的物品被保存。 感谢您的帮助
目前没有回答
相关问题 更多 >
编程相关推荐